Koşullar referansı
Bir koşul, bir tetikleyici olayının hangi örneklerinin gerçekten Kural'ı ateşlediğini daraltır. Tetikleyiciler ne sorusunu yanıtlar ("üye bir satın alma yaptı"); koşullar hangisi sorusunu yanıtlar ("…yalnızca sepet toplamı 20 €'yu aştığında, Şehir Merkezi şubesinde"). Her koşul üç yuvalı bir satırdır — bir alan, bir operatör ve bir değer — ve koşullar VE ile birleşir.
Bu sayfa bir sözdizimi referansıdır: satır anatomisini, her alan tipi için kullanılabilir operatörleri, koşulların nasıl birleştiğini ve sihirbazda koşulların göründüğü iki yeri kapsar. Her tetikleyicinin hangi alanları sunduğunun listesi Tetikleyiciler referansı sayfasında bulunur — her konu için bir sayfa.
Koşullar nerede görünür
Koşullar Kural sihirbazında iki yerde, her ikisinde de aynı sözdizimiyle görünür:
- Adım 2 — Ne zaman → Koşullar. Kural genelinde koşullar. Alan listesi seçilen tetikleyiciye özgüdür — bir satın alma tetikleyicisi sepet/şube/ödeme alanlarını sunar, bir kupon kullanma tetikleyicisi kuponla ilgili alanları sunar vb. Bazı tetikleyiciler (Toplam harcama güncellendi, Ziyaret güncellendi) hiçbir koşul alanı sunmaz — olayın kendisi tüm filtredir.
- Adım 3 — Eylemler → bir vakanın içinde. Birden çok vakaya bölme'yi açtığınızda, her vakanın o vakanın çalışıp çalışmayacağına karar veren kendi Koşul satırı vardır. Vaka koşulları, 2. adımdaki olay düzeyindeki alanlara ek olarak üye düzeyindeki niteliklere (etiketler, bakiyeler, etkinlik sayaçları, onay bayrakları) uzanabilir — tam liste tetikleyiciye bağlıdır. Vaka modeli için bkz. Birden çok vakaya bölme.
Her iki yer de aynı satır şeklini ve aynı operatör kataloğunu kullanır. Fark kapsamdır: 2. adım koşulları tüm Kural'ı kontrol eder; 3. adım koşulları onun bir dalını kontrol eder.

Bir koşul satırının anatomisi
Her koşul, soldan sağa okunan üç kontrole sahip tek bir satırdır:
- Alan — neye göre filtrelediğiniz şey. Liste tetikleyici tarafından (2. adımda) veya vaka düzenleyici bağlamı tarafından (3. adımda) tanımlanır.
- Operatör — alanın değerinin sizinkiyle nasıl karşılaştırıldığı. Kullanılabilir operatörler alanın tipine bağlıdır — bir sayı alanı sayısal karşılaştırıcılar sunar, bir öğe-kümesi alanı küme operatörleri sunar, bir enum alanı üyelik operatörleri sunar vb.
- Değer — neye göre karşılaştırdığınız şey. Bu kontrolün şekli alana ve operatöre bağlıdır: bir sayı girişi, çoklu seçimli bir öğe seçici, bir tarih veya tarih aralığı, enum değerlerinin bir açılır listesi, serbest biçimli metin.
Başka bir koşul satırı eklemek başka bir filtre ekler, başka bir dal değil — aşağıda Koşulları birleştirme konusuna bakın.
Alanlar, operatörler ve değerler
Bir koşul satırındaki üç kontrol birlikte çalışır ve operatör açılır listesi seçtiğiniz alana göre uyum sağlar. Total amount of basket gibi sayısal bir alan, sayısal karşılaştırıcılar (büyüktür, küçüktür, arasında vb.) sunar. Basket items gibi bir öğe-kümesi alanı, üyelik/miktar operatörleri sunar ("…en az N adet içerir"). Branch veya Payment method gibi bir enum alanı, "şunlardan biri" / "şunlardan biri değil" sunar, böylece tek bir satırda birden çok değer listeleyebilirsiniz. Bir tarih alanı mutlak ve göreli zaman karşılaştırmaları sunar. Sağdaki değer kontrolü buna uygun davranır — bir sayı girişi, bir öğe seçici, çoklu seçim açılır listesi, bir tarih seçici.
Bir operatör tablosu ezberlemenize gerek yok: önce alanı seçin, UI ona uyan operatörleri ve değer kontrolünü gösterir. Önemli olan, aklınızdaki filtre için doğru alanı seçebilmeniz adına hangi alan tiplerinin var olduğunu bilmektir — ve alan etiketlerinin kendisi tipi genellikle açıkça belli eder (…amount… bir sayıdır, …items bir öğe kümesidir, …ID veya …type bir enum'dur, …name serbest biçimli metindir, …date bir tarihtir).
- adımdaki bir vakanın içinde alan listesi genellikle 2. adımda mevcut olay düzeyindeki alanların üstüne üye düzeyindeki nitelikleri — etiketler, puan bakiyesi, kredi bakiyesi, onay bayrakları, toplam harcama veya ziyaret sayısı gibi şeyleri — içerir. Üyenin kim olduğuna göre, yalnızca az önce ne olduğuna göre değil, bu şekilde filtrelersiniz. Tam liste tetikleyiciye bağlıdır; mevcut olanları görmek için bir vakadaki alan açılır listesini açın.
Koşulları birleştirme
Aynı Koşullar bölümüne eklenen koşullar VE ile birleşir — Kural'ın (veya vakanın) ateşlenmesi için her koşulun sağlanması gerekir. İki koşulu olan bir satın alma Kuralı — Total amount of basket ≥ 20 € ve Branch = Şehir Merkezi — yalnızca Şehir Merkezi şubesindeki 20 € ve üzeri sepetlerde ateşler. Başka bir şubedeki 20 €'luk bir sepette veya Şehir Merkezi'ndeki 5 €'luk bir sepette ateşlenmez.
"X VEYA Y olduğunda ateşle" mantığı için Kural'ı bunun yerine birden çok vakaya bölün — sonraki bölüme bakın.
VEYA gerektiğinde: vakaları kullanın
İstediğiniz mantık "X VEYA Y olduğunda ateşle" ise, bunu modellemenin standart yolu Kural'ı 3. adımda birden çok vakaya bölmektir. Her vakanın kendi Koşul satırı vardır ve vakalar yukarıdan aşağıya değerlendirilir — ilk eşleşen vaka çalışır. Ya VIP üyelere ya da iş ortağı kuruluşunun üyelerine %10 kupon vermesi gereken bir Kural iki vakaya dönüşür: biri etiket = VIP, diğeri etiket = ortak-üye; her biri kendi İndirim ekle eylemine sahip.
Tam vaka modeli için bkz. Birden çok vakaya bölme.
Koşulsuz tetikleyiciler
Her tetikleyicinin bir Koşullar bölümü yoktur. Toplam harcama güncellendi ve Ziyaret güncellendi, 2. adımda hiçbir koşul alanı sunmaz — olayın kendisi tüm filtredir. Bunları daraltmanız gerekiyorsa (örn. yalnızca üyenin yaşam boyu harcaması 500 €'yu aştığında veya yalnızca 10. ziyarette ateşle), 2. adımda kontrol etmeye çalışmak yerine üye düzeyinde bir koşulla birlikte 3. adımda bir vaka kullanın.
Bu genel bir geri çekilmedir: tetikleyicinin yerleşik alanlarıyla söyleyemediğiniz her şeyi bir vaka koşulunda ifade etmeye çalışın.
Dikkat edilecekler
Sıkça karşılaşılan 4 tuzak
- Alanlar tetikleyiciye bağlıdır. Satın Alma Yapıldı sütununda yazılmış bir koşul, tetikleyiciyi Bir kupon kodu kullanır olarak değiştirirseniz hayatta kalmaz. Sihirbaz silmeden önce uyarır, ama bunu gözden kaçırmak kolaydır. Önce tetikleyiciyi seçin, koşulları sonra yapılandırın.
- Serbest biçimli metinler için büyük/küçük harf duyarlılığı önemlidir. Etiketler ve diğer serbest biçimli metinler yazıldığı gibi saklanır; bu yüzden
GoldveGOLDayrı eşleşmelerdir. Koşulların daha sonra güvenilir şekilde eşleşmesi için oluştururken bir adlandırma kuralına bağlı kalın. - Eksik alanlar asla eşleşmez. Tetikleyen olay bir alanı taşımıyorsa (örn. anonim bir satın almanın üye etiketi yoktur), o alandaki bir koşul, geçmek veya hata atmak yerine eşleşmedi olarak değerlendirilir. İsteğe bağlı alanlara dayanan Kurallar, ya güvenli bir varsayılana ya da "bilinmeyen" yolu işleyen bir vakaya ihtiyaç duyar.
- Koşullar kuyruğa girmez. Bir koşul, tetiklenme zamanında o anki duruma karşı değerlendirilir. Etiket = büyük-harcayıcı üzerindeki bir koşul yalnızca tetikleyici olay geldiğinde üye zaten etiketliyse ateşlenir — birkaç dakika sonra başka bir Kural tarafından etiketlenirse değil. "Etiket uygulandığında X yap"a ihtiyacınız varsa, etiket koşuluyla kontrol etmek yerine alt akış Kuralı'nı Etiketlendi ile tetikleyin.