Ana içeriğe geç

Doğrulama Kuralı

Emakin'deki doğrulama kuralı, widget girdisini önceden tanımlanmış koşullara göre doğrulayarak veri doğruluğunu ve bütünlüğünü sağlar. Bir değer doğrulamadan geçemediğinde sistem kullanıcıya uygun geri bildirim sunarak veri girişinin tutarlı ve doğru olmasına yardımcı olur.

Doğrulama Grubu Adı

Doğrulama kuralları, doğrulama koşullarını belirli kullanıcı eylemlerine bağlayan grup tanımlayıcılarınagöre çalıştırılır.

Bir grup adı tanımlayıcısı doğrulama kuralının hangi bağlamda çalışacağını belirtir. Örnek: Grup adı olarak save atanması, kullanıcı Kaydet düğmesine tıkladığında doğrulama kuralını tetikler.

Varsayılan Çalıştırma

  • Grup adı tanımlanmazsa, tetikleyen eylemden bağımsız olarak doğrulama kuralı tüm gruplariçin çalıştırılır.

Birden Çok Grup Adı

Ayırıcı olarak noktalı virgül (;) kullanılarak birden çok grup adı belirtilebilir. Örnek: save;submit tanımlandığında doğrulama kuralı, Kaydet veya Gönder düğmesine tıklandığında çalışır.

Doğrulama Kurallarını Tanımlamaya Yönelik En İyi Uygulamalar

  • İlgili kullanıcı eylemini yansıtan anlamlı grup adları kullanın (ör. submit, approve, finalize).
  • İstenmeyen veri gönderimini önlemek için kuralların gerekli tüm eylemleri kapsadığından emin olun.
  • Aynı doğrulama mantığı birden çok eylem için geçerli değilse çakışan grup adlarından kaçının.
  • Sorumlulukların ayrılığını korumak için doğrulama kurallarında veri modelini güncellemekten kaçının.

Açık grup tanımlayıcılarıyla doğrulama kuralları uygulandığında Emakin formları güçlü veri doğrulaması sunar ve yalnızca doğru, uygun biçimde biçimlendirilmiş verilerin gönderilmesini sağlar.

Hata İletisi

Doğrulama kuralı koşulları karşılandığında Emakin kullanıcıya bir hata iletisi gösterir. Bu ileti, doğrulama başarısızlığına ilişkin özel geri bildirim sağlayacak şekilde özelleştirilebilir.

Kural Koşulu

Doğrulama kuralı koşulları, boole değeri döndüren JavaScript işlevleriyle tanımlanır. Veri modelinde değişiklik olduğunda bu işlevler tetiklenir ve widget'ı buna göre günceller.

Koşul betikleri, eşzamansız işlemler için async/await kalıbını destekler. Bu sayede doğrulama mantığına harici API çağrıları veya uzun süren görevler eklenebilir.

Kullanılabilir Betik Değişkenleri

  • $Xml Widget'a bağlı XML veri modeli öğesini temsil eder.
  • $ActiveUser Geçerli kullanıcının kimlik bilgilerini içerir.
  • $Disabled Formun devre dışı durumunu belirtir.
  • $Process Şu anda çalışan sürecin kimliği.
  • $StaticUrl Statik dosyalara erişim URL'si.

JSON Nesnesinin $ActiveUser yapısı:

1
2
3
4
5
6
7
{
    "name": "<user_display_name>",
    "type": "User",
    "domain": "<domain_id>",
    "id": "<user_id>",
    "email": "<user_email>"
}

Warning

Değişkeni $Disabled tek tek widget'ların değil, formun devre dışı durumunu belirtir.

Örnek

Aşağıdaki örnekte, sayısal bir alanın en az 10 öğe içermesini sağlayan bir doğrulama kuralı gösterilmektedir:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<NumericBox XPath="amount">
    <Rules>
        <ValidationRule Group="save;submit">
            <Condition>
                <Content><![CDATA[return $Xml.EvaluateNumber() < 10;]]></Content>
                <Definitions/>
            </Condition>
            <Label>
                <Content>Please enter at least 10 items</Content>
            </Label>
        </ValidationRule>
    </Rules>
</NumericBox>

Düzenli İfade Doğrulaması

Doğrulama için düzenli ifadeler kullanırken RegExp nesnesini JavaScript'te kullanabilirsiniz. Aşağıdaki örnek, metin kutusunun geçerli bir e-posta adresi içerdiğinden emin olan bir doğrulama kuralını gösterir:

1
return (!$Xml.Evaluate('.').match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi))