SAP Integration Suite’de büyük mesajları işlemenin en güvenilir yolu, Splitter ve Aggregator pattern’larını birlikte kullanmaktır. Splitter, binlerce kayıt içeren tek bir mesajı bağımsız işlenebilir parçalara böler; Aggregator ise bu parçaları ya da farklı kaynaklardan gelen ilişkili yanıtları yeniden tek bir anlamlı mesajda birleştirir. Bu yapı sayesinde bellek tüketimi düşer, paralel işleme mümkün hale gelir ve hata yönetimi sadeleşir. Bu rehberde her iki pattern’ın ne zaman ve nasıl kullanılacağını, SAP Integration Suite üzerindeki yapılandırma adımlarını ve gerçek senaryolardaki kullanım örneklerini ele alıyoruz. Entegrasyon akışlarınızı hem performans hem de sürdürülebilirlik açısından optimize etmek istiyorsanız okumaya devam edin.
İçindekiler
Modern kurumsal entegrasyonlarda tek bir mesajın içinde binlerce satır sipariş, fatura ya da envanter kaydı barındırması son derece yaygındır. SAP Integration Suite bu mesajları varsayılan olarak tek bir iş birimi olarak işler; bu da şu sorunlara yol açar:
Bu sorunları çözmek için SAP Integration Suite, Enterprise Integration Pattern (EIP) kitaplığından gelen Splitter ve Aggregator bileşenlerini sunar. Mesaj akışı içindeki teknik veriyi yönetmek için Header, Property ve Exchange kavramlarını da net biçimde ayırt etmek gerekir.
Splitter, tek ve büyük bir mesajı daha küçük, bağımsız işlenebilir mesajlara ayıran bir entegrasyon pattern’ıdır. SAP Cloud Integration’da Splitter bileşeni, mesajdaki belirli bir XML node’u veya JSON dizisini okuyarak her öğeyi ayrı bir mesaj olarak sonraki adımlara iletir.
Bir perakende şirketi, SAP S/4HANA’dan gelen toplu sipariş XML dosyasını üçüncü taraf bir lojistik sisteme göndermek istiyor. Dosyada 500–5.000 sipariş satırı bulunabiliyor. Tek mesaj olarak gönderildiğinde lojistik sistem zaman aşımı hatası veriyor.
Çözüm yaklaşımı:
Bu yapı sayesinde lojistik sistem üzerindeki yük eşit dağıtılır ve akış izlenebilirliği ciddi ölçüde artar.
Aggregator, bölünmüş mesajları ya da farklı kaynaklardan gelen ilişkili mesajları tek bir mesajda birleştiren pattern’dır. Splitter ile birlikte kullanıldığında Scatter-Gather veya Split-Process-Aggregate mimarisini oluşturur: mesajı böl, her parçayı ayrı ayrı işle, sonuçları birleştir.
Aggregator bileşenini yapılandırırken üç kritik parametre belirlenir:
Mesajları birleştirmeden önce biçimlendirmek gerektiğinde Content Modifier ile mesaj dönüşümü adımı bu akışı tamamlar.
Bir üretim firması, farklı depo sistemlerinden stok yanıtlarını toplayıp SAP S/4HANA’ya tek bir konsolide mesaj olarak göndermek istiyor. Her depo ayrı bir REST API’ye sahip ve yanıt süreleri farklılık gösteriyor.
Uygulanan akış:
Splitter ile bölünmüş mesajlarda hata yönetimi, tek mesaj senaryosuna kıyasla daha karmaşıktır. SAP CPI’da Exception Subprocess bileşenini her alt dal için ayrı ayrı tanımlamak gerekir. Başarısız olan mesajı Dead Letter Queue’ya (DLQ) ya da bir hata log tablosuna yönlendirmek, diğer mesajların işlenmesinin durmasını önler.
General Splitter tüm mesajı belleğe alır; Iterating Splitter ise kayıtları stream olarak okur. 10.000 satırı aşan dosyalar için Iterating Splitter kullanmak, bellek hatalarını önlemenin en pratik yoludur. Paralel işleme (Parallel Processing) etkinleştirildiğinde performans kazanımı ciddi boyutlara ulaşabilir; ancak hedef sistemin eş zamanlı bağlantı kapasitesini göz önünde bulundurmak gerekir.
Completion Condition olarak yalnızca mesaj sayısı belirlenirse, bir mesajın kaybolması durumunda Aggregator süresiz bekler. Bu nedenle her zaman bir timeout değeri tanımlamak gerekir. SAP CPI’da bu değer varsayılan olarak 15 dakikadır; ancak gerçek zamanlı senaryolarda 30–60 saniye yeterli olabilir. Timeout dolduğunda sistem mevcut mesajları bir hata işleyicisine yönlendirir ya da kısmi sonuç olarak işaretler.
MDP Group olarak yürüttüğümüz entegrasyon projelerinde, yüksek hacimli akışlarda Iterating Splitter ile tanımlı bir Aggregator timeout’unun birlikte kullanılmasının üretim ortamındaki kararlılığı belirgin biçimde artırdığını gözlemliyoruz. Bu pattern’lar yalnızca veri hacminin gerçekten yüksek olduğu (örneğin binlerce satırlık mesajlar) senaryolarda anlamlı kazanım sağlar; küçük ve sabit boyutlu mesajlarda ek karmaşıklık getirebilir.
Hayır. Splitter tek başına, mesajları bölüp bağımsız işlemek için yeterlidir. Aggregator ise yalnızca bölünmüş parçaları veya farklı kaynaklardan gelen yanıtları yeniden birleştirmek gerektiğinde devreye girer. İki pattern birlikte Scatter-Gather mimarisini oluşturur.
General Splitter tüm mesajı belleğe alarak böler ve daha hızlıdır; Iterating Splitter ise kayıtları stream olarak okur ve bellek tüketimi düşüktür. 10.000 satırı aşan büyük dosyalarda OutOfMemory hatalarını önlemek için Iterating Splitter tercih edilir.
Tamamlanma koşulu yalnızca mesaj sayısına bağlıysa, beklenen bir mesaj kaybolduğunda Aggregator süresiz bekler ve akış kilitlenir. Tanımlı bir timeout, süre dolduğunda mevcut mesajların hata işleyicisine yönlendirilmesini sağlayarak bu riski ortadan kaldırır.
SAP Integration Suite’de büyük mesajları Splitter ve Aggregator pattern’larıyla işlemek; sistem güvenilirliğini artırır, hata yönetimini sadeleştirir ve yüksek veri hacimlerinde performansı korur. Bu pattern’lar, mikro hizmet mimarisiyle çalışan projelerde de aynı prensipler dahilinde uygulanabilir.
SAP entegrasyon projelerinizde bu pattern’ları hayata geçirmek, mimari kararları değerlendirmek veya mevcut entegrasyon akışlarınızı optimize etmek istiyorsanız SAP deneyimli danışmanlık ekibimizle iletişime geçebilirsiniz: info@mdpgroup.com
SAP Entegrasyon Danışmanı SAP PI/PO ve SAP Integration Suite (CPI) alanında deneyimli, entegrasyon uzmanıdır. SAP ve SAP dışı sistemler ile üçüncü parti uygulamalar arasında uçtan uca ERP entegrasyon projeleri oluşturmaktadır. İş süreçlerinin sürdürülebilri ve ölçeklenebilir yönetilmesini sağlayan entegrasyon mimarilerinin oluşturulmasına katkı sağlamaktadır.
SAP TM’de Approval Workflow Neden Gereklidir?
Nakliye maliyetlerinin yönetiminde sadece doğru hesaplama yapmak yeterli değildiraynı zamanda bu hesaplamaların şirket politikalarına uygun...
SAP MM Nedir? Materials Management Modülü Hakkında Detaylı Rehber
SAP MM (Materials Management), bir işletmenin satın alma, stok yönetimi ve fatura doğrulama süreçlerini tek bir platform üzerinde yöneten SAP...
Salesforce Bulk API 2.0 Nedir? Nasıl Kullanılır?
Salesforce Bulk API 2.0, Salesforce sistemine büyük hacimli verileri hızlı ve verimli biçimde aktarmak için kullanılan bir REST servisidir....
NodeJS Projesine Swagger Entegrasyonu
Dökümantasyon Nedir? Dökümantasyonun ÖnemiBir uygulama yazarken, takımlararası iletişimi sağlamak, uygulamanın ne olduğunu ve hangi api...
SAP İş Teknolojisi Platformu’nun Faydaları
Günümüzde, kuruluşlar için en önemli şeylerden biri değişen teknolojiye ve yeniliklere karşı hızlı ve esnek bir şekilde tepki...
SAP RAP’ta Yan Etkiler(Side Effects) Nelerdir?
SAP RAP'ta yan etkiler, veri modelinin veya kullanıcı arayüzünün bir bölümündeki değişikliklerin diğer bölümleri nasıl etkilediğini...
Banka Entegrasyonu Nedir? ERP ve API Entegrasyon Rehberi
İşletmelerden bireylere kadar herkes günden güne gelişen dijital dünyada yerini almaktadır. Teknoloji ile birlikte dijital dönüşümün bir...
SAP S/4HANA Geçişinde Bütçe Aşımı Neden Olur? (ve Nasıl Önlenir?)
SAP S/4HANA geçiş projelerinin 'i bütçe aşımıyla sonuçlanıyor. Bütçe kontrolünü kaybettiren asıl nedenler ve kalıcı önleme...
Gelen e-Fatura SAP Entegrasyonu: Çalışma Prensibi
Gelen e-fatura SAP entegrasyonu, tedarikçilerden alınan e-Fatura, e-Arşiv Fatura ve matbu faturaların SAP sistemine otomatik olarak...
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.