Etzel Art of Digital Manufacturing
Bize ulaşın
Lunex 1.6.0 kullanım kılavuzu

Simple ile değer ve koşul yazın

Body, header ve property okuyun; metin ve koşulları örneklerle deneyin.

Simple, mesajın body, header, exchange property ve variable değerlerini okuyup kısa ifadeler kurmak için kullanılır. Set Body içinde metin üretir; Choice, Filter veya Validate içinde koşul kurar. Hangi alanın değişeceğini dili kullanan adım belirler.

Bu alanlar sizin için yeniyse mesaj ve veri başvurusundaki Lunex örneği, nerede tutulduklarını ve nasıl değiştiklerini adım adım gösterir.

İlk ifadeyi sağ panelde deneyin

  1. Bir route’a Set Body ekleyin ve seçin.
  2. Properties → Language → Simple seçin.
  3. Expression alanına Hello ${body} yazın. Alana yalnız ifadeyi yazın; YAML’deki simple: veya expression: anahtarlarını eklemeyin.
  4. Adıma sağ tıklayıp Use only this step seçin.
  5. Input → Input body type → Text, Body → Lunex girin.
  6. Simulate seçin. Output → After değeri Hello Lunex olmalıdır.

Aynı adımın Code görünümü:

- setBody:
    simple: 'Hello ${body}'

Bu bir adım parçasıdır; mevcut route’un steps listesine eklenir. Tam dosya örneği ve birden fazla adımın sırası için akış sırası rehberini kullanın.

Mesajın farklı alanlarını okuyun

Aşağıdaki denemeler için JSON value body {"id":"A-100","amount":120}, Headers {"country":"TR"}, Exchange properties {"sourceSystem":"shop"} olsun. Her ifadeyi ayrı bir Set Body denemesinde çalıştırın; bir denemenin dönüştürülmüş body’sini sonraki örneğin girdisi yerine kullanmayın.

ExpressionBeklenen değerOkuduğu kaynak
${body[id]}A-100Body nesnesindeki id.
Order ${body[id]} / ${header.country}Order A-100 / TRBody ve header’dan yeni metin.
${exchangeProperty.sourceSystem}shopMesaj işlenirken tutulan property.
${header.country}TRHeader değeri.

Body nesnesinin alanlarını/metotlarını kullanan Simple ifadelerinde camel-bean desteği gerekir. Projenizin mevcut bağımlılıklarını koruyarak hazırlayın; yapılandırma rehberi nasıl eklendiğini açıklar. Simple’ın temel kullanımı çekirdek runtime’ın parçasıdır. Nesne ve method erişimi bu farkı açıklar.

Tek başına bir alan okuyan ifade, o alanın sayı veya nesne türünü koruyabilir; metinle birleştirme bir metin sonucu oluşturur. Sonraki adım sayı bekliyorsa sırf ekranda 120 göründüğü için türü varsaymayın. Output → Technical details ile inceleyin; gerektiğinde Expression properties → Result Type veya Convert Body To kullanın.

Koşul yazın

KoşulKullanım örneği
${body[amount]} > 1000Yüksek tutarlı siparişi inceleme dalına ayırma.
${header.country} == 'TR'Ülkeye göre yönlendirme.
${header.OrderId} != nullBaşlığın bulunmasını isteme.
${body[amount]} > 0 && ${header.country} == 'TR'İki koşulun birlikte sağlanması.

Karşılaştırma işleçlerinin çevresinde boşluk kullanın; metin sabitlerini tek tırnak içine alın. Sayıları JSON’da 120 olarak gönderin; "120" metin türüdür ve karşılaştırma/tür dönüşümü farklılaşabilir. Simple işleçleri.

Örneğin Validate adımında Language Simple, Expression ${body[amount]} > 0 olsun. JSON value ile {"amount":120} başarılıdır; {"amount":0} doğrulama hatası verir. Aynı koşul Choice’ta kullanılırsa hata üretmek yerine dal seçimini belirler. Tam Choice örneği EIP rehberindedir.

Mesaj ifadesi ile yapılandırma değerini ayırın

YazımAnlamı
${header.country}O an işlenen mesajın başlığı.
${exchangeProperty.sourceSystem}O mesajın işlenmesi sırasında saklanan bilgi.
{{orders.region}}Runtime yapılandırmasındaki property.
Order receivedConstant seçilmişse düz sabit değer.

application.properties dosyasında orders.region=TR varsa Simple ile Order ${body[id]} / {{orders.region}} yazabilirsiniz. id=A-100 için sonuç Order A-100 / TR olur. orders.region değerini body içine eklemek yapılandırma kaynağını doldurmaz. Properties ve Secret’lar değerlerin nasıl sağlandığını açıklar.

JSON metni, eksik alan ve null

${body[id]} örneği bir nesne bekler. Gerçek giriş HTTP veya kuyruktan JSON metni getiriyorsa önce ayrıştırın:

- unmarshal:
    json:
      library: Jackson
- setBody:
    simple: 'Order ${body[id]}'

Bu iki adımı birlikte simüle ederken JSON text kullanın. Yalnız Set Body’yi deniyorsanız JSON value kullanın. Jackson için camel-jackson bağımlılığı gerekir.

Eksik alan, null ve boş metin farklı durumlardır. İş için zorunlu OrderId başlığını Validate veya Choice ile kontrol edin; eksik değeri sessizce boş metne dönüştürmek doğru iş sonucunu garanti etmez. İç içe nesneler ve ayrıntılı eksik-alan kuralları büyüdüğünde Groovy ile açık doğrulama ve dönüşüm kurabilirsiniz.

Sık karşılaşılan durumlar

SonuçKontrol
Çıktıda ${body} aynen yazıyorLanguage Constant mı? Logger kullanıyorsanız Log Language değerini kontrol edin.
id okunamıyorBody JSON text mi, nesne mi? Alanın adı ve Unmarshal sırası doğru mu?
Bir property bulunamıyor${exchangeProperty…} ile {{…}} farklı kaynakları okur.
İfade geçersiz veya method bulunamadıSimple sözdizimi, body türü ve gerektiğinde camel-bean bağımlılığı.
Sonuç eskiProperties değişikliğinden sonra yeniden Simulate; gerçek runtime için Run/Reload veya commit ve Build.

Simple’ın yerleşik işlevleri için dil referansı kullanılabilir. Birden fazla hesaplama ve nesne üretimi için Groovy rehberiyle devam edin.

Lunex’i kendi entegrasyonunuzla görün

Kılavuzda okuduklarınızı kendi sistemlerinizle deneyelim. Demo için bize yazın.