SAP Business One'ı bağlamak: Service Layer, OData ve RFC middleware karşılaştırması
OData ile Service Layer veya RFC middleware: SAP Business One'ı n8n üzerinden login, oturum ve ölçeklendirme dahil olmak üzere nasıl düzgün şekilde bağlarsın.
SAP Business One, birçok orta ölçekli şirkette finansal muhasebe, depo ve satış için omurga niteliğindedir. Bu ERP sistemi bir CRM, bir çevrimiçi mağaza veya bir raporlama panosu gibi başka araçlara bağlanacağı anda temel bir mimari soru ortaya çıkar: REST tabanlı OData ile Service Layer üzerinden mi yoksa klasik bir RFC middleware üzerinden mi. Bu karar proje çabasını, sürdürülebilirliği ve nihayetinde otomasyonun maliyetini doğrudan etkiler, bu yüzden her SAP B1 entegrasyon projesinin başında net şekilde verilmelidir.
Bu yazıda iki yaklaşımı karşılaştırıyor, n8n'in bir otomasyon katmanı olarak aralarında nasıl yer aldığını gösteriyor ve kimlik doğrulama, hata yönetimi ve ölçeklendirme konusunda nelere dikkat etmen gerektiğini anlatıyoruz. Güncelleme: Temmuz 2026.
Service Layer ile RFC middleware: temel çelişki
SAP Business One, dışarıdan verilere erişmek için birbirinden temelde farklı iki yol sunar:
- Service Layer: HTTP isteklerini kabul eden ve verileri JSON formatında döndüren modern, RESTful bir web API'sidir. OData protokolünü izler ve özellikle modern bulut ve otomasyon araçlarıyla entegrasyon için tasarlanmıştır.
- RFC (Remote Function Call): Klasik SAP sistemlerinin iletişim kurduğu, daha eski ve SAP'ye özel protokoldür. n8n gibi bir otomasyon aracından erişim için burada mutlaka bir middleware katmanına ihtiyacın vardır, örneğin bir RFC kütüphanesine sahip bir Node.js servisi veya RFC çağrılarını bir HTTP arayüzüne çeviren SAP Cloud Integration gibi bir entegrasyon platformu.
Projen için belirleyici fark şudur: Service Layer, n8n'in doğal olarak anladığı dili, yani HTTP ve JSON'ı zaten konuşur. RFC ile ayrıca ayrı olarak geliştirilmesi, barındırılması ve bakımının yapılması gereken bağımsız bir middleware bileşenine ihtiyacın olur. Bu, başlangıç çabasını ve sistemdeki hareketli parça sayısını artırır, ancak zaten RFC yapı taşlarına sahip mevcut bir SAP entegrasyon altyapın varsa veya Service Layer'ın kapsamadığı işlevlere ihtiyacın varsa buna değebilir.
n8n ile Service Layer yaklaşımı
Otomasyon projelerinin çoğu için Service Layer daha pragmatik bir başlangıç noktasıdır. HTTP Request Node n8n dokümantasyonuna göre "one of the most versatile nodes in n8n"dir ve "HTTP requests to query data from any app or service with a REST API" göndermeni sağlar. Service Layer için tam olarak gereken budur, çünkü n8n'de özel bir SAP B1 node'u yoktur ve bağlantıyı HTTP çağrıları üzerinden kendin modellersin.
Tipik bir bağlantının akışı
- Login: Bir HTTP Request node'u, Service Layer login endpoint'ine (genellikle `https://<server>:<port>/b1s/v1/Login`) body içinde CompanyDB, UserName ve Password ile bir POST gönderir.
- Oturum çerezi: Yanıt, n8n'de örneğin bir Set node'u veya statik veri deposu aracılığıyla önbelleğe aldığın ve sonraki tüm isteklerde header içinde gönderdiğin bir `B1SESSION` çerezi içerir.
- OData sorguları: Sonraki HTTP Request node'ları `Orders`, `BusinessPartners` veya `Items` gibi varlıklara erişir. `$select`, `$filter`, `$orderby` ve `$top` gibi OData sorgu parametreleri, tam veri kümelerini yükleyip ancak n8n'de filtrelemek yerine veri miktarını tam olarak workflow'un ihtiyaç duyduğu şeye indirger.
- Oturum zaman aşımı: Service Layer oturumları belirli bir süre işlem yapılmadığında sona erer. Sağlam bir workflow, yanıtın durum kodunu kontrol eder ve 401 hatasında basitçe durmak yerine gerektiğinde oturumu otomatik olarak yeniler.
Kimlik doğrulamayı düzgün şekilde kurgulamak
Service Layer için hazır bir n8n credential'ı olmadığından, HTTP Request node'unun genel kimlik doğrulama seçenekleriyle çalışırsın. HTTP Request credential dokümantasyonuna belgelere göre bunun için diğerlerinin yanı sıra "Basic auth, Custom auth, Digest auth, Header auth, OAuth1 API, OAuth2 API, Query auth" kullanılabilir. Service Layer'ın klasik login çerezi akışı için genellikle ilk bir login isteği ile oturum çerezini dinamik olarak girdiğin sonraki bir Header auth credential'ının birleşimi yeterlidir. Üretim ortamları için önemli bir nokta: Service Layer kendinden imzalı veya dahili bir sertifikayla çalışıyorsa, dokümantasyona göre CA bundle, sertifika ve private key'i ayrı bir credential olarak saklayarak "an SSL certificate with your HTTP request" gönderebilirsin, SSL kontrollerini toptan devre dışı bırakmak yerine.
RFC middleware yaklaşımı
Daha büyük SAP altyapılarında veya Service Layer tarafından kapsanmayan işlevlere, örneğin belirli eski süreçlere veya iş mantığına derinlemesine yerleşmiş fonksiyon modüllerine ihtiyaç duyulduğunda RFC'den kaçış yoktur. n8n, RFC'yi doğal olarak konuşmadığından aralarında bir middleware katmanına ihtiyacın vardır:
- RFC kütüphanesine sahip özel bir Node.js veya Python servisi, gelen HTTP isteklerini SAP sistemine yönelik RFC çağrılarına çevirir ve yanıtı JSON olarak döndürür.
- n8n daha sonra bu servise, tıpkı başka herhangi bir REST API'sinde olduğu gibi, HTTP Request node'u üzerinden tamamen normal şekilde erişir.
- Alternatif olarak, mevcut bir entegrasyon platformu (örneğin SAP Cloud Integration) bu çeviriyi üstlenir ve n8n, tetikleyicileri, hata yönetimini ve üçüncü taraf sistemlere bağlantıyı yöneten orkestrasyon katmanı haline gelir.
Bu yaklaşım, middleware'in kendisinin oluşturulması, test edilmesi ve işletilmesi gerektiğinden başlangıçta daha fazla geliştirme çabası anlamına gelir. Buna karşılık, Service Layer'da basitçe bulunmayan fonksiyon modüllerine erişim elde eder ve mevcut SAP yetkilendirme konseptlerini RFC seviyesinde kullanmaya devam edebilirsin. Entegrasyon değeri yüksek projelerde, doğru olmayan bir bağlantının daha sonra pahalıya mal olacak şekilde yeniden yapılandırılması gerektiğinden, temiz bir mimari kararın finansal olarak kendini amorti ettiği nokta genellikle burasıdır.
Hata yönetimini ve operasyonu gözden kaçırmamak
Yalnızca ideal durumda çalışan bir SAP bağlantısı üretim kullanımı için yeterli değildir. Her workflow'a sabit kontrol noktaları ekle:
- Oturum yenileme: Süresi dolmuş oturumları durum koduna göre tespit et ve workflow'un başarısız olmasına izin vermek yerine login'i otomatik olarak yenile.
- Retry mantığı: Ağ sorunları veya Service Layer'ın kısa süreli erişilemezliği, tek bir denemeyle değil, bekleme süresiyle sınırlı bir retry ile ele alınmalıdır.
- Hata günlüğü: Workflow içinde başarısız istekleri kaydeden ve gerektiğinde bildirim gönderen ayrı bir hata yolu, veri hatalarının fark edilmeden alt sistemlere geçmesini önler.
Örneğin birden çok paralel entegrasyon veya yüksek frekanslı senkronizasyonlarla veri hacmi arttığında, n8n'in üretim ortamındaki işleyişine bir göz atmak faydalı olur. Kendi barındırdığın kurulumlar için dokümantasyon kuyruk modunu tanımlar; burada bir ana örnek tetikleyicileri alır ve birden çok worker süreci asıl çalıştırmaları üstlenir. Bu, işleme yükünü zamana duyarlı tetikleyici kabulünden ayırır ve aynı anda birçok SAP workflow'u çalıştığında otomasyonu daha kararlı hale getirir.
Hangi yaklaşım projene uygun
Sipariş verilerini CRM'e yansıtmak, stok seviyelerini bir çevrimiçi mağazaya bildirmek veya fatura verilerini bir raporlama aracı için hazırlamak olsun, çoğu orta ölçekli bağlantı için Service Layer daha doğrudan ve daha az bakım gerektiren yoldur. Ek bir middleware'e ihtiyaç duymaz, standart HTTP konuşur ve n8n'deki HTTP Request node'u üzerinden tamamen modellenebilir. RFC middleware varyantı, Service Layer'ın işlevsel olarak yetersiz kaldığı veya zaten mevcut olan ve kullanılmaya devam edilmesi gereken bir RFC entegrasyon katmanının bulunduğu projelere ayrılmış olarak kalır.
Her iki durumda da verilerin ve sürecin kontrolü sende kalır: n8n ya kendi altyapında ya da seçtiğin bir ortamda çalışır ve SAP bağlantısının her adımı, şeffaf olmayan bir kara kutuda kaybolmak yerine bir workflow olarak görünür ve uyarlanabilir kalır. SAP Business One altyapın için hangi yaklaşımın doğru olduğundan emin değilsen, geliştirme başlamadan önce birlikte bir durum tespiti yapmak faydalı olur.
Sık sorulan sorular
Service Layer yaklaşımı için n8n'de özel bir SAP B1 node'una ihtiyacım var mı?
Hayır. n8n özel bir SAP Business One node'u sunmaz, ancak buna da gerek yoktur. Service Layer, login, oturum yönetimi ve asıl veri sorguları dahil olmak üzere tamamen HTTP Request node'u üzerinden modellediğin, OData destekli sıradan bir REST API'sidir.
Daha yüksek çabaya rağmen RFC middleware ne zaman değer?
RFC middleware, Service Layer'ın kapsamadığı fonksiyon modüllerine bağımlıysan veya kullanılmaya devam edilmesi gereken mevcut bir RFC entegrasyon altyapısı zaten varsa değerlidir. Yeni, sade entegrasyon projeleri için Service Layer genellikle daha verimli bir başlangıç noktasıdır.
Süresi dolan Service Layer oturumlarıyla nasıl başa çıkarım?
Service Layer, belirli bir işlemsizlik süresinden sonra oturumları sıfırlar. Sağlam bir n8n workflow'u her yanıtın durum kodunu kontrol eder, süresi dolmuş bir login'i otomatik olarak tespit eder ve asıl veri alımı tekrarlanmadan önce, tüm workflow'un başarısız olmasına izin vermek yerine yeni bir login isteği tetikler.
Dahili SAP sunucuları için SSL sertifikalarını n8n'de saklayabilir miyim?
Evet. n8n dokümantasyonuna göre, CA bundle, sertifika ve private key'den oluşan bir SSL sertifikası ayrı bir credential olarak oluşturulabilir ve HTTP Request node'una bağlanabilir. Bu, özellikle dahili olarak imzalanmış SAP sertifikalarında, SSL kontrolünü toptan devre dışı bırakmaya kıyasla daha temiz bir çözümdür.
Yüksek veri hacmi ve çok sayıda paralel SAP senkronizasyonunda ne olur?
Hacim arttıkça, kendi barındırılan n8n kurulumları için kuyruk modu önerilir. Bu modda bir ana örnek tetikleyicileri alırken birden çok worker süreci asıl workflow çalıştırmalarını üstlenir. Bu, birden fazla SAP entegrasyonu aynı anda çalışırken bile otomasyonu kararlı ve performanslı tutar.
NordFlux UG (haftungsbeschränkt)
NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.
Otomasyon veya KI hakkında somut sorularınız mı var?
Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.