Hi Faisal
It is getting into dump as soon as it encounters "commit work "
BUP_BUPA_UPDATE is a standard update fm that is called in the process of making changes or creating a new BP So i happened to use the same.. Please advice on this
this is the code i happen to write in BAdI
DATA: lt_changed_object_guids TYPE crmt_ace_object_guid,
lt_new_object_guids TYPE crmt_ace_object_guid,
ls_object LIKE LINE OF lt_changed_object_guids,
lr_bup_cent TYPE REF TO cl_bup_cent,
lt_but000_old TYPE STANDARD TABLE OF but000,
lt_but000_new TYPE STANDARD TABLE OF but000,
ls_but000_old LIKE LINE OF lt_but000_old,
ls_but000_new LIKE LINE OF lt_but000_new,
lt_but000_i TYPE STANDARD TABLE OF bus000___i,
ls_but000_i TYPE bus000___i,
lt_but050_new TYPE STANDARD TABLE OF but050,
lt_but050_old TYPE STANDARD TABLE OF but050,
ls_but050_old TYPE but050,
lv_partner_guid TYPE bu_partner_guid,
lt_return TYPE STANDARD TABLE OF bapiret2,
ls_return TYPE bapiret2,
ls_central_data TYPE bapibus1006_central,
ls_central_data_x TYPE bapibus1006_central_x,
lv_tabix TYPE sy-tabix.
DATA: lt_adrc TYPE STANDARD TABLE OF adrc,
ls_adrc TYPE adrc.
DATA: lt_but020_old TYPE STANDARD TABLE OF but020,
lt_but020_new TYPE STANDARD TABLE OF but020,
ls_but020_old LIKE LINE OF lt_but020_old,
ls_but020_new LIKE LINE OF lt_but020_new.
DATA: lv_rltyp TYPE bu_partnerrole,
lv_addrnumber TYPE ad_addrnum.
DATA lv_crequest TYPE zcrequest.
CALL FUNCTION 'BUPA_GENERAL_CALLBACK'
TABLES
et_but000_old = lt_but000_old
et_but000_new = lt_but000_new.
*
READ TABLE lt_but000_old INTO ls_but000_old INDEX 1.
READ TABLE lt_but000_new INTO ls_but000_new INDEX 1.
IF ls_but000_old-bpkind IS INITIAL AND
( ls_but000_new-bpkind = '0001' OR
ls_but000_new-bpkind = '0002' ).
SELECT SINGLE rltyp INTO lv_rltyp
FROM but100
WHERE partner = ls_but000_new-partner.
IF sy-subrc NE 0.
EXIT.
ENDIF.
CALL FUNCTION 'BUPA_ADDR_CALLBACK'
TABLES
et_but020_old = lt_but020_old
et_but020_new = lt_but020_new
.
READ TABLE lt_but020_new INTO ls_but020_new INDEX 1.
IF sy-subrc EQ 0.
SELECT SINGLE * INTO ls_adrc
FROM adrc
WHERE addrnumber = ls_but020_new-addrnumber.
ENDIF.
CALL FUNCTION 'ZRFC_CRM_MDG_CREQUEST'
DESTINATION 'SAPDRP100'
EXPORTING
im_partner = ls_but000_new-partner
im_name1 = ls_but000_new-name_org1
im_name2 = ls_but000_new-name_org2
im_city = ls_adrc-city1
im_country = ls_adrc-country
im_langu = ls_but000_new-langu_corr
im_searchterm = ls_but000_new-bu_sort1
im_bprole = lv_rltyp
im_bgroup = ls_but000_new-bu_group
im_bptype = ls_but000_new-type
im_crequest = 'CREATE'
IMPORTING
ex_chrequest = lv_crequest.
ls_but000_new-bu_sort1 = lv_crequest.
MODIFY lt_but000_new FROM ls_but000_new INDEX 1.
MOVE-CORRESPONDING lt_but000_new[] TO lt_but000_i[].
* READ TABLE lt_but000_i INTO ls_but000_i INDEX 1.
CALL FUNCTION 'BUP_BUPA_UPDATE' IN UPDATE TASK
EXPORTING
I_SWAP_UPDATE_ERROR = 'X'
TABLES
t_but000 = LT_BUT000_I
.
COMMIT WORK.
ENDIF.