You are on page 1of 7

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.

You might also like