Blog

SAP Integration Suite’te Header, Property ve Exchange

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. 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.Kavramların Temelleri

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.Kullanım Senaryoları ve Yaygın Hatalar

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.Pratik Öneriler

  • 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.