DOCS

Kurallar

Gelişmiş kurallar

COMING SOON

Zonos, hesaplamaların hesabınızda nasıl gerçekleştiğinin ileri düzey özelleştirilmesini kurallar aracılığıyla destekler. Kurallar, hesaplamanın farklı bölümlerine arabellek eklemek, ücretleri özelleştirmek ve daha fazlasını yapabilir. Zonos'un kuralları nasıl işlediğinin tam bir açıklaması için, tüm olası kural türlerinin bir listesini içeren kurallar analiz belgesine bakın. Kurallar Zonos Dashboard aracılığıyla veya GraphQL API'si aracılığıyla yönetilebilir.

Önemli: Kurallar ileri bir özelliktir ve yanlış kullanım, Zonos'un davranışı ve hesaplamaları açısından çeşitli istenmeyen sonuçlara neden olabilir.

Kuralları Dashboard içinde yönetmek için:

  1. Zonos Dashboard hesabınıza giriş yapın.
  2. Ayarlar -> Kurallar sayfasına gidin.

"Kurallar" sayfasında, Zonos hesabınızla ilişkilendirilen tüm kuralları görüntüleyebilir, kuralları filtreleyebilir ve kuralları hızlı bir şekilde etkinleştirebilir veya devre dışı bırakabilirsiniz.

Dashboard'da yeni bir kural oluşturmak için:

  1. Zonos Dashboard hesabınıza giriş yapın.
  2. Ayarlar -> Kurallar sayfasına gidin.
  3. Kural oluştur seçeneğine tıklayın.
  4. Kuralınıza bir ad ekleyin, böylece daha sonra tanımlayabilirsiniz. Bunlar yalnızca kuruluşunuzdaki takım üyeleri tarafından görülebilir.
  5. Kuralınıza bir koşul eklemek için aşağıdaki "Kural koşulunu belirt" bölümündeki adımları izleyin.
  6. Kuralınıza bir işlem eklemek için aşağıdaki "Kural işlemini belirt" bölümündeki adımları izleyin.
  7. İsteğe bağlı olarak, ek bağlam için bir yorum ekleyebilirsiniz. Bunlar yalnızca kuruluşunuzdaki takım üyeleri tarafından görülebilir.
  8. Kuralınıza belirli bir başlangıç ve/veya bitiş tarihi eklemek için aşağıdaki adımları izleyin (isteğe bağlı).
  9. Kuralınızı Etkinleştirilmiş veya Devre Dışı Bırakılmış olarak ayarlayın.
  10. Kaydet seçeneğine tıklayın.

Başlangıç ve bitiş tarihlerini belirt

Kurallar isteğe bağlı olarak bir başlangıç tarihi, bir bitiş tarihi veya her ikisine sahip olabilir. Başlangıç ve bitiş tarihleri, kuralın ne zaman etkin hale geleceğini kontrol eder ve mevsimsel indirimler veya diğer zaman duyarlı durumlar gibi yalnızca belirli dönemler için etkin olan kurallar oluşturmak için kullanılabilir.

Kural davranışı

TarihlerDavranış
Başlangıç ve bitiş tarihiKural, belirtilen başlangıç ve bitiş tarihleri arasında etkin olur.
Yalnızca başlangıç tarihi, bitiş yokKural, belirtilen başlangıç tarihinden sonra etkin hale gelir ve manuel olarak devre dışı bırakılmalıdır.
Başlangıç veya bitiş tarihi yokKural, manuel olarak devre dışı bırakılmadığı sürece her zaman etkin olur.

Kural koşulunu belirt

Her kural, neye uygulanacağını belirlemek ve kuralın çalıştığı sırada hangi değişkenlerin kullanılabilir olduğunu belirlemek için bir koşul belirtilmelidir. Başka bir deyişle, koşul kuralın eğer çalışması gerektiğini ve ne zaman çalışacağını belirler. Farklı koşullar, farklı seçenekler sunar.

Örneğin, koşul olarak "Kargo operatörü" seçerseniz, koşulun bir parçası olarak hangi operatörün dahil olduğunu seçmenize de izin verir. Bunu, yalnızca belirli bir operatör için bir arabellek ayarladığınız durumlarda kullanabilirsiniz.

Kurallar her biri yalnızca bir koşulu destekler ve "else if", "and/or" veya benzer terimler gibi karmaşık mantığı desteklemez. Kuralları zincirleme yapmak istiyorsanız, dev ve karmaşık bir kural yerine birden çok kuralla aynı mantığı nasıl elde edebileceğiniz hakkında düşünmek en iyisidir.

Kural işlemini belirt

Bir kuralın işlemi, koşulu karşılandığında ne olacağıdır. Koşullar gibi, mümkün olan çeşitli işlemler de vardır ve her birinin farklı seçenekleri vardır.

Örneğin, yalnızca belirli bir kargo operatörü için bir arabellek eklemek istiyorsanız, işlemi "arabellek uygula" olarak ayarlarsınız ve arabellek miktarını ve neye uygulanacağını belirtirsiniz. Daha sonra arabelleğin tam olarak hangi operatöre uygulanacağını belirterek kuralın koşulunda belirtebilirsiniz.

Koşullar gibi, kurallar da her biri yalnızca bir işlemi destekler. Birden çok işlem istiyorsanız, dev ve karmaşık bir kural yerine birden çok kuralla aynı mantığı nasıl elde edebileceğiniz hakkında düşünmek en iyisidir.

Kuralları yerinde güncellemek, sistemimizin çalışma şekliyle mümkün değildir. Bunun nedeni, hangi kuralların hangi durumda uygulandığının ve kural çalıştığında ne yaptığının izlenebilir bir geçmişini tutmamız gerekmesidir. Alternatif olarak, bir kuralı arşivleyebilir ve yeniden oluşturabilir; değiştirilmiş değerleri geçirebilirsiniz ve böylece kuralda bir "güncelleme" yapılmış olur.

Bu örnek mutasyon, bu davranışı başarmak için ruleArchive ve ruleCreate mutasyonlarını nasıl birleştirebileceğinizi gösterir:

1mutation ruleUpdate(
2$ruleId: ID!
3$action: String!
4$condition: String!
5$context: String!
6$description: String!
7$name: String!
8) {
9 ruleArchive(id: $ruleId)
10 ruleCreate(
11 input: {
12 action: $action
13 condition: $condition
14 context: $context
15 name: $name
16 description: $description
17 }
18 ) {
19 id
20 action
21 context
22 condition
23 }
24}

Eklendikten sonra, kurallar kolayca etkinleştirilebilir veya devre dışı bırakılabilir; bunlar hesaplamalarınızı etkileyip etkileyemeyeceğini belirler. Bir kuralı manuel olarak etkinleştirmek veya devre dışı bırakmak, kuralda yer alan başlangıç ve bitiş tarihine dayalı mantığı geçersiz kılar.

Kurallar "Bir kuralı düzenle" ekranından birer birer etkinleştirilebilir veya devre dışı bırakılabilir; veya "Tüm kurallar" ekranında her kural seçeneğinin yanındaki onay kutularını kullanarak toplu olarak etkinleştirilebilir veya devre dışı bırakılabilir.

Kurallarla ilgilenmek için, kuralların arka planda nasıl çalıştığını keşfetmek, kuralların üzerine kullanıcı arayüzleri oluşturmak vb. için yararlı olan bazı genel sorgular sunuyoruz. Bunlar tüm kullanıcılara uygulanır, kuruluşa özgü değildir ve kolaylık için sunulur. Bu sorgu, kuralların ait olabileceği tüm olası bağlamların listesini döndürür. Bir kural bağlamı, kuralın ne zaman çalıştığını ve hangi değişkenlerin kullanılabilir olduğunu belirler.

1query {
2 ruleContexts {
3 name
4 context
5 variables {
6 ruleTokenType
7 value
8 }
9 }
10}

Bu sayfa faydalı mıydı?