Blog

SAP Integration Suite’te Header, Property ve Exchange

Giriş

SAP Integration Suite kullanırken, mesaj akışı sırasında sık sık karşılaşılan kafa karıştırıcı bir konu vardır: Header, Property ve Exchange.SAP Integration Suite’te stabil ve öngörülebilir iFlow’lar geliştirebilmek için HeaderProperty ve Exchange kavramlarının rolünü net biçimde ayırt etmek gerekir. Header’lar adapter’lar arası teknik veriyi taşırken, Property’ler iFlow içindeki iş mantığına ait değerleri saklamak ve paylaşmak için kullanılır  Exchange ise tüm mesajı ve metadata’yı kapsayan üst konteynerdir. Bu ayrımı doğru kurgulamak, özellikle subflow kullanımı ve script adımlarında null değer, veri kaybı veya beklenmeyen davranışların önüne geçer. Doğru yerde doğru yapıyı kullanmak, hata  ayıklama sürecini kısaltarak entegrasyon tasarımını daha sürdürülebilir hale getirir.  Bu üç kavram birbirine benzer gibi görünse de, doğru kullanılmadığında iFlow’larda beklenmedik hatalara veya veri kayıplarına yol açabilir. Bu blogda, bu kavramların farklarına, kullanım alanlarına ve en sık yapılan hatalara değineceğiz. 

1.SAP Integration Suite’te Header, Property ve Exchange Nedir?

Header: 
  • Mesajın teknik üst bilgisini taşır. 
  • Genellikle adapter’lar arası veri iletmek için kullanılır. 
Örnek: HTTP header’ları, SOAP header’ları gibi. 
  • Mesaj ile birlikte taşınır, yani adapter’lar arasında geçebilir. 
Property: 
  • Integration Flow içinde taşınan veri öğesi. 
  • Local Property: Sadece tanımlandığı iFlow veya subflow içinde geçerlidir. 
  • Global Property: Subflow’lar ve route’lar arasında da taşınabilir. 
  • İş akışı boyunca değer saklamak ve paylaşmak için idealdir. 
Exchange: 
  • Bir mesajın ve metadata’nın tamamını kapsayan container’dır. 
  • Header ve Property’leri içerir. 
  • iFlow’daki tüm adımlar Exchange üzerinden mesaj iletir. 
Header,Property,Exchange

2.SAP Integration Suite’te Header, Property ve Exchange Nasıl Kullanılır?

Senaryolar
  1. Adapter’dan gelen özel bir header’ı iFlow içinde okumak ve işlemek.
  2. Bir subflow’a veri geçirmek için property kullanmak.
  3. Exchange context ile tüm mesaj ve metadata’yı bir script step’te işlemek.
Yaygın Hatalar
  1. Header’dan property okumaya çalışmak:
// Yanlış kullanımdef value = message.getProperty("HTTP_Header_Name") // Header değil Property
  1. Local property’yi subflow’ta kullanmak:
    • Local property sadece oluşturulduğu scope’ta geçerlidir. Subflow’ta erişmeye çalışmak null döndürür.
  2. Exchange context’i yanlış anlamak:
    • Exchange, mesaj ve metadata’yı kapsar. Sadece mesajı değiştirmek header veya property’i etkilemeyebilir.

3.iFlow’ta Değerler Nerede Saklanmalı? Header, Local Property ve Global Property Kullanımı

  • Değerleri nerede saklamalı?
    • Adapter’dan gelen değerler → Header
    • iFlow içi hesaplamalar veya flag’ler → Local Property
    • Subflow’lar arası veri paylaşımı → Global Property
  • Script veya Mapping adımlarında dikkat:
    • message.getHeaders() ve message.getProperties() arasındaki farkı bilin.

4.Örnek: Subflow’a Global Property ile Veri Aktarımı

// Parent iFlow’dadef message = exchange.getMessage()message.setProperty("CustomerID", "12345", true) // true = global propertyexchange.setMessage(message)// Subflow’dadef subMessage = exchange.getMessage()def customerId = subMessage.getProperty("CustomerID")println("Customer ID: " + customerId) // 12345Bu örnek, global property kullanarak bir subflow’a veri geçmenin en güvenli yolunu gösteriyor.

5.Sonuç

SAP Integration Suite’te Header, Property ve Exchange arasındaki farkları bilmek, iFlow’larınızda veri kaybını önler ve hata ayıklamayı kolaylaştırır. Özetle:
  • Header: Adapter’lar arası taşınan teknik veri.
  • Property: iFlow veya subflow içi değer saklama ve paylaşma.
  • Exchange: Mesaj ve metadata’yı kapsayan container.

Benzer
Bloglar

Mailiniz başarıyla gönderilmiştir en kısa sürede sizinle iletişime geçilecektir.

Mesajınız ulaştırılamadı! Lütfen daha sonra tekrar deneyin.