cancel
Showing results for 
Search instead for 
Did you mean: 

Bapi Wrappers - GetList, GetDetail, Create, Modify, Delete

Former Member
0 Kudos

Hi all,

I am trying to understand what BAPI wrappers are called in certain situation.

Here is my understanding of how things work. Could please somebody confirm or correct me.

Initial Load:

1) You have the choice to use GetList and GetDetail to get the data from the backend. In this case, the DOE calls GetList to get the object key and then DOE calls GetDetail using this key from GetList to retrieve the detail data.

2a) You can Bulk-enable the GetList and GetDetail. In the first scenario GetList is called by DOE and multiple object keys are retrieved. Then the DOE calls GetDetail using all keys from GetList to retrieve all detail data from the backend.

2b) You can Bulk-enable only the GetDetail wrapper and GetDeList is not called. In the second scenario GetList is NOT called at all by DOE. The DOE calls only GetDetail to retrieve all detail data from the backend as specified in the BAPI Wrapper.

Delta Loads - Backend Triggered:

1) Instance Push - In this method you only call the push function module in the DOE and transfer selected data to the DOE. In this scenario, no GetList or GetDetail is called.

2 Key Push - not quite sure about the sequence and which wrappers are called. I think after data has been updated in the backend, the backend calls a function module in DOE which triggers the call of GetList and GetDetail (similar to Initial Load just for deltas)

Delta Loads - DOE Triggered:

1) DOE schedules a job to call GetList and GetDetail in a predefined schedule similar to Initial Load just for deltas

THIS IS OF SPECIAL INTEREST FOR ME - PLEASE CORRECT ME IF SOMETHING IS WRONG

Modify, Delete, Create BAPI Wrappers

The BAPI Wrappers for Create, Modify, Delete are only called when the user synchronizes the changes from the handheld to the DOE and depending of the type, the DOE will call the Create wrapper if a new record has been created on the handheld, call the Modify wrapper if an existing record on the handheld has been changed, and call Delete wrapper iuf an existing record has been deleted on the handheld.

E.g. for Modify wrapper, for every record that has been changed on the handheld the Modify Wrapper will be called (100 records changed => 100 calls of Modify wrapper).

During the call of the Modify wrapper (I assume this applies for the Create and Delete Wrapper as well), the DOE will NOT call the GetList or GetDetail again. IS THIS A CORRECT ASSUMPTION. IF NOT PLEASE EXPLAIN THE FLOW OF BAPI WRAPPER CALLS FOR MODIFY, CREATE, and DELETE.

Any information and correction of the above is appreciated. Any documentation available about the BAPI Wrapper call sequence as well.

Thanks,

WB

Edited by: W Berger on May 15, 2009 3:48 PM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi ,

1) GetList even with out mass enabling fetches 'n' number of keys from backend and then GetDetail is invoked per key to read all the child nodes entries for the header key.

2a) When you have huge number of records to be loaded to DOE from backed, then Mass enabling of GetList will help.

How it behaves,it fetches a block of keys from Backend to DOE first,triggers GetDetails for each of them and again fetches next block from Backend.

GetList Bapi wrapper will have the info of the keys of the last record fetched in the previous package and number of headers returned and this way block handling could be done.There is a configuration also available 'DOE_PACKAGE_SIZE' for no:of headers to be returned in mass enabled GetList call.

2b) With Bulk enabling of GetDetail,it can import a table of header keys and returns table of details data(child node data)

Backend Triggered

1) For instance push,backend just needs to call the 'instance push FM ' via RFC that was mentioned while creating BE triggered adapter.The code for this FM will be auto generated.and no other bapi wrappers called.

2) For key push , BE need to call FM 'SMMW_BE_CALL_DELTABO' with Backend BO name specified during creation of adapter and the header keys.

GetList will be called before calling GetDetail only if the attribute 'Call getList' is set in adapter.

Delta Loads - DOE Triggered

1) Either this can be performed via Tcode: SDOE_LOAD or scheduled job at sdoe_bg_job_monitor

and the call sequence is same as you mentioned.This process will be running asynhcrounously in queues(QRFC)

Modify, Delete, Create BAPI Wrappers

1) As you mentioned,depending on the message task 'I','D' or 'U' (insert,delete,update) ,corresponding bapi wrappers are called. During Modify and Create operation , GetDetail is called to get the latest data from backend. For delete there is no call to backend for GetDetail.Create,Modify,Delete bapi wrappers are invoked per header key.

Regards,

Liji

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

I want to explain your (2b) scenario. i.e Bulk enabling of GetDetail.

Normally for delta load or initial load both GetList and GetDetail will be called. GetList will be called only once to get all the header data or Keys. Then

- if getDetail is not bulk enabled then getDetail will be called for each and every key returned by getList to retrieve item details. i.e) 'n' number of calls for 'n' number of keys.

- if getDetail is bulk enabled then getDetail will be not be called 'n' number of times for 'n' number of keys. Number of calls depends on configuration 'DOE_PACKAGE_SIZE' for the data object and number of keys returned by getList. i.e. if 'DOE_PACKAGE_SIZE' is 200(default value) and number of keys returned by getList is 1000, then getDetail will be called 5 times passing 200 header keys in each call.

Create/Modify/Delete flow

-


1) For Create/Modify flow after calling Create/Modify wrapper only getDetail will be called(not getList) to get the latest data from backend by passing only the Created or modified key.

2) For Delete flow only Delete wrapper is called.