SAP entegrasyonu, SAP sisteminizdeki ürün, stok, fiyat, müşteri ve sipariş verisinin e-ticaret sitesi, B2B bayi portalı, saha satış uygulaması veya CRM gibi diğer yazılımlarla otomatik, kontrollü ve izlenebilir şekilde paylaşılmasıdır. Ancak SAP tek bir ürün değildir: KOBİ ve orta ölçekli firmaların yaygın olarak kullandığı SAP Business One ile daha büyük ve karmaşık yapıların kullandığı SAP S/4HANA ve ECC, dışarıya birbirinden çok farklı arayüzler sunar. Bu rehberde SAP entegrasyonunun nasıl yapıldığını adım adım anlatıyoruz: hangi SAP ürününde hangi arayüz kullanılır, veri hangi yönde akar, anlık ve toplu aktarım ne zaman tercih edilir, test nasıl yapılır ve projede kim hangi işi üstlenir.
Önce hangi SAP'yi kullandığınızı netleştirin
"SAP ile entegre olalım" cümlesi, kullandığınız ürüne, sürüme ve kurulum tipine göre birbirinden çok farklı projeler anlamına gelebilir. Bu yüzden keşif görüşmesinde ilk netleştirdiğimiz konu budur.
| SAP ürünü | Tipik kullanıcı | Başlıca entegrasyon arayüzleri |
|---|---|---|
| SAP Business One | KOBİ ve orta ölçekli firmalar | Service Layer, DI API, Integration Framework (B1if) |
| SAP S/4HANA (şirket içi veya özel bulut) | Büyük şirketler ve şirket grupları | OData ve SOAP API'leri, BAPI/RFC, IDoc |
| SAP S/4HANA Cloud Public Edition | Standart süreçlerle bulutta çalışan firmalar | SAP'nin yayımladığı (released) API'ler, çoğunlukla OData ve SOAP; iş olayları |
| SAP ECC | Henüz S/4HANA'ya geçmemiş kurulumlar | BAPI/RFC, IDoc, SOAP servisleri, SAP Gateway üzerinden OData |
Hangi arayüzün kurulumunuzda gerçekten açık olduğu sürüme, lisansa ve SAP tarafındaki yapılandırmaya bağlıdır. Örneğin S/4HANA Cloud Public Edition'da dış sistemler, iletişim senaryoları ve iletişim düzenlemeleri (communication arrangement) üzerinden bağlanır; şirket içi kurulumlardaki gibi her fonksiyona serbestçe erişilmez. Arayüz seçimini bu nedenle her zaman SAP çözüm ortağınızla veya şirket içindeki SAP ekibinizle birlikte doğruluyoruz.
SAP Business One entegrasyonu: Service Layer ve DI API
SAP Business One Service Layer, Business One'ın web tabanlı uygulamalar için sunduğu, OData protokolüne dayanan REST arayüzüdür. Sipariş, cari kart (Business Partner), ürün ve gelen ödeme gibi iş nesneleri HTTP üzerinden JSON olarak okunur ve oluşturulur; kullanıcı tanımlı alanlara ve tablolara da bu katmandan erişilir. Platformdan bağımsız çalıştığı ve yük dengeleme ile ölçeklenebildiği için e-ticaret, B2B portal ve mobil uygulama entegrasyonlarında bugün ilk tercih budur. Belgeler, DI API'de olduğu gibi Business One'ın kendi iş mantığından geçer; vergi hesaplama, belge numaralandırma ve doğrulamalar SAP tarafında yapılır.
Service Layer oturum tabanlı çalışır. Her istekte yeniden oturum açmak yerine oturumu yeniden kullanmak ve uygun yerlerde istekleri toplu ($batch) göndermek, SAP sunucusundaki yükü azaltır. Service Layer, HANA üzerindeki kurulumlarda uzun süredir bulunur; SQL Server kurulumlarına ise daha yeni sürümlerle gelmiştir. Bu yüzden kendi sürümünüzde neyin mevcut olduğunu kontrol etmek gerekir.
DI API ise Windows üzerinde çalışan, COM tabanlı daha eski bir arayüzdür. Masaüstü eklentiler (add-on) ve SAP sunucusuyla aynı yerel ağda çalışan servisler için kullanılır; web ve mobil kanallarda genellikle Service Layer daha uygundur. Business One ile gelen Integration Framework (B1if) ise daha çok EDI ve SAP sistemleri arası akışlarda devreye girer.
Veritabanı tarafında kural nettir: SAP, Business One veritabanına doğrudan yazmayı desteklemez. Tablolara doğrudan yazılan bir sipariş, SAP'nin stok ve bakiye mantığını atlar ve destek kapsamınızı riske atar. Raporlama gibi okuma ihtiyaçlarında salt okunur bir kullanıcı ve görünümler (view) kullanılabilir; ancak özellikle HANA üzerindeki kurulumlarda bunun veritabanı lisansınızla uyumlu olduğunu önceden teyit etmek gerekir.
SAP S/4HANA ve ECC entegrasyonu: OData, BAPI/RFC ve IDoc
S/4HANA ve ECC'de birden fazla SAP entegrasyon yöntemi bir arada kullanılır ve tek bir doğru arayüz yoktur; her veri akışı için ayrı karar verilir.
OData ve SOAP API'leri
S/4HANA; satış siparişi, Business Partner, ürün ve stok gibi nesneler için SAP Business Accelerator Hub'da (eski adıyla SAP API Business Hub) belgelenmiş, yayımlanmış API'ler sunar. SAP bu API'leri sürüm yükseltmelerinde kararlı kalacak şekilde yayımlar. Bu nedenle SAP çekirdeğini değiştirmeden genişletmeyi esas alan "clean core" yaklaşımında ilk tercih bunlar olmalıdır; web ve mobil uygulamalar için de en doğal seçenek bunlardır.
BAPI ve RFC
BAPI'ler, SAP iş nesneleri için tanımlanmış ve RFC ile uzaktan çağrılabilen fonksiyonlardır. ECC'de en sık kullanılan entegrasyon yollarından biridir; şirket içi ve özel bulut S/4HANA kurulumlarında da kullanılmaya devam eder. Örneğin bir satış siparişi BAPI ile oluşturulabilir; fiyat ve stok ise sipariş kaydedilmeden önce bir simülasyon çağrısıyla kontrol edilebilir. RFC çağrıları genellikle SAP Java Connector (JCo) veya .NET Connector (NCo) gibi kütüphanelerle ya da bir ara katman üzerinden yapılır.
IDoc
IDoc, SAP'nin asenkron belge alışverişi biçimidir. Sipariş, irsaliye, fatura veya ana veri değişiklikleri IDoc olarak dışarı gönderilebilir ya da içeri alınabilir. Anlık yanıt gerektirmeyen, yüksek hacimli ve toplu akışlar için uygundur; SAP her IDoc'un durumunu izler ve hatalı olanlar yeniden işlenebilir. Ancak müşteriye o anda yanıt vermesi gereken bir web sepeti için tek başına doğru araç değildir.
SAP BTP Integration Suite ve ara katman
Cloud Integration, API Management ve olay yönetimi bileşenlerini içeren SAP BTP Integration Suite, SAP'nin bulut tabanlı entegrasyon platformudur. Şirketinizde zaten kullanılıyorsa dönüşüm ve yönlendirme gibi işler burada yapılabilir; şirket içindeki SAP sistemlerine erişim Cloud Connector üzerinden sağlanır. Eski kurulumlarda benzer rolü SAP PI/PO üstlenir. Bu platformlar sistemler arasındaki mesaj akışını yönetir; mağazanın, bayi portalının veya mobil uygulamanın ihtiyaç duyduğu önbellek, çevrimdışı çalışma ve kanala özgü iş mantığı ise çoğu projede uygulamanın kendi arka ucunda ya da ayrı bir ara katmanda kalır. İkisi birbirinin alternatifi değil, tamamlayıcısıdır.
SAP entegrasyonunda hangi veri hangi yönde akar?
Arayüzü seçmeden önce akışları tek tek listelemek gerekir. Tipik bir SAP entegrasyonunda tablo şöyle görünür:
| Veri | Yön | Not |
|---|---|---|
| Ürün ve malzeme ana verisi | SAP → kanal | Web açıklamaları ve görseller çoğu zaman ayrı tutulur |
| Fiyat ve iskonto koşulları | SAP → kanal | Fiyat listesi veya sipariş öncesi simülasyon |
| Stok ve kullanılabilirlik | SAP → kanal | Sık aralıklarla; kritik anda anlık sorgu |
| Müşteri, cari bakiye ve kredi limiti | SAP → kanal | B2B ve saha senaryolarında zorunlu |
| Satış siparişi | Kanal → SAP | Kuyruk üzerinden, tekrar önleme anahtarıyla |
| Yeni müşteri adayı | Kanal → SAP | Onaydan sonra cari karta dönüşür |
| Tahsilat ve iade talebi | Kanal → SAP | Saha satış ve B2B senaryolarında |
| Sipariş durumu, irsaliye ve fatura | SAP → kanal | Müşteriye ve temsilciye durum bilgisi için |
Temel ilke şudur: ticari belgenin asıl kaydı SAP'dedir. Faturayı e-ticaret tarafında ayrıca kesmek yerine SAP'de oluşturmak ve e-Fatura ya da e-Arşiv faturasını SAP'ye bağlı e-dönüşüm altyapınız üzerinden göndermek, kayıtların tek yerde kalmasını sağlar. e-Fatura ile e-Arşiv arasındaki seçimi ve özel entegratör bağlantısını e-Fatura entegrasyonu rehberimizde ayrıca anlattık.
Anlık mı, toplu aktarım mı?
Her veriyi anlık aktarmak hem gereksizdir hem de SAP sunucusuna yük bindirir. Pratikte üç yöntemi bir arada kullanıyoruz:
- Toplu ve periyodik aktarım: Ürün, fiyat listesi ve müşteri ana verisi gibi seyrek değişen veriler, zamanlanmış görevlerle ve yalnızca değişen kayıtlar çekilerek (delta) eşitlenir.
- Olay tabanlı aktarım: Sipariş ve tahsilat oluştuğu anda kuyruğa alınır ve SAP'ye sırayla iletilir; SAP'ye ulaşılamazsa kayıt kaybolmaz, tekrar denenir.
- Talep üzerine sorgu: Ödeme adımından hemen önce stok, B2B siparişinden önce kredi limiti gibi kritik değerler SAP'den anlık sorgulanır.
Web sitesinin her sayfa açılışında SAP'ye gitmesi ise kaçınılması gereken bir tasarımdır. Katalog ve fiyatlar bir önbellekten sunulmalı, SAP yalnızca gerçekten gerektiğinde çağrılmalıdır.
Kanal bazında SAP entegrasyon senaryoları
SAP e-ticaret entegrasyonu
Ürün ve stok SAP'den siteye akar, sipariş siteden SAP'ye satış siparişi olarak düşer. B2C tarafında ödeme sitede, banka veya ödeme kuruluşunun sanal POS'u üzerinden 3D Secure ile alınır; SAP'ye ödemesi tamamlanmış sipariş, ödeme referansı ve tutarıyla birlikte aktarılır. Kart bilgisi SAP'ye gitmez. Ürün açıklamaları, görseller ve SEO içerikleri SAP'deki ürün ana verisinde değil, sitenin kendi içerik yönetiminde tutulmalıdır. Trendyol veya Hepsiburada gibi pazaryerlerinden gelen siparişler de aynı kuyruk üzerinden SAP'ye aktarılabilir. Mağaza tarafını nasıl kurguladığımızı e-ticaret sitesi sayfamızda anlattık.
SAP B2B entegrasyonu ve bayi portalı
B2B'de işin ağırlığı fiyat ve cari tarafındadır: her bayi kendi fiyatını, iskontosunu, bakiyesini ve kredi limitini görmelidir. Bu verinin SAP ile tutarlı olması, portala duyulan güveni doğrudan belirler. Portal tarafının nasıl kurgulanacağını B2B bayi portalı sayfamızda ve B2B sipariş portalı yazımızda ayrıntılı olarak anlattık.
Saha satış ve CRM
Saha ekibi çoğu zaman bağlantının zayıf olduğu yerlerde çalışır. Bu yüzden mobil uygulama, verinin cihazdaki yerel bir kopyasıyla çevrimdışı çalışır; siparişler bağlantı geldiğinde ara katman üzerinden SAP'ye gider. BernSFA rota, ziyaret, mobil sipariş ve tahsilat süreçlerini yönetir ve Logo, Mikro, Netsis veya SAP ile entegre çalışacak şekilde kurgulanır. CRM tarafında ise BernCRM, BernSFA'nın müşteri ve satış altyapısı üzerine kuruludur ve aynı veriyi kullanır.
Ana veri kalitesi: entegrasyonun görünmeyen yarısı
SAP entegrasyon projelerinde sorunların önemli bir kısmı arayüzden değil, veriden çıkar. Canlıya geçmeden önce şu konuları gözden geçirmek gerekir:
- Mükerrer müşteri kayıtları: Aynı firmanın birden fazla Business Partner kaydı olması, siparişlerin yanlış cariye düşmesine yol açar.
- Birim dönüşümleri: SAP'de temel birim adet, satış birimi koli olabilir; kanalın hangi birimle sipariş vereceği net olmalıdır.
- Satış alanı ve organizasyon verisi: S/4HANA ve ECC'de bir siparişin oluşması için satış organizasyonu, dağıtım kanalı ve bölüm gibi değerlerin doğru belirlenmesi gerekir.
- Vergi ve fiyat koşulları: KDV kodları ve iskonto kuralları kanalda yeniden yazılmamalı, SAP'den alınmalıdır.
- Depo ve üretim yeri: Hangi depodaki stokun hangi kanalda gösterileceği önceden kararlaştırılmalıdır; Business One'da bu depo, S/4HANA ve ECC'de ise üretim yeri ve depo yeri düzeyinde belirlenir.
Her veri için bir sahip belirlemek de önemlidir: ürünün ve fiyatın sahibi SAP, web içeriğinin sahibi site, ziyaret notlarının sahibi ise CRM'dir.
SAP çözüm ortağı ile entegrasyon ekibinin rolleri
SAP entegrasyonunda iki taraf birlikte çalışır: SAP'yi yöneten çözüm ortağınız veya şirket içindeki SAP ekibiniz ile SAP'nin çevresindeki yazılımı geliştiren entegrasyon ekibi. Sınırları baştan çizmek projeyi hızlandırır. Biz bir SAP çözüm ortağı değiliz; e-ticaret sitesini, bayi portalını, mobil uygulamayı ve aradaki entegrasyon katmanını geliştiren ekibiz. Tipik iş bölümü şöyledir:
| İş | SAP çözüm ortağı veya SAP ekibi | Entegrasyon ekibi |
|---|---|---|
| SAP'de teknik kullanıcı ve yetkiler | Tanımlar | İhtiyaç listesini çıkarır |
| Service Layer, OData servisi veya IDoc ayarları | Etkinleştirir ve yapılandırır | Kullanır ve test eder |
| SAP içinde özel geliştirme (ABAP, kullanıcı tanımlı alan) | Geliştirir | Gereksinimi tanımlar |
| Ara katman, kuyruk ve izleme paneli | Gözden geçirir | Geliştirir ve işletir |
| E-ticaret sitesi, portal, mobil uygulama, CRM | Bilgilendirilir | Tasarlar ve geliştirir |
| Alan eşleştirme ve test senaryoları | Birlikte | Birlikte |
Lisans konusu da bu aşamada konuşulmalıdır. Dış sistemlerin SAP'ye bağlanması ve SAP'de belge oluşturması lisans koşullarına tabi olabilir; kendi sözleşmenizdeki durumu SAP hesap yöneticiniz veya çözüm ortağınızla netleştirmenizi öneririz.
Test: canlı SAP üzerinde deneme yapılmaz
Business One'da canlı şirketin bir test kopyası, S/4HANA ve ECC'de ise genellikle ayrı geliştirme ve kalite (test) sistemleri kullanılır. Kopyada gerçek müşteri verisi bulunduğu için test ortamına erişimi sınırlamak ve gerektiğinde kişisel verileri maskelemek KVKK açısından da önemlidir. Test planı en az şu başlıkları kapsamalıdır:
- Uçtan uca senaryolar: Siparişin sitede verilmesinden SAP'de faturalanmasına kadar tüm akış.
- Olumsuz senaryolar: Kredi limiti aşımı, stokta olmayan ürün, bloke edilmiş müşteri, eksik zorunlu alan.
- Kesinti senaryoları: SAP'ye ulaşılamadığında kuyruğun bekleyip tekrar denemesi ve aynı siparişin iki kez oluşmaması.
- Yük senaryoları: Kampanya başlangıçları ve ay sonu gibi yoğun dönemler.
- Mutabakat: Belirli bir dönemde kanaldaki siparişlerle SAP'deki belgelerin karşılaştırılması.
SAP entegrasyonunda sık yapılan hatalar
- SAP veritabanına doğrudan yazmak.
- SAP'nin fiyatlandırma mantığını web tarafında yeniden yazmaya çalışmak; iki sistemin fiyatı zamanla birbirinden ayrışır.
- Geniş yetkili bir kullanıcıyla entegrasyon yapmak; teknik kullanıcı yalnızca ihtiyaç duyduğu yetkilere sahip olmalıdır.
- Service Layer'da her istek için yeniden oturum açmak; bu hem yavaştır hem de SAP sunucusunu gereksiz yere yorar.
- Hataları bir e-posta kutusuna bırakmak; aktarılamayan her kayıt bir panelde görünmeli ve yeniden gönderilebilmelidir.
- Tüm akışları aynı anda canlıya almak; önce ürün, stok ve sipariş akışını, ardından diğerlerini devreye almak riski azaltır.
- S/4HANA'da yayımlanmış bir API varken özel ABAP geliştirmesine gitmek; bu, sürüm yükseltmelerini zorlaştırır.
API, doğrudan veritabanı ve ara katman yaklaşımlarının genel karşılaştırmasını ERP entegrasyon yöntemleri yazımızda bulabilirsiniz.
SAP entegrasyonu adım adım nasıl yapılır?
- Mevcut durumu çıkarın: SAP ürünü, sürümü, kurulum tipi, açık olan arayüzler ve bağlanacak kanallar.
- Veri akışı tablosunu hazırlayın: Her veri için yön, sıklık ve asıl kaynak.
- Arayüzleri SAP tarafıyla birlikte seçin: Her akış için Service Layer, OData, BAPI veya IDoc kararı.
- Eşleştirmeyi yapın, ana veriyi temizleyin: Kodlar, birimler, vergi ve organizasyon verileri.
- İlk fazı dar tutun: Ürün, stok ve sipariş akışıyla başlayın ve test sisteminde uçtan uca doğrulayın.
- Pilot ile canlıya geçin: Sınırlı bir müşteri veya bayi grubuyla başlayın, izleme panelini ilk günden açın.
- Destek sorumluluğunu belirleyin: SAP güncellemelerinde ve yeni ihtiyaçlarda entegrasyonun kimde olduğu belli olsun.
BernSoftware olarak SAP Business One veya S/4HANA kullanan firmalar için e-ticaret sitesi, B2B portal, saha satış ve CRM uygulamalarını ve bunları SAP'ye bağlayan entegrasyon katmanını geliştiriyoruz; SAP tarafındaki yapılandırmayı mevcut çözüm ortağınızla veya SAP ekibinizle birlikte planlıyoruz. Ayrıntılar için SAP entegrasyonu ve ERP entegrasyonu sayfalarımıza göz atabilir, ihtiyacınızı proje planlayıcı ile özetleyebilir ya da bizimle iletişime geçebilirsiniz. Bir keşif görüşmesinin ardından net bir zaman planı ve şeffaf bir teklif paylaşıyoruz.
Sıkça sorulan sorular
SAP Business One'a e-ticaret sitesi nasıl bağlanır?
Bugün en uygun yol Service Layer'dır. Ürün, stok ve fiyat bir ara katman üzerinden siteye aktarılıp önbellekte tutulur; siteden gelen siparişler kuyruğa alınır ve Service Layer ile Business One'da satış siparişi olarak oluşturulur. Böylece vergi hesaplama, belge numaralandırma ve doğrulamalar Business One'ın kendi kurallarıyla yapılır.
Service Layer ile DI API arasındaki fark nedir?
Service Layer, HTTP ve JSON ile çalışan, OData tabanlı bir REST arayüzüdür; platformdan bağımsız olduğu için web, mobil ve bulut uygulamalarına uygundur. DI API ise Windows üzerinde çalışan COM tabanlı bir arayüzdür ve daha çok masaüstü eklentilerinde ve SAP sunucusuyla aynı ağdaki servislerde kullanılır. Yeni web ve mobil entegrasyonlarda genellikle Service Layer tercih edilir.
SAP veritabanına doğrudan yazmak mümkün mü?
Teknik olarak mümkün olsa da yapılmamalıdır. SAP, veritabanına doğrudan yazmayı desteklemez; bu yöntem iş kurallarını atlar, tutarsız kayıtlara yol açar ve destek kapsamını riske atar. Yazma işlemleri için Service Layer, OData, BAPI veya IDoc gibi resmi arayüzler kullanılmalıdır. Okuma için bile doğrudan veritabanı erişiminin lisansınızla uyumlu olduğunu önceden kontrol etmek gerekir.
SAP entegrasyonu için SAP çözüm ortağına ihtiyacımız var mı?
SAP tarafındaki teknik kullanıcı, yetkiler, servislerin etkinleştirilmesi, olası ABAP geliştirmeleri ve lisans konuları için mevcut çözüm ortağınızla veya şirket içindeki SAP ekibinizle çalışmak en sağlıklısıdır. BernSoftware bir SAP çözüm ortağı değildir; e-ticaret, B2B portal, mobil ve CRM uygulamalarını ve bunları SAP'ye bağlayan entegrasyon katmanını geliştirir.
ECC'den S/4HANA'ya geçmeyi planlıyoruz, entegrasyonu şimdi yapmalı mıyız?
Yapabilirsiniz, ancak kanalları SAP'ye doğrudan bağlamak yerine bir ara katman üzerinden kurgulayarak. Böylece geçiş sırasında e-ticaret sitesi, portal veya mobil uygulama değişmez; yalnızca ara katmanın SAP'ye bakan tarafı S/4HANA'ya göre uyarlanır. S/4HANA'da müşteri ve tedarikçilerin Business Partner altında toplanması gibi veri modeli değişiklikleri olduğu için bazı alan eşleştirmelerinin yeniden gözden geçirilmesi gerekir.
Böyle bir proje mi planlıyorsun?
10 adımda planla