SAP Integration Suite entegrasyon akışlarında mesajlar nadiren kaynak sistemden geldiği biçimiyle hedef sisteme iletilebilir. Content Modifier adımı, bu boşluğu kapatmanın en pratik ve güçlü yoludur. Bu rehberde Content Modifier’ın ne işe yaradığını, hangi sekmelerin hangi senaryolarda kullanıldığını, exchange property ile header arasındaki kritik farkı ve gerçek dünya örnekleriyle adım adım yapılandırmayı öğreneceksiniz. Rehberin sonunda Content Modifier’ı güvenle uygulayabilir, yaygın hatalardan kaçınabilir ve entegrasyon akışlarınızı daha bakımı kolay hâle getirebileceksiniz.
İçindekiler
Content Modifier, SAP Integration Suite (eski adıyla SAP Cloud Platform Integration – SAP CPI) içinde bir entegrasyon akışında mesaj içeriğini, başlıklarını (headers) ve değişken özelliklerini (exchange properties) dönüştürmek için kullanılan temel bir adımdır. Kaynak sistemden gelen bir mesajı doğrudan hedefe iletmek yerine bu adım sayesinde mesajı zenginleştirebilir, yeniden şekillendirebilir veya filtreleyebilirsiniz.
SAP belgelerine göre Content Modifier, Message Header, Exchange Property ve Message Body olmak üzere üç farklı katmanda değişiklik yapmanıza olanak tanır. Bu esneklik, aracı tek bir bileşenle hem routing kararları için değer taşıma hem de payload şekillendirme gibi birden fazla amaca hizmet eder.
İlgili konular için SAP Integration Suite’te Header, Property ve Exchange yazımızı inceleyebilirsiniz. Ayrıca SAP Integration Suite Monitoring: PO’dan Geçişte 7 Zor Nokta yazımız da entegrasyon akışlarını anlamak için faydalı bir kaynak olacaktır.
Content Modifier bileşeni açıldığında üç sekme karşınıza çıkar. Her sekmenin farklı bir kapsamı ve kullanım amacı vardır. Bu ayrımı kavramak, hem hatasız akış tasarımı hem de kolay bakım için kritiktir.
Bu sekme, mesaja HTTP ya da SOAP başlığı eklemenizi veya mevcut başlıkları değiştirmenizi sağlar. Özellikle HTTP adapter kullanırken Content-Type veya Authorization gibi başlıkları buradan ayarlarsınız.
Önemli uyarı: Header değerleri mesaj tamamlanana kadar bellekte tutulur; ancak bazı adapter’lar akıştan çıkarken başlıkları siler. Bu nedenle kritik değerleri aynı zamanda Exchange Property olarak da saklamak iyi bir pratiktir.
Exchange Property, SAP Integration Suite’in en güçlü değişken mekanizmalarından biridir. Burada tanımladığınız değerler tüm akış boyunca erişilebilir kalır ve birden fazla adım arasında veri taşımanızı kolaylaştırır.
Bir değeri property olarak kaydetmek için Expression Type sütununu XPath, Constant veya ${header.xxx} gibi seçeneklerden birine ayarlayıp Value alanına ilgili ifadeyi yazmanız yeterlidir.
${header.xxx}
Bu sekme, mesajın gövdesini (payload) değiştirmenize olanak tanır. Sabit bir XML veya JSON içeriği girmek ya da Groovy/XSLT ile üretilmiş dinamik içeriği yerleştirmek için kullanılır. Özellikle downstream sisteme gönderilecek mesajın önceden şablonlandırılmış olduğu senaryolarda değerlidir.
Aşağıdaki örnek senaryo, bir satış siparişi entegrasyonunda kullanılan Content Modifier konfigürasyonunu gerçek dünya yaklaşımıyla açıklamaktadır. SAP S/4HANA’dan gelen bir sipariş mesajının OrderID değeri property olarak saklanacak, ardından mesaj body’si zenginleştirilecektir.
orderID
/Order/OrderID
java.lang.String
Pratik Not – XPath Kullanımı: XPath ifadeleri, gelen mesajın XML yapısına göre değişir. Mesajın namespace içerdiği durumlarda namespace-uri() fonksiyonunu kullanmayı veya local-name() ile namespace’i devre dışı bırakmayı tercih edin.
namespace-uri()
local-name()
XML
//*[local-name()='OrderID']
<EnrichedOrder> <ID>${property.orderID}</ID> <ProcessedAt>${date:now:yyyy-MM-dd}</ProcessedAt> </EnrichedOrder>
SAP Integration Suite’in Monitoring ekranından ya da bir REST istemcisi (örn. Postman) üzerinden test mesajı gönderin. Message Processing Log bölümünde her adımın girdi ve çıktı payload’ını inceleyerek Content Modifier’ın beklediğiniz dönüşümü gerçekleştirip gerçekleştirmediğini doğrulayın.
SAP CPI öğrenme sürecinin en sık kafa karıştıran noktalarından biri, Message Header ile Exchange Property’nin ne zaman kullanılacağını bilmektir. Her ikisi de akış boyunca değer taşır; ancak kapsamları ve davranışları önemli ölçüde farklıdır.
Bu konuyu daha ayrıntılı anlamak için SAP Integration Suite’te Header, Property ve Exchange Nedir? yazımızı okumanızı öneririz.
Kural olarak: Bir değeri sadece akış içinde kullanacaksanız Exchange Property tercih edin. Değerin bir adapter tarafından okunması ya da hedef sisteme başlık olarak iletilmesi gerekiyorsa Message Header kullanın.
Bir Router adımından önce gelen mesajdaki müşteri tipi değerini (örn. PREMIUM veya STANDARD) property olarak saklayabilir, sonra Router koşulunda bu property’yi kullanabilirsiniz.
/Customer/Type
Bir REST servisi çağırırken Authorization başlığını Content Modifier ile eklemek, bu değeri akışın geri kalanından izole tutar ve adapter konfigürasyonunu temiz bırakır.
Bearer eyJhbGciOiJSUzI1NiJ9...
Exception subprocess içinde Content Modifier kullanarak insan tarafından okunabilir bir hata mesajı body’si oluşturabilirsiniz. Bu yaklaşım, hata bildirim e-postalarını ya da alert mesajlarını standartlaştırmak için idealdir.
EXPRESSION
Hata: ${exception.message} – Zaman: ${date:now:HH:mm:ss}
Downstream sisteme her zaman aynı acknowledgment mesajını göndermeniz gerekiyorsa Message Body sekmesinde sabit bir XML veya JSON içeriği tanımlayabilirsiniz. Bu, gereksiz mapping adımlarını ortadan kaldırır ve akışı sadeleştirir.
prop_orderID
prop_customerType
MDP Group olarak gerçekleştirdiğimiz B2B entegrasyon projelerinde Content Modifier’ın doğru konumlandırılmasının akış kararlılığını ve bakım kolaylığını doğrudan etkilediğini gözlemledik. Content Modifier tek başına güçlü bir araç olsa da asıl değerini SAP Integration Suite’in diğer bileşenleriyle birlikte kullanıldığında ortaya çıkar.
Tipik bir B2B entegrasyonunda Content Modifier şu şekilde konumlandırılır:
Bu mimari, SAP Integration Suite’in Cloud Integration katmanında yaygın olarak kullanılmaktadır. Özellikle SAP S/4HANA, SAP SuccessFactors ve üçüncü taraf sistemler arasındaki entegrasyonlarda Content Modifier, tutarlı bir veri akışı sağlamanın temel taşlarından biridir.
Daha ileri düzey dönüşümler için Content Modifier’ı Groovy Script veya XSLT Mapping adımlarıyla birleştirmeyi değerlendirin. Scheduler ve polling gibi zamanlama konularını öğrenmek için SAP Integration Suite Scheduler Polling Nedir? yazımızı inceleyebilirsiniz.
Sınırlama ve Uyarı: Bu rehberde anlatılan yöntemler SAP Integration Suite Cloud Integration bileşeni kapsamındadır. SAP Process Orchestration (PO) veya eski CPI sürümlerinde bazı özellikler farklı çalışabilir. Üretim ortamına geçmeden önce tüm konfigürasyonları sandbox ortamında test etmenizi öneririz.
Content Modifier, body, header ve property’yi aynı anda yönetebilen çok amaçlı bir adımdır. Message Transformer ise yalnızca mesaj gövdesinin formatını (örn. XML’den JSON’a) değiştirmek için kullanılır. Basit değer atamalarında Content Modifier tercih edilmeli, format dönüşümlerinde ise Message Transformer veya Mapping adımları kullanılmalıdır.
Hayır. Exchange Property yalnızca mevcut entegrasyon akışının çalışma zamanında geçerlidir. Akış tamamlandığında tüm property değerleri bellekten silinir ve dışarıya taşınmaz. Kalıcı veri saklamak için Data Store veya Variables kullanılmalıdır.
Content Modifier son derece hafif bir adımdır ve performans üzerindeki etkisi ihmal edilebilir düzeydedir. Okunabilirlik ve bakım kolaylığı adına sorumlulukları birden fazla Content Modifier adımına bölmek, tek bir adıma çok fazla işlem yüklemekten daha iyi bir yaklaşımdır. SAP’nin resmi tasarım kılavuzları da bu yaklaşımı destekler.
Bu rehberde SAP Integration Suite’de Content Modifier bileşeninin kapsamlı bir incelemesini yaptık. Content Modifier; Message Header, Exchange Property ve Message Body olmak üzere üç katmanda çalışır. Exchange Property akış içi geçici değerleri saklamak için en güvenli yoldur. Message Header ise adapter’a özgü metadata taşımak için kullanılmalıdır. XPath, Constant ve Expression tipleriyle dinamik ya da statik değerler tanımlanabilir.
SAP Integration Suite ile entegrasyon geliştirme konusunda daha fazla içerik için SAP PI/PO’dan SAP Integration Suite’e Geçiş ve SAP Integration Suite ile Event-Driven Architecture Nedir? yazılarımızı inceleyebilirsiniz.
SAP PI/PO/CPI Danışmanı Gamze Yücel Kurtkapan, SAP PI/PO/CPI ve Microsoft Azure Logic App alanında deneyime sahip bir entegrasyon danışmanıdır. Farklı sektörlerde birçok entegrasyon projesinde görev alan Gamze; SAP ve SAP dışı sistemlerin entegrasyonu, uçtan uca entegrasyon geliştirme ve modern bulut entegrasyon çözümleri üzerine uzmanlaşmıştır.
SAP SIGNAVIO PROCESS MANAGER NEDİR?
Signavio Process Manager, sezgisel, bulut tabanlı, profesyonel süreç modellemesi sunan bir SAP Signavio modülüdür. SAP Signavio Process...
Kaizen Çalışmaları Nasıl Yapılır?
Kaizen, süreçlerde, ürünlerde veya hizmetlerde küçük, artımlı değişiklikler yaparak önemli iyileştirmeler elde etme fikrine odaklanan...
SAP Joule vs. MDP SAP AI Assistant: Hangisi Kurumunuz için Daha Uygun?
Yapay zeka asistanları, artık teknolojik gelişme olarak görülmenin çok daha ötesinde. Kurumsal süreçlerde verimlilik, hız ve doğru karar...
SAP EWM Put Away Yöntemleri: 4 Strateji ve Konfigürasyon
SAP EWM put away yöntemleri, depolarda mal kabul alanından gelen ürünlerin hangi kriterlere göre raf veya depolama bölgesine taşınacağını...
Kurumsal Bilgi Yönetim Sistemi Nedir? Neden Önemlidir?
Kurumsal bilgi yönetim sistemi (KBYS), bir şirketteki tüm bilgilerin dijital ortamda düzenli biçimde depolandığı, çalışanların kolayca...
Muhasebe Süreçlerini Hızlandıran SAP e-Dönüşüm Çözümleri
Muhasebe süreçlerini hızlandıran SAP çözümleri, finans ve muhasebe ekiplerinin veri girişi, fatura yönetimi ve defter oluşturma gibi...
SAP Spartacus Nedir? Commerce Cloud Storefront Kapsamlı Rehber
SAP Spartacus nedir? SAP Spartacus, SAP Commerce Cloud (eski adıyla SAP Hybris) için geliştirilmiş, açık kaynaklı Angular tabanlı bir...
SAP EWM’in Temel Özellikleri ve Fonksiyonları
Bir depo yöneticisi veya tedarik zinciri profesyoneliyseniz, bir depoyu yönetmenin karmaşık ve zaman alıcı bir görev olabileceğini...
SAP Integration Suite ile EDI
SAP Integration Suite sayesinde, şirketler EDI’yi kurumsal sistemleri arasında etkin bir şekilde kullanmanın zorluğunu ve zaman alan yönetim...
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.