- Katılım
- 8 Eki 2016
- Mesajlar
- 939
- Çözümler
- 4
- Tepki puanı
- 276
- Puanları
- 63
- Yaş
- 42
- Konum
- İzmir
- Web Sitesi
- sapforo.com
- Kullandığınız SAP Modülleri
-
- SAP MM
- SAP PP
- SAP FI
- SAP QM
- Katılım Bölgesi
-
- İzmir
Sap haricinde herhangi bir dış kaynaktan sap verisi çekmek istiyorsak web servise ihtiyaç duyarız. Sap’de web servis üretmek için iki yol vardır. Bunlardan birincisi ve sap’nin bizden beklediği SOAMANAGER işlem kodu yardımıyla web servis üretmektir.
Fakat ben daha pratik olan diğer yöntemi anlatacağım. Öncelikle SE37 işlem kodu ile ZSD_F_GET_MATNR diye bir remote enabled fonksiyon yaratıyoruz. Daha sonra import parametresi olarak malzeme numarası alıp export parametresi olarak MARA yapısını kullanıcıya gönderiyoruz.
Daha sonra SICF işlem kodu ile ‘default host/sap/bc/soap’ altındaki bütün servisleri aktif hale getirmemiz gerekiyor. Bu servisleri aktif hale getirdikten sonra sistemdeki remote enabled fonksiyonların web servis definition (wsdl) dosyalarına aşağıdaki şablon ile erişebiliriz.
http://<domain>:<port>/sap/bc/soap/wsdl/?services=<function name>&sap-client=<client>
domain:sap sisteminde tanımlı sunucu adresi
port:sunucunun http portu
function name:fonksiyonun adı
client:sap sisteminin client numarası
Örnek: http://dev.serkanozcan.com:80/sap/bc/soap/wsdl/?services=ZSD_F_GET_MATNR&sap-client=111
Bu wsdl’e eriştiğinizde endpoint olarak erişeceğiniz url şu şekilde olacaktır; http://dev.serkanozcan.com:80/sap/bc/soap/rfc/
Son olarak aşağıdaki xml soap mesajını elde ettiğimiz endpoint’e gönderirsek XXXX malzemesinin detaylarını response olarak alabiliriz.
Fakat ben daha pratik olan diğer yöntemi anlatacağım. Öncelikle SE37 işlem kodu ile ZSD_F_GET_MATNR diye bir remote enabled fonksiyon yaratıyoruz. Daha sonra import parametresi olarak malzeme numarası alıp export parametresi olarak MARA yapısını kullanıcıya gönderiyoruz.
Kod:
FUNCTION zsd_f_get_matnr.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IP_MATNR) TYPE MATNR
*" EXPORTING
*" VALUE(ES_MARA) TYPE MARA
*"----------------------------------------------------------------------
SELECT SINGLE * FROM mara INTO es_mara
WHERE matnr EQ ip_matnr.
ENDFUNCTION.
Daha sonra SICF işlem kodu ile ‘default host/sap/bc/soap’ altındaki bütün servisleri aktif hale getirmemiz gerekiyor. Bu servisleri aktif hale getirdikten sonra sistemdeki remote enabled fonksiyonların web servis definition (wsdl) dosyalarına aşağıdaki şablon ile erişebiliriz.
http://<domain>:<port>/sap/bc/soap/wsdl/?services=<function name>&sap-client=<client>
domain:sap sisteminde tanımlı sunucu adresi
port:sunucunun http portu
function name:fonksiyonun adı
client:sap sisteminin client numarası
Örnek: http://dev.serkanozcan.com:80/sap/bc/soap/wsdl/?services=ZSD_F_GET_MATNR&sap-client=111
Bu wsdl’e eriştiğinizde endpoint olarak erişeceğiniz url şu şekilde olacaktır; http://dev.serkanozcan.com:80/sap/bc/soap/rfc/
Son olarak aşağıdaki xml soap mesajını elde ettiğimiz endpoint’e gönderirsek XXXX malzemesinin detaylarını response olarak alabiliriz.
Kod:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:sap-com:document:sap:rfc:functions">
<soapenv:Header/>
<soapenv:Body>
<urn:ZSD_F_GET_MATNR>
<IP_MATNR>XXXX</IP_MATNR>
</urn:ZSD_F_GET_MATNR>
</soapenv:Body>
</soapenv:Envelope>