FUNCTION zfm_oa_deletecustomer.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(PARTNER) TYPE BU_PARTNER
*" EXPORTING
*" VALUE(STATUS) TYPE BAPI_MTYPE
*" VALUE(MESSAGE) TYPE BAPI_MSG
*"----------------------------------------------------------------------
DATA: lv_partner TYPE bu_partner.
DATA: lv_bpartnerguid TYPE bu_partner_guid.
DATA: lt_return TYPE TABLE OF bapiret2,
ls_central_data TYPE bapibus1006_central,
ls_central_datax TYPE bapibus1006_central_x,
lv_guid TYPE sysuuid_c32,
lv_msg TYPE bapi_msg,
lt_bp_main TYPE cvis_ei_extern_t,
lt_retm TYPE bapiretm.
lv_partner = |{ partner ALPHA = IN }|.
SELECT SINGLE partner_guid FROM but000 WHERE partner = @lv_partner INTO @lv_bpartnerguid.
CALL FUNCTION 'BAPI_BUPA_EXISTENCE_CHECK'
EXPORTING
businesspartner = lv_partner
TABLES
return = lt_return.
IF lt_return IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
status = 'E'.
message = |客户编码不能为空|.
RETURN.
ENDIF.
CLEAR: lt_return,ls_central_data,ls_central_datax.
ls_central_data-centralblock = abap_true.
ls_central_datax-centralblock = abap_true.
ls_central_data-centralarchivingflag = abap_true.
ls_central_datax-centralarchivingflag = abap_true.
CALL FUNCTION 'BAPI_BUPA_CENTRAL_CHANGE'
EXPORTING
businesspartner = lv_partner
centraldata = ls_central_data
centraldata_x = ls_central_datax
TABLES
return = lt_return.
IF line_exists( lt_return[ type = 'E' ] ) OR
line_exists( lt_return[ type = 'A' ] ).
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
LOOP AT lt_return ASSIGNING FIELD-SYMBOL(<fs_return>) WHERE type EQ 'E' OR type EQ 'A'.
lv_msg = COND #( WHEN lv_msg IS INITIAL THEN <fs_return>-message ELSE |{ lv_msg }/{ <fs_return>-message }| ).
ENDLOOP.
status = 'E'.
message = COND #( WHEN lv_msg IS NOT INITIAL THEN |BAPI_BUPA_CENTRAL_CHANGE报错:{ lv_msg }|
ELSE |BAPI_BUPA_CENTRAL_CHANGE报错,请联系管理员| ).
RETURN.
ENDIF.
CLEAR lv_guid.
CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS'
EXPORTING
businesspartner = lv_partner
IMPORTING
businesspartnerguidout = lv_guid.
IF lv_guid IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
status = 'E'.
message = |BAPI_BUPA_GET_NUMBERS报错,请联系管理员|.
RETURN.
ENDIF.
lt_bp_main = VALUE #( (
partner-header-object_instance-bpartner = lv_partner
partner-header-object_instance-bpartnerguid = lv_guid
partner-header-object_task = 'U'
vendor-header-object_instance = lv_partner
vendor-header-object_task = 'U'
vendor-central_data-central-data-sperr = abap_true
vendor-central_data-central-datax-sperr = abap_true
customer-header-object_instance = lv_partner
customer-header-object_task = 'U'
customer-central_data-central-data-sperr = abap_true
customer-central_data-central-datax-sperr = abap_true
) ).
CALL FUNCTION 'CVI_EI_INBOUND_MAIN'
EXPORTING
i_data = lt_bp_main
IMPORTING
e_return = lt_retm.
CLEAR: lv_msg.
LOOP AT lt_retm ASSIGNING FIELD-SYMBOL(<fs_retm>).
LOOP AT <fs_retm>-object_msg ASSIGNING FIELD-SYMBOL(<fs_message>) WHERE type = 'E' OR type = 'A'.
lv_msg = COND #( WHEN lv_msg IS INITIAL THEN <fs_message>-message ELSE |{ lv_msg }/{ <fs_message>-message }| ).
ENDLOOP.
ENDLOOP.
IF lv_msg IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
status = 'E'.
message = |CVI_EI_INBOUND_MAIN报错:{ lv_msg }|.
RETURN.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
status = 'S'.
message = space.
RETURN.
ENDIF.
ENDFUNCTION.
客户主数据冻结
最新推荐文章于 2024-07-15 22:27:12 发布