Makale Özeti

SAP istemci uygulamaları, .NET kodları aracılığı ile SAP fonksiyonlarını çalıştırır. Bazı SAP istemci uygulaması örnekleri verirsek...

Makale

SAP İSTEMCİ UYGULAMALARI

SAP istemci uygulamaları, .NET kodları aracılığı ile SAP fonksiyonlarını çalıştırır. Bazı SAP istemci uygulaması örnekleri verirsek;

• ASP .NET web uygulamaları, SAP sistemindeki bilgilere erişmede kullanılır. Örneğin bir maddenin anlık stok durumunu öğrenebilmesi için tasarlanmış yüksek seviye uygulamalarda kullanılır. Veya bir satış siparişinin .NET ortamından girilip, SAP sistemine aktarılması gibi, bilgilerin SAP arayüzü olmadan, bir .NET uygulamasından girilip, SAP veritabanında saklanması gibi işlemler gerçekleştirebiliriz.
• Console uygulamaları ile SAP sistemi üzerinde toplu uygulamalar yazabiliriz. Örneğin, bir tablodaki bilgileri toplu olarak güncelleme, toplu bilgi silme, bilgi ekleme gibi işlemleri gerçekleştirebiliriz.
• Web servisleri, SOAP arayüzünü, SAP sistemi için sağlar. 6.20’de SOAP arayüzü içerir. SAP istemci çözümlerinde SAP sistemi sunucusu ve .NET uygulaması VS .NET içinde oluşturulduğu zaman, VS .NET projesinin içine WSDL dosyası eklenir.

SAP RFC, proxy objesinin metodunu çağırır. Her bir proxy’de bir veya daha fazla RFC içerebilir. Örneğin bir kütüphane içinde, proxy ile tüm müşteri ilişkili RFC’ye sahip olabiliriz. Parametreler için, her bir RC Visual Studip Designer ile kişiselleştirilebilir. Bu opsiyonel parametreler silinebilir, isimleri değiştirilebilir.
Visual Studio .NET programcıları, seçtikleri programlama dili ile SAP proxy’leri ile çalışabilir.

Proje Tipleri
SAP .NET Connector projesini oluşturduğumuz zaman, oluşan SAP Connector Class içinde bulunan kodları istediğimiz uygulamaya göre uyarlayıp kolaylık sağlayabiliriz. Alternatif olarak, farklı tipdeki bir projeye (ASP .NET Web Services gibi) SAP Connector sınıfını ekleyebiliriz. Veya başka tipdeki bir proje SAP Connector Library’i referans olarak gösterebiliriz. Assembly adı:
sap.connector.dll

Ancak birinci yöntem yani bir SAPConnector projesi açmak tavsiye edilen yöntemdir.

SAP Sistemine Bağlantı
Proxy’nin connect objesi ile SAP bağlantısı sağlanır. SAP bağlantısının statüsünü belirleme işini connector objesi otomatik olarak yapmaktadır. Bu konuda herhangi bir manuel müdaheleye gerek yoktur.
RFC’nin çalıştırılabilmesi için, öncesinde bağlantının açılması gerekir. RFC2nin çalışma işi bittikden sonra bağlantı kapatılmalıdır. Bir uygulamayı birden fazla kişi kullanabilir. Bu tür durumlarda bağlantıların çokluğu yüzünden performans sorunları yaşanabilir. Bu tür durumlarda bağlantı havuzu (connection pool) en doğru çözümlerden biridir. Connector’da bize bu noktada connection pool özelliğine sahiptir. Bu özelliği ile performans arttırımı sağlanmaktadır.

KİMLİK TANIMLAMA
SAP .Net Connector, tüm SAP kimlik tanımlamalarını destekler. Kullanıcı adı – şifre, single sign – on (Karberos gibi), NTLM, X.509 certificates ve SAP Logon tickets, ASP .Net uygulamasındaki SAPLogin formu ve SAPDestination ve SAPLogonDestination sınıfları ile uygulamamız ile SAP arasında kimlik tanımlama işlemini sağlayabiliriz. Tavsiye edilen, SAP Logon sınıflarının kullanıp, manuel kod yazılmasıdır.

SİSTEM TAKİBİ VE HATA AYIKLAMA
Visual Studio ortamında SAP .Net connector ile kod yazarken olası hata durumlarını belirleyebilmek için exception sınıfları yer almaktadır. SAP sisteminden olası hata durumlarını yakalayabilmemizi sağlar. Bu ortamı bize ABAP_DEBUG opsiyonu sağlayamaktadır. Ancak ABAP_DEBUG opsiyonunu kullanabilmek için yazılım geliştirildiği makine üzerinde SAPGUI’nin kurulu olması gerekir. Ancak debug özelliğini web uygulamalarından da kullanamayız. Çünkü Windows ortamında kurulumları yapabilmemiz için sadece Windows uygulamalarında kullanabiliriz. Aynı zamanda RFC_TRACE ve CPIC_TRACE değişkenlerini kullanarak, uygulamanın bulunduğu klasöre trace dosyalarını oluşturabiliriz. Bu trace’leri, Tools ? Administration ? Monitoring ‘den takip edebiliriz.

SAP .NET SUNUCU UYGULAMALARI
SAP .Net Connector ile, RFC sunucu programlarını C# içinde kolaylıkla yazabiliriz. Örnek olarak düşünebileceğimiz senaryolar;
• Başka sistemlerden bilgi alımı. Örneğin yeni bir müşteri bilgisinin girilmesi.
• SAP sisteminizden e-posta gönderimi.
• Başka sisteme, SAP’dan IDOCS gönderimi.



SAP sisteminden .Net programının çağrılması için yapılacak adımlar;
• .Net prodramının SAP gateway host üzerinde register edilmesi gerekir.
• SAP sistemi ve .Net programı aynı metot arayüzünde implemente edilmelidir. Örneğin fonksiyon modül adı ve parametreleri SAP sistemindendir.
• SAP sistemi, .Net programını çağırırken CALL FUNCTION DESTINATION ifadesini kullanılır. Programın çalışmasından sonra, SAP gateway monitör kullanılarak, register edilmiş programları takip ve debug edebiliriz. RFC_TRACE ve CPIC_TRACE değişkenleri ile trace işleminin kullanılmasını aktif edebiliriz.

Yeliz Korkmaz, MVP
yeliz.korkmaz@tnn.net

Kaynak: http://www.microsoft-sap.com/net_connector.aspx