Ana içeriğe atla

Senaryo

Mesaj Oluşturucu politikasında koşullu değer atama iki farklı şekilde yapılabilir:
  1. Satır Koşulu (Row Condition): Satırın çalışıp çalışmayacağını belirler; koşul sağlanmadığında satır atlanır.
  2. JEXL Ternary İfadesi: Şablon içinde #{koşul ? 'evet' : 'hayır'} söz dizimiyle tek bir ifadede koşullu değer üretir.

Örnek 1: Satır Koşulu ile Yalnızca POST’ta Değer Atama

Yalnızca POST isteklerinde body’den orderId alanı çekilir; diğer HTTP metodlarında satır atlanır.

Satır Yapılandırması

AlanDeğer
Oluşturma ModuForm
Kaynakİstek Body → JSON Path $.orderId
HedefÖzel Değişken → currentOrderId
Varsayılan Değer(boş)

Satır Koşulu

DeğişkenOperatörDeğer
HTTP MetoduEşittirPOST

Sonuç

HTTP MetoducurrentOrderId Değeri
POSTBody’deki orderId değeri
GET, PUT, DELETESatır atlanır, değer atanmaz

Örnek 2: JEXL Ternary ile Durum Etiketi

İstek body’sindeki status alanına göre okunabilir bir etiket üretilir.

Şablon

#{body.$.status == 'available' ? 'Satın Alınabilir' : body.$.status == 'pending' ? 'Beklemede' : 'Satıldı'}

Satır Yapılandırması

AlanDeğer
Oluşturma ModuTemplate
ŞablonYukarıdaki şablon
HedefÖzel Değişken → statusLabel
Varsayılan DeğerBilinmiyor

Sonuç

status DeğeristatusLabel
availableSatın Alınabilir
pendingBeklemede
soldSatıldı
(boş)Bilinmiyor

Örnek 3: Koşullu JSON Parçası (Boş / Dolu Geçiş)

Belirli bir koşul sağlandığında JSON nesnesine ilave bir alan eklenir, sağlanmadığında boş kalır. Bu pattern üç satırla uygulanır:

Satır 1: Varsayılan Değer Atama

AlanDeğer
Oluşturma ModuTemplate
Şablonnull
HedefÖzel Değişken → extraInfo

Satır 2: Koşullu Değer Atama

AlanDeğer
Oluşturma ModuTemplate
Şablon{"source":"premium","tier":"gold"}
HedefÖzel Değişken → extraInfo
Satır 2 Koşulu:
DeğişkenOperatörDeğer
Header X-Account-TypeEşittirpremium

Satır 3: Ana Şablona Dahil Etme

{"userId":"#{body.$.userId}","name":"#{body.$.name}","extra":#{extraInfo}}

Sonuç

X-Account-Type DeğeriÜretilen Çıktı
premium{"userId":"123","name":"Ahmet","extra":{"source":"premium","tier":"gold"}}
(diğer){"userId":"123","name":"Ahmet","extra":null}

JEXL Ternary vs. Satır Koşulu: Tek bir değeri dönüştürüyorsanız JEXL ternary daha kısa ve okunaksızdır. Bir satırı tamamen atlamak istiyorsanız satır koşulunu tercih edin.
Koşullu JSON parçası üretirken, hedef şablonda #{extraInfo} ifadesinin çevresine tırnak işareti koymayın; değer olduğu gibi JSON’a yerleştirilmelidir.