Aracılığıyla paylaş


Microsoft Rules Composer kullanarak kurallara aritmetik ve mantıksal işleçler ekleme

Şunlar için geçerlidir: Azure Logic Apps (Standart)

Bu kılavuzda, Microsoft Rules Composer kullanarak kural kümesindeki kurallara aritmetik ve mantıksal işleçlerin nasıl ekleneceği gösterilmektedir.

Önkoşullar

  • Microsoft Rules Composer'ı indirip yükleyin.

  • Üzerinde çalışmak istediğiniz kural kümesini içeren XML dosyası.

Kurala aritmetik işleç ekleme

Bir kuraldaki bir koşula veya eyleme aritmetik işleç ekleyebilirsiniz. Aşağıdaki tabloda kullanılabilir aritmetik işleçler açıklanmaktadır:

Aritmetik işleç Açıklama
Topla arg1'i arg2'ye ekleyen ekleme işleci.
Çıkarma arg1'i arg2'den çıkaran çıkarma işleci.
Çarpmak arg1 ile arg2'yi çarpan çarpma işleci.
Bölmek arg1'i arg2'ye bölen bölme işleci.
Kalan arg1 modulo arg2 gerçekleştiren kalan operatörü.
  1. Microsoft Kural Oluşturucu'da, üzerinde çalışmak istediğiniz kural depoyu içeren XML dosyasını yükleyin.

  2. RuleSet Explorer penceresinde, istediğiniz kuralı bulun ve seçin.

  3. Olgu Gezgini penceresinde Sözlükler sekmesini seçin.

  4. Sözlükler İşlevleri Sürüm 1.0, sürüklemek istediğiniz aritmetik işleci koşul düzenleyicisindeki bir koşuldaki argümana veya eylemler düzenleyicisindeki bir eyleme sürükleyin.

  5. Koşul veya eylem bağımsız değişkenleri içinde, sol ve sağ operandların değerlerini belirtin.

    • İşlenenler farklı türlere sahipse, kural motoru, daha küçük işlenen türünü daha büyük işlenen türüne dönüştürdüğü otomatik sayısal yükseltme yapar.

      Örneğin, Add işlecini int türüne sahip bir işlenende ve uzun türdeki bir işlenende kullandığınızı varsayalım. Motor Ekle işlemini gerçekleştirmeden önce, motor int türünü long türe dönüştürür.

    • Eğer motor her iki işleneni de ortak bir türe yükseltebiliyorsa, motor çift yükseltmeyi destekler.

      Örneğin, add işlecini int türüne sahip bir işlenende ve uint türüne sahip bir işlenende kullandığınızı varsayalım. Motor Add işlemi gerçekleştirilmeden önce, motor her iki işlenen türünü de long türüne dönüştürür.

Kurala mantıksal işleç ekleme

Koşuldaki bir önermeye mantıksal bir işleç ekleyebilirsiniz. Aşağıdaki tabloda kullanılabilir mantıksal işleçler açıklanmaktadır:

Mantıksal işleç Açıklama
VE Mantıksal AND ifadesi oluşturmak için iki veya daha fazla koşulu birleştirin. Her iki koşul da true olarak değerlendirilirse true döndürür. Aksi takdirde false döndürür.
VEYA Mantıksal OR ifadesi oluşturmak için iki veya daha fazla koşulu birleştirin. Bir koşul true olarak değerlendirilirse true döndürür. Aksi takdirde false döndürür.
DEĞİL Mantıksal ifadeyi veya koşulu yok sayın. Koşul false olarak değerlendirilirse true döndürür. Aksi takdirde false döndürür.
  1. Microsoft Kural Oluşturucu'da, üzerinde çalışmak istediğiniz kural depoyu içeren XML dosyasını yükleyin.

  2. RuleSet Explorer penceresinde, istediğiniz kuralı bulun ve seçin.

  3. Koşullar düzenleyicisi olan EĞER bölmesinde, Koşullar kısayol menüsünde aşağıdaki komutlardan birini seçin:

    Mantıksal işleç Açıklama
    Mantıksal AND ekleme Mantıksal AND ifadesi oluşturmak için iki veya daha fazla koşulu birleştirin.
    Mantıksal VEYA ekleme Mantıksal OR ifadesi oluşturmak için iki veya daha fazla koşulu birleştirin.
    Mantıksal DEĞİl ekleme Mantıksal ifadeyi veya koşulu yok sayın.
  4. Koşullar düzenleyicisinde, işlecin kısayol menüsünü açın ve istediğiniz koşulları veya iç içe yerleştirilmiş mantıksal işleçleri ekleyin.

    İşlenenlerin türleri farklıysa, kural altyapısı bir işlenenin türünü diğer işlenenin türüyle eşleşecek şekilde dönüştürür veya ifadeyi değerlendirmeden önce her iki işlenenin türlerini ortak bir türe dönüştürür.

Null değerleri işleme

Aşağıdaki bölümde, farklı türlerle ilişkili null değerler için beklenen davranışlar açıklanır ve null veya belirli bir alan veya üyenin varlığını denetleme seçenekleri sağlanır.

.NET sınıfları

  • Nesne türünden türetilen türler için alanlarını null olarak ayarlayabilirsiniz.

  • Null değerini değer türü olmayan parametreler için bağımsız değişken olarak geçirebilirsiniz, ancak üyenin uygulamasına bağlı olarak bir çalışma zamanı hatası alabilirsiniz.

  • Dönüş türü bir Nesne türü değilse karşılaştırma için null kullanamazsınız.

XML öğeleri

  • XML belgesi hiçbir zaman bir XML değerini null olarak döndürmez. Bunun yerine, bu değer boş bir dize veya "yok" hatasıdır. Boş bir dize için, kural oluştururken tamsayı türü olarak belirtilen alanlar gibi belirli türlerin dönüştürülmesiyle ilgili bir hata oluşabilir.

  • Microsoft Kural Oluşturucu, bir alanı null olarak veya alan türünü Object olarak ayarlamanıza izin vermez.

  • Nesne modeli aracılığıyla türü Object olarak ayarlayabilirsiniz. Bu durumda, döndürülen değer XPath ifadesini temel alan Float, Boole veya String gibi XPath'in değerlendirdiği türe sahiptir.

Null veya varoluş denetimi

Kurallar yazarken, doğal olarak bir alanın değerini karşılaştırmadan önce var olup olmadığını denetlemek istersiniz. Ancak, alan null ise veya yoksa, değerin karşılaştırılması hataya neden olur.

Örneğin, aşağıdaki kurala sahip olduğunuzu varsayalım:

IF Product/Quantity Exists AND Product/Quantity > 1

Ürün/Miktar yoksa kural bir hata oluşturur. Bu sorunu geçici olarak çözmek için bir üst düğümü, öğe varsa Product/Quantity değerini döndüren bir yardımcı yöntemine geçirebilir veya öğe yoksa başka bir şey döndürebilirsiniz.

Aşağıdaki örnekte güncelleştirilmiş ve yeni yardımcı yöntem kuralı gösterilmektedir:

Kural 1

IF Exists(Product/Quantity) THEN Assert(CreateObject(typeof(Helper), Product/Quantity))

Kural 2

IF Helper.Value == X THEN...

Başka bir olası çözüm olarak, aşağıdaki örnek gibi bir kural oluşturabilirsiniz:

IF Product/Quantity Exists THEN CheckQuantityAndDoSomething(Product/Quantity)

Yukarıdaki örnekte işlev parametre <CheckQuantityAndDoSomething> değerini denetler ve koşul karşılanırsa yürütülür.

Var olan bir bağımsız değişkenin null olup olmadığını belirlemek için oluşturucuyu kullanın:

argument is equal to <null>

Not

Alternatif olarak, hataları yakalamak için XML olgusunun XPath Alanı özelliğini değiştirebilirsiniz, ancak bu yaklaşım önerilmez.