SAP'de Web Service Kullanımı
Web Service, RFC
Herkese merhaba!
Bu yazımda, oluşturduğum bir fonksiyonu RFC’ye bağlayarak temel düzeyde bir web servisin çalışma mantığını ve örnek senaryoda işleyişini göstereceğim. Web servisler, SAP’yi farklı bir sisteme bağlamak ve dışardan veri akışı sağlamak için kullanılan bir yöntemdir.
Ürün Stok Kontrolü Uygulaması
İlk olarak bir senaryo belirlemekle başlıyorum. Bir market zincirinin SAP sistemler kullanarak ürün stok yönetimi yaptığını varsayalım. Bu şirket SAP’de bir tabloya, stoğa yeni eklenen ürünlerin kaydını atsın. Aynı malzeme numarasına sahip ürünlerin adet sayısı artarken, her yeni eklenen ürün için yeni bir satır eklensin. Ürün bilgisini de müşterinin düzenli olarak güncellediği bir bakım tablosundan alsın.
İlk olarak kullanacağımız tabloları oluşturalım. Ürün bilgilerinin tutulacağı bakım tablomuzda hangi bilgileri istiyorsak, o alanları ekleyelim. Ben bu aşamada sadece Ürün Kodu ve Ürün Adı ekliyorum.
Oluşturduğum bakım tablosunu T-Code’a bağladım ve kolayca eklemek istediğim ürün bilgilerini ekledim:
Şimdi de stok bilgisini tutup, web service ile güncelleyeceğimiz tabloyu oluşturalım:
Tablolarımızı tamamladıktan sonra RFC bağlamak için bir fonksiyon modülü oluşturmalıyız. Bunun için SE37 T-Code’una gidelim ve oluşturmak istediğimiz fonksiyonun adını yazarak başlayalım:
Oluşturduğumuz fonksiyon modülünün parametrelerini belirleyeceğiz. Benim senaryomda sadece ürün kodu girerek, ürün bilgisini bakım tablosundan aldıracağım için import parametresi olarak ürün kodunu ekliyorum. Requesti ilettikten sonra yapılan işlemin başarılı ya da başarısız olduğunu dönmesi için export parametrlerine de text parametreleri ekliyorum:
Kurduğum senaryoya göre fonksiyonun source kodunu aşağıdaki şekilde yazdım:
Oluşturduğumuz fonksiyonu RFC’ye bağlamak için aşağıdaki şekilde, Proccessing Type alanını Remote-Enabled Module olarak değiştiriyorum ve fonksiyonumu Activate ediyorum.
Fonksiyonun web servisini oluşturmak için Utulities->More Utulities->Create Web Service->From the Function Module seçimini yapmamız gerekiyor. Tek bir fonksiyon modülü üzerinde çalıştığım için Module olarak oluşturuyorum. Biden fazla fonksiyon modülünü tek web servise bağlamak isteseydim Fuction Group olarak seçim yapmam gerekirdi.
Yaptığımız seçimlerin ardından RFC özellikleri belirlediğimiz ekran açılacak. Bu alanlara gerekli isimlendirme ve açıklamaları yazmamız yeterli. Tüm tanımlamarın ardından bu işlemi Complete ettikten sonra açılan ekranda oluşturduğumuz RFC’nin bazı özelliklerini değiştirmemiz gerekiyor. Servis çağırılırken uygulanacak güvenlik önlemi olarak en sık kullanılan yöntem olan Username/Password kullanımı için Profile Low olarak belirliyoruz ve servisi çağırmak istediğimizde SAP kullanıcı adı/şifremizi girerek işlem yapabileceğiz.
Soamanager ayarlarını yapmamız gerekiyor. Soamanager, web servislerin SAP ile bağlantısını sağlayan linki üreten ve bazı özellikleri tanımladığımız ekran. SAP’de T-Code kısmına Soamanager yazarak erişebiliriz. Soamanager yazdıktan sonra browser’da açılan ekranda Web Service Configuration kısmına gireceğiz.
Object Name kısmına, oluşturduğumuz fonksiyon modülünün adını aratarak bulabiliriz.
Çıkan fonksiyonun içine girdiğimizde boş bir sayfa açılacak. Create Service diyerek aşağıdaki gibi servisi oluşturabilirsiniz:
İsimlendirmeleri yaptıktan sonra dikkat edeceğimiz en önemli husus Provider Security kısmında User ID/Password seçeneğini işaretlememiz gerekiyor. Çünkü SAP’den web service ayarlarını düzenlerken Authontication olarak Low seçmiştik.
Tüm bu işlemlerin ardından servisi kullanabilmek için Republish edebiliriz. Republish ettikten sonra aşağıda gösterdiğim icona basarak oluşan linki alabiliriz.
Artık bir Web Service URL’ine sahibiz. Bu URL’i kullanabileceğimiz çeşitli uygulamalar var. Ben kullanıcı arayüzü kolay ve kullanışlı olduğunu düşündüğüm SOAPUI uygulamasını kullanacağım. Uygulamayı başlattıktan sonra SOAP seçeneğine tıklayıp Initial WSDL alanına kopyaladığımız linki yapıştırıyoruz:
OK dediğimizde bizden kullanıcı adı ve şifre girmemizi isteyen ekran açılacak. SAP giriş kullanıcı bilgilerimizi buraya yazıp OK dedikten sonra servisimiz ekrana gelecek. Servisi kullanılabilir hale getirmek için Authantication seçeneğine girerek yeni kullanıcı yetkisi eklememiz gerekiyor:
Kullanıcı bilgilerini girdikten sonra Request detaylarında görüneceği üzere, import parametresi olarak sadece Ürün Kodu belirlemiştik. Şimdi denemelerimizi yapabiliriz.
İlk olarak ürün listesinde varolan kodlardan biri ile başarılı bir kayıt girelim ve response detaylarını inceleyelim:
Göreceğimiz üzere tablomuzda bir kayıt eklendi:
Şimdi aynı üründen bir tane daha ekleyelim. Response detayında stoğun güncellendiğine dair mesajı ve tabloda stok miktarının arttığını görüyoruz.
Son olarak ürün listesinde olmayan bir kod eklemeyi deneyelim:
Geçerli olmayan ürün kodu ile ilgili mesajı görüyoruz.
Böylece SAP’de veri akışı sağlamak için Web Service oluşturarak bu gibi işlemler yapabildiğimizi görmüş olduk. Fonksiyon içeriğini detaylandırarak daha farklı senarryolar kurgulanabilir. Umarım ilk adım için yardımcı bir doküman olmuştur.
Kaynakça: Burak Kocaaslan Udemy Eğitimi
← Return to Blog