WEB SERVICE (RFC Function Modules)

SoapUI Logo

Non-SAP ya da başka SAP sistemlerinden SAP’ye veri akışlarını sağlamaya yarayan yapılardır.

Temelinde fonksiyon modülleri yatıyor.

BİR FONKSİYON MODÜLÜNÜ BİR RFC (REMOTE FUNCTION CALL) SERVİSE ÇEVİRME

Bir fonksiyon modülüne ihtiyacımız var ancak bu FM için bir FG (Fonksiyon Grubuna) ihtiyaç vardır.

FG OLUŞTURMA

SE80’e gidiniz. Function Group’u seçiniz ve bir isim veriniz.

Ardından enter’a basınız. Ve çıkan pop-up’ta Yes’i tıklayınız.

Short Text giriniz ve save tuşuna basınız.

Varsa paket ataması yapınız ya da local object olarak kaydediniz.

Yaratılan FG’nin üzerine sağ tık yapınız > Activate deyiniz.

Yaratmış olduğunuz FG’nin ismini bir kenara not ediniz. Birazdan yaratacağımız Fonksiyon Modülünde (FM) kullanacağız.

FG: ZMP_WS_FG


Fonksiyon Modülü Yaratma: Se37’e gidiniz. FM’ye bir isim veriniz ve “Create” butonuna basınız.

FM için daha önceden yaratmış olduğunuz FG’yi giriniz, short text giriniz ve “Save” ediniz.


Z’Lİ TABLO : ZMP_T_COUNTRIES =>Ülke kodları ve isimlerini dışarıdan alan ve kayıt atan kullanıcın kullanıcı ismi (uname), kayıt tarihi (datum) ve kayıt atıldığı zamanı (uzeit) otomatik olarak alan bir tablomuz var.

Import Parameters

Bunun için yaratmış olduğumuz fonksiyon modülünde country_code ve country_name alanlarını import parametresi olarak vereceğiz. Bu 2 import parametreleri ile tablodaki bu alanların data elementlerinin aynı olması gerektiğini unutmayınız.

Not: Pass by value seçeneklerinin işaretli olması gerekir!

Export Parameters

Kayıt atma işleminin başarılı olup olmadığını gösteren XFELD tipinde bir export parametresi oluşturunuz. Eğer işlem başarılıysa abap_true = ‘X’ şeklinde cevap dönülecek olup, başarısız olma durumunda ise abap_false yani ‘’ boş dönecektir.

Ev_message ise standart BAPI_MSG tipinde olup, olası hatalı işlem durumunda bilgi ve hata mesajları dönecektir.

NOT: Yine bu 2 parametrenin de “Pass by value” seçeneklerinin işaretlenmesi gerekmektedir.

FM => Source Code

FUNCTION zmp_ws_fm.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_COUNTRY_CODE) TYPE LAND1
*" VALUE(IV_COUNTRY_NAME) TYPE CHAR80
*" EXPORTING
*" VALUE(EV_SUCCESS) TYPE XFELD
*" VALUE(EV_MESSAGE) TYPE BAPI_MSG
*"----------------------------------------------------------------------

DATA: ls_countries TYPE zmp_t_countries.

ls_countries-country_code = iv_country_code.
ls_countries-country_name = iv_country_name.
ls_countries-uname = sy-uname.
ls_countries-datum = sy-datum.
ls_countries-uzeit = sy-uzeit.

SELECT COUNT(*) FROM zmp_t_countries
WHERE country_code EQ iv_country_code.
IF sy-subrc EQ 0.
ev_success = abap_false.
ev_message = 'There is already a record with this ID!'.
ELSE.
INSERT zmp_t_countries FROM ls_countries.
IF sy-subrc EQ 0.
COMMIT WORK.
ev_success = abap_true.
ev_message = 'Data inserted successfully!'.
ELSE.
ROLLBACK WORK.
ev_success = abap_false.
ev_message = 'Error during inserting!'.
ENDIF.
ENDIF.



ENDFUNCTION.

REMOTE-ENABLED MODULE (RFC)

Fonksiyion modülünde “Attributes” sekmesine gidiniz > Processing Type > Remote-Enabled Module seçiniz >aktifleştiriniz.

Utilities>More Utilities>Create Web Service>From the Function Module yolunuz izleyiniz. From the Function Group seçeneğini seçmemiz durumunda bu FG’nin altındaki tüm FM’ler RFC özelliği kazandırılacaktı.

Gelen pop-up’ta service definition ve description kısımlarına, yaratmış olduğumuz FM’in ismini verebilirsiniz. Bu sayede oluşabilecek karışıklıkların önüne geçebilirsiniz.

Paket ve request ataması yapınız ya da lokal obje olarak kaydediniz.

Complete butonuna basarak işlemi bitiriniz.

Şu an RFC yapısı oluşmuş oldu.

Teknik detaylar (import-export) parametrelerini görebilirsiniz.

Configuration tabının altında Authentication kısmında bazı ayarlamalar yapabilirsiniz. Web servisin güvenilirliğini sağlayan bir yapı.

Low = giriş yapmak için bir userid ve şifre lazım demek. Low seçeğini seçtikten sonra aktifleştiriniz.

Sırada SOAMANGER ile servis yapılandırılması var. Yazıya yine sayfamız üzerinden ulaşabilirsiniz. 👉 Service Binding -Servis Yapılandırılması – SAP, SAP Blog

Merve Polat

https://medium.com/@pmervepolat977

One thought on “WEB SERVICE (RFC Function Modules)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir