Ana içeriğe geç

Yönetim Havuzu Üzerinden Arama Verilerini Yönetme

Amaç

Paylaşılan arama değerlerini her forma eklemeden veya genel kullanıcılara bakım işlemi erişimi vermeden yönetmek için küçük bir yönetim ekranı sağlayın.

Neler Öğreneceksiniz

  • arama verilerinin bakımını son kullanıcı iş akışı görevlerinden ayırma
  • ilişkisel satırları yinelenen form tablosuna yükleme
  • yeni satırlara kararlı tanımlayıcılar atama ve değişiklikleri kalıcı hale getirme
  • başvurulan iş verilerini silmek yerine etkin olmayan değerleri koruma

Zorluk ve Tahmini Süre

  • Zorluk: Orta
  • Tahmini süre: 25 dakika

Varsayılan Bilgiler

Havuzlar, formlar, yinelenen tablo satırları, XML yolları, ilişkisel şemalar, iş öncesi ve iş sonrası işlemler hakkında bilgi sahibi olmalısınız.

Gerekli Okumalar

Ön Koşullar

  • süreç tanımlarını ve ilişkisel şemaları içe aktarma veya oluşturma izni
  • yönetim havuzlarını açabilen bir yönetici kimliği
  • veritabanı yazma işlemlerini doğrulamak için temiz bir test alanadı

Örneğe Genel Bakış

Örnek; bir yönetim havuzu, bir kullanıcı görevi, bir form ve bir ilişkisel tablo içerir:

1
2
3
4
5
Administrative pool: Lookup Data Administration
└── Manage Categories
    ├── prework: load Categories rows into XML
    ├── table form: edit Code, Name, and Active
    └── postwork: assign missing IDs and persist rows

Örnek, alanı kullanarak devre dışı bırakma yöntemini kullanır. Active Mevcut iş akışı kayıtlarında bir kategori kodu saklanabilir; bu nedenle, geçmiş verilerin hâlâ başvurduğu bir değeri silmek yerine satırı devre dışı bırakmak daha güvenlidir.

Adımlar

Yönetim Havuzu Oluşturma

  1. Adı şu olan bir havuz oluşturun Lookup Data Administration.
  2. Yönetim havuzu ayarını etkinleştirin.
  3. Adı şu olan bir başlatıcı görev ekleyin Manage Categories.
  4. Bir Save aksiyonunu şu doğrulama grubuyla ekleyin Save.

Yönetim havuzu, bakım giriş noktalarını normal süreç kataloğunun dışında tutar. Sunucu tarafı izinlerin yerini almaz; hedef alanadında hangi yöneticilerin görevi açıp yürütebildiğini doğrulayın.

İlişkisel Tabloyu Tanımlama

Şu şemayı oluşturun TutorialLookup ve şu tabloyu Categories şu alanlarla:

Alan Tür Amaç
Id Guid kararlı birincil anahtar
Code VarChar(30) entegrasyonlar veya süreç verileri tarafından saklanan kararlı değer
Name VarChar(100) kullanıcıya gösterilen etiket
Active Bit değerin seçilebilir kalıp kalmayacağını belirler

öğesini Id birincil anahtar olarak kullanın. Üretim tasarımında ayrıca Code için gerekli benzersizlik kuralını veritabanı veya sunucu doğrulama katmanında uygulayın.

Yinelenen Formu Oluşturma

Şuna bağlı bir tablo içerik denetimi ekleyin Categories/Category ve şu alanlar için sütunlar oluşturun Code, Nameve Active.

  • şunları zorunlu kılın: Code ve Name doğrulama grubu için Save
  • satır kimliği yolunu şu şekilde ayarlayın Id
  • öğretici formunda satır eklenmesine ve silinmesine izin verin
  • bir satıra daha önce başvurulmuş olabilecekse silmek yerine devre dışı bırakmayı tercih edin

Zorunlu kurallar yinelenen satırın içindeki denetimlere ait olduğundan ve aksiyonla aynı Save grubu kullandığından doğrulama, düzeltilmesi gereken satır ve alanda gösterilir. Kısıtlama aynı satırdaki birden fazla değere bağlıysa tablo satırı kuralı kullanın. Satır geri bildirimi kullanılabilirliği artırsa da kalıcılık veya güvenlik sınırı oluşturmadığından kritik benzersizlik ve yetkilendirme denetimlerini sunucuda tekrarlayın.

Mevcut Satırları İş Öncesinde Yükleme

1
2
3
4
5
$Database.ExportToXml({
    TargetSchema: 'TutorialLookup',
    TargetTable: 'Categories',
    XPath: 'Categories/Category'
});

Bu işlem, geçerli ilişkisel satırları işlenmeden önce yinelenen formda kullanılabilir hâle getirir.

İş Sonrasında Kimlikleri Atama ve Kaydetme

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$Xml.SelectAll('Categories/Category', function(category) {
    if (category.IsEmpty('Id')) {
        category.SetValue('Id', Script.NewId());
    }
});

$Database.ImportFromXml({
    TargetSchema: 'TutorialLookup',
    TargetTable: 'Categories',
    XPath: 'Categories/Category'
});

İçe aktarmadan önce kimlik atamak, her yeni satıra kararlı bir birincil anahtar verir. Mevcut satırlar kimliklerini korur ve ilgisiz yinelenen kayıtlar olarak eklenmek yerine güncellenir.

Belirleyici Bir Sorguyla Arama Verisini Kullanma

Son kullanıcı formunda açılır listeyi yalnızca etkin satırları seçen ve şu alana göre sıralayan bir tablo veri kaynağına bağlayın Nameardından Codeöğesini kullanın Code saklanan değer, öğesini ise Name başlık olarak kullanın. Açık sıralama listeyi kararlı tutar; benzersizlik Code kuralı, koda göre aramanın en fazla bir mantıksal kayıt döndürmesini sağlar. Sıralanmamış ve benzersiz olmayan bir sonuçtan gelişigüzel ilk satırı asla seçmeyin.

Tam sorgu yapısı için Tablo Veri Kaynağı bölümüne bakın. Son kullanıcıların tabloya yazma değil, etkin arama satırlarına okuma erişimi alması için bakım formunu kullanan formdan ayrı tutun.

Nasıl Çalışır

Form XML'i geçici bir düzenleme gösterimidir. İş öncesi, ilişkisel satırları bu gösterime aktarır; iş sonrası ise düzenlenen gösterimi tekrar tabloya aktarır. İlişkisel tablo, diğer süreçler ve açılır liste sorguları tarafından kullanılan ortak kaynak olarak kalır.

Örnek, bakım işlemini kullanımdan kasıtlı olarak ayırır. Ayrı bir son kullanıcı formu yalnızca etkin satırları sorgulamalı ve arama tablosunu güncelleme izni almamalıdır.

Sonucu Doğrulama

  1. Tanımı temiz bir test alanadına aktarın.
  2. Şunu açın Lookup Data Administration yetkili bir yönetici olarak.
  3. Şunu ekleyin GENERAL — General ve etkin durumda tutun.
  4. Şunu seçin Save.
  5. Yönetim görevini yeniden başlatın ve satırın aynı kimlikle yüklendiğini doğrulayın.
  6. Adı değiştirip kaydedin ve mevcut satırın yinelenmek yerine güncellendiğini doğrulayın.
  7. öğesini Active false olarak ayarlayın ve satırın geçmiş başvurular için saklanmaya devam ettiğini doğrulayın.

Hata ve Sınır Durumları

  • Bir satırı şu olmadan kaydetmeyi deneyin: Code veya Name; doğrulama Save grubu bunu reddetmelidir.
  • Geçersiz satırın ve alanın görünür biçimde belirtildiğini doğrulayın; ardından yalnızca o satırı düzeltip yeniden kaydedin.
  • Aynı kodu iki kez ekleyin; öğretici riski açıklar ancak üretimde kullanımdan önce sunucu tarafında benzersizlik kuralı gerektirir.
  • Aynı görünen ada sahip iki satır oluşturun ve ikincil Code sıralamanın kayıtları kararlı bir sırada tuttuğunu doğrulayın.
  • Havuzu yönetici olmayan bir kullanıcı olarak açın ve bakım giriş noktasının kullanılamadığını doğrulayın.
  • Kaydetme işlemini tekrarlayın ve kararlı satır kimliklerinin yinelenen eklemeleri önlediğini doğrulayın.

Güvenlik ve Taşınabilirlik Notları

  • Tanımda kiracı, kullanıcı, grup veya ortam tanımlayıcısı bulunmaz.
  • Yönetim görünürlüğü tek güvenlik sınırı değildir; havuza ve tabloya hedef alanadının sunucu tarafı yetkilendirme politikasını uygulayın.
  • Kullanıcı girdisinden şema veya tablo adlarını kabul etmeyin.
  • Yeni seçimlerde etkin olmayan değerleri göstermeyin; ancak geçmiş kayıtları görüntülerken koruyun.
  • Üretimde bu kalıbı kullanmadan önce Code için benzersiz bir dizin veya eşdeğer sunucu tarafı doğrulama ekleyin.

İndirin ve Kendiniz Deneyin

Yönetim arama süreci tanımını indirin.

Sorun Giderme

  • Satırlar yüklenmiyor: Adları schema/table ve Categories/Category iş öncesindeki XPath'i doğrulayın.
  • Her kaydetme yinelenen kayıtlar oluşturuyor: Mevcut satırların şunu koruduğunu doğrulayın: Id ve Id öğesinin tablonun birincil anahtarı olduğunu doğrulayın.
  • Yeni satırlar kaydedilemiyor: İş sonrasının şunu atadığını doğrulayın: Script.NewId() şu durumda Id boş.
  • Genel kullanıcılar bakım görevini açabiliyor: Hedef alanadındaki yönetim havuzu ve tablo yetkilendirmesini gözden geçirin.

Sırada Ne Öğrenmeli?