SAP .

NET CONNECTOR 2003
Herkese merhaba! Bu ay, Microsoft ve SAP teknolojilerini bir arada kullanan firmalar kadar yeni nesil programcıları da sevindirecek bir gelişmeyi sizlere duyuruyoruz. SAP, geçtiğimiz günlerde Visual Studio .NET 2003 ile uyumlu çalışan SAP .NET Connector 2003 adlı ürünü piyasaya sürdü. Söz konusu ürün, SAP bünyesinde yazılan RFC fonksiyonlarını .Net uygulamaları içerisinden çağırmayı ve SAP içerisinden .Net fonksiyonlarına erişmeyi mümkün kılıyor!

Ne yapıyor ne yapıyor?
Evet, kabul etmek gerekiyor ki biraz fazla teknik bir giriş oldu. Şimdi aynı paragrafı daha anlaşılır bir şekilde tekrar kaleme alalım. IT sektöründe çalışan herkesin uzaktan veya yakından SAP’ye aşinalığı vardır, en azından bir yerlerde adının geçtiğini duymuştur. Özetlemek gerekirse SAP, büyük firmalar tarafından kullanılan bir ERP sistemidir. Bünyesinde FI (Finans), MM (Malzeme Yönetimi), CO (Maliyet Muhasebesi), HR (İnsan Kaynakları) gibi modüller barındırır ve firmalar, söz konusu modüller sayesinde geniş çaplı işlemlerini kolayca takip edebilir. SAP bünyesinde kullanılan program ve fonksiyonlar, ABAP adı verilen bir dil ile yazılır. Ne var ki, ABAP ile yapılabilecekler SAP’nin sunduğu olanaklar ile kısıtlanmıştır. Örneğin, ABAP ile Finans modülüne muhasebe kaydı atacak veya İnsan Kaynakları bünyesinde elemanların aylık maaşlarını listeleyecek programlar yazmak mümkündür, ancak bir Web sitesi veya SAP dışında çalışacak bir Windows uygulaması yazılamaz. SAP ve Abap ile ilgili daha fazla bilgi için http://www.sap.com adresine göz atmanızı öneririm. Peki, ya SAP’de depoladığımız verileri Web, WAP, Office, vs gibi farklı ortamlarda da kullanmak istiyorsak? Hatta bunun da ötesinde, firmamıza Web üzerinden gelen siparişleri direkt olarak SAP’ye kaydetmek istiyor da olabiliriz. SAP, bu gibi talepleri karşılamak için müşterilerine “Connector” adını verdiği çeşitli ürünleri ücretsiz sunuyor. Connector aracılığıyla oluşturduğumuz kütüphaneyi (mesela) ASP projemize dahil ettiğimizde, Server.CreateObject gibi basit komutlarla SAP datasına erişebilir ve SAP’yi güncelleyebiliriz. Bugüne kadar piyasaya Java Connector, DCom Connector, Business Connector gibi birçok Connector sürülmüştür.

Peki .NET Connector Nedir?
SAP’nin yeni ürünü olan SAP .Net Connector, aynı fonksiyonaliteyi .NET uygulamalarında direkt olarak kullanabilmemizi sağlıyor. Bu şekilde SAP ile etkileşim içinde çalışan Windows uygulamaları, Web siteleri, Web servisleri, Crystal Reports raporları, vs yazmak oldukça rahat bir hale geliyor. Aynı araç, bunun yanı sıra ABAP programları içerisinden .Net fonksiyonlarını çağırmak da mümkün kılıyor. Kısaca, .NET’in getirmiş olduğu yenilik ve kolaylıkların arasında artık SAP erişimi de yer alıyor. SAP .Net Connector http://service.sap.com adresinden indirilebilir. Ancak programa erişmek için bir OSS hesabına ihtiyacınız olacak; söz konusu bilgiyi firmanızın SAP sorumlusundan edinebilirsiniz. Birlikte SAP’ye erişen örnek bir C# uygulaması yazarak, şimdiye kadar anlattıklarımızın pratiğini görelim. Örneği hazırlayacağınız PC’de SAPGUI, Visual Studio .Net ve SAP .Net Connector’un yüklü olduğundan ve SAP sunucusuna erişiminiz olduğundan emin olun.

SAP Tarafı
Örnek sistemimizi kurmaya, SAP bünyesinde oluşturacağımız bir fonksiyon ile başlayacağız. Verilen malzeme koduna tekamül eden malzemenin ayrıntılı bilgilerini geri döndüren bir fonksiyon yazacağımızı varsayalım. SAP GUI’yi açıp sisteme login olduktan sonra SE37 ekranını çağıralım.Gelecek olan ekranda ZKKNETMARA adlı yeni bir fonksiyon oluşturalım. Fonksiyonun özellikleri arasında “Remote Function Call Supported” özelliğinin işaretli olduğundan emin olun. Bu şekilde, sisteme fonksiyonun SAP dışından da çağırılabileceğini söylemiş oluyoruz. Fonksiyonun bir adet Input parametresi (malzeme numarası), bir adet Tables parametresi (malzeme ayrıntıları) olacak. Input bölümüne “MARA-MATNR” tipinde bir “XMATNR” değişkeni, Tables bölümüne

ise “MARA” tipinde bir “XMARA” tablosu tanımlayın.

Yazacağımız fonksiyonun ABAP kodu ise aşağıdaki gibidir: function zkknetmara. *"---------------------------------------------------------------------*"*"Local interface: *" IMPORTING *" VALUE(XMATNR) LIKE MARA-MATNR *" TABLES *" XMARA STRUCTURE MARA *"---------------------------------------------------------------------tables: mara. select * from mara appending corresponding fields of table xmara where matnr = xmatnr. endfunction.

Gördüğünüz gibi, örneğimizi oldukça basit tuttuk. Şimdi CTRL+F3 tuşlarına basarak fonksiyonu üretin. Bu şekilde, SAP’deki işimiz bitmiş oluyor. Artık Visual Studio .NET’e geçebiliriz.

Visual Studio Tarafı
Visual Studio içerisinde, File New menüsüne tıklayalım ve C# Projeleri bölümündeki “Windows Application” seçeneğini işaretleyip “OK” düğmesine tıklayalım.

Karşımıza gelecek olan forma 3 adet öğe yerleştireceğiz: Bir Button, bir Datagrid ve bir Textbox.

Şimdi kritik noktaya geldik. Bu adımda, .NET Connector’u kullanarak programımıza SAP erişimi sağlayacağız. Projemize sağ tıklayıp, “Add New Item...” seçeneğini tıklayalım. Karşımıza gelecek listede “SAP Connector Class”ı seçip “Open” düğmesine tıklayalım.

Açılacak olan yeni pencerede “SAP Server” seçeneğinin işaretli olduğundan emin olup “Next” düğmesine tıklayalım.

Şimdi karşımızda bağlantı bilgilerinin sorulduğu bir pencere olmalı. Merak etmeyin, bu pencereye girilen bilgiler yazacağımız program için baki kalmayacaktır, geçici bir bağlantı kurmak için sadece bir kez kullanılacaktır; dolayısıyla kendi SAP hesabımıza ait bilgileri gönül rahatlığıyla girebiliriz. Bu bilgilere sahip değilseniz, firmanızın SAP sorumlusuna başvurabilirsiniz. Object Type bölümünde “Client Proxy” seçeneğini işaretleyelim ve alttaki iki kutucuğun boş olduğundan emin olalım. Artık “Next” düğmesine tıklayabiliriz. Şimdi projemize katmak istediğimiz SAP fonksiyonlarını seçeceğimiz bir ekranla karşı karşıyayız. “Name-Filter” bölümüne “zkk*” yazıp “Search” düğmesine tıkladığınızda, bir önceki adımda yazdığımız “zkknetmara” adlı fonksiyon karşınıza gelecektir. Bu ekran aracılığıyla programımıza dilediğimiz kadar fonksiyon katabiliriz, ama biz şimdilik sadece “zkknetmara” fonksiyonunu seçelim, “Add” düğmesine tıklayalım ve “Next” düğmesiyle yola devam edelim.

Bu adımı da bitirdiğimize göre, artık SAP bağlantısını sağlayacak C# kodlarını yazabiliriz. Forma koymuş olduğunuz Button objesinin Click Event’ına aşağıdaki kodları ekleyin: SAP.Connector.SAPLogonDestination myDest; SAP.Connector.SAPConnection myConn; SAPProxy1 myProx; MARATable xMara; System.Data.DataTable dMara; try {

// Destination yaratalim myDest = new SAP.Connector.SAPLogonDestination(); myDest.DestinationName = "SAP 4.0B"; myDest.Client = 010; myDest.Username = "sap*"; myDest.Password = "06071992"; // Sap baglantisi yaratalim myConn = new SAP.Connector.SAPConnection(myDest); // Baglantimizi acalim myConn.Open(); // Daha once SAP'de yazmis oldugumuz fonksiyonu cagiralim xMara = new MARATable(); myProx = new SAPProxy1(); myProx.Connection = myConn; myProx.Zkknetmara("0020110", ref xMara); // Fonksiyonun dondurdugu tabloyu Dataset'e cevirelim dMara = new System.Data.DataTable(); dMara = xMara.ToADODataTable(); // Elimizdeki Dataset'i goruntuleyelim dataGrid1.DataSource = dMara; dataGrid1.Refresh(); // Artik baglantimizi kapatabiliriz myConn.Close();

} catch(Exception ex) { textBox1.Text = ex.ToString(); }

Güvenlikten ve modülerlikten feragat etmiş olsak da, anlaşılması oldukça kolay bir C# kodu oluşturduk. Kodda değiştirmeniz gereken tek yer, “Destination yaratalım” ifadesinin geçtiği bölümdür. Buradaki DestinationName değeri SAP Logon Pad’inizde yer alan bağlantının adı olmalıdır; Client, Username ve Password değişkenlerine ise SAP’ye bağlanırken kullandığınız değerleri atamalısınız. Ayrıca myProx.Zkknetmara fonksiyonunu çağırdığınız yerde sistemde bulunan bir malzeme kodu göndermelisiniz, aksi halde geriye boş bir tablo dönecektir. Programı çalıştırıp form üzerindeki düğmeye tıkladığınızda, SAP’nin geriye döndürdüğü tabloyu görebilirsiniz. Tebrikler! Artık .NET SAP bağlantısının temel bilgisine sahipsiniz.

Sonuç
SAP .NET Connector sayesinde, .NET platformu üzerinde SAP ile interaktif çalışan uygulamalar geliştirmek mümkün. Örnek olarak Web sitenizde SAP’den çekeceğiniz verileri rapor halinde sergileyebilir, SAP’ye erişen Windows uygulamaları yazabilir veya anlaşmalı olduğunuz firma/bayilerin esnek B2B uygulamaları geliştirmesini sağlayacak Web Service’ler hazırlayabilirsiniz. Bir başka yazıda görüşünceye dek, hoşçakalın.

Sign up to vote on this title
UsefulNot useful