Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- METHOD change_bp.
- * заполнение et_result
- DATA: lv_partner_num TYPE bu_partner,
- ls_central TYPE bapibus1006_central,
- ls_central_x TYPE bapibus1006_central_x,
- ls_central_person TYPE bapibus1006_central_person,
- ls_central_person_x TYPE bapibus1006_central_person_x,
- ls_central_org TYPE bapibus1006_central_organ,
- ls_central_org_x TYPE bapibus1006_central_organ_x,
- ls_central_group TYPE bapibus1006_central_group,
- ls_central_group_x TYPE bapibus1006_central_group_x,
- lv_addressguid TYPE but020-guid,
- ls_address TYPE bapibus1006_address,
- ls_address_x TYPE bapibus1006_address_x,
- lt_return TYPE bapiret2_t,
- lv_curr_error TYPE flag,
- ls_messages_all TYPE zstm_messages,
- ls_messages TYPE zstm_messages.
- LOOP AT it_bp_edit ASSIGNING FIELD-SYMBOL(<ls_bp_edit>).
- CLEAR: lv_partner_num,
- ls_central,
- ls_central_x,
- ls_central_person,
- ls_central_person_x,
- ls_central_org,
- ls_central_org_x,
- ls_central_group,
- ls_central_group_x,
- lv_addressguid,
- ls_address,
- ls_address_x,
- lt_return,
- lv_curr_error,
- ls_messages.
- lv_partner_num = <ls_bp_edit>-partner_num.
- MOVE-CORRESPONDING <ls_bp_edit>-central_data TO ls_central.
- MOVE-CORRESPONDING <ls_bp_edit>-central_data_x TO ls_central_x.
- MOVE-CORRESPONDING <ls_bp_edit>-central_person TO ls_central_person.
- MOVE-CORRESPONDING <ls_bp_edit>-central_person_x TO ls_central_person_x.
- MOVE-CORRESPONDING <ls_bp_edit>-central_org TO ls_central_org.
- MOVE-CORRESPONDING <ls_bp_edit>-central_org_x TO ls_central_org_x.
- MOVE-CORRESPONDING <ls_bp_edit>-central_group TO ls_central_group.
- MOVE-CORRESPONDING <ls_bp_edit>-central_group_x TO ls_central_group_x.
- lv_addressguid = <ls_bp_edit>-addressguid.
- MOVE-CORRESPONDING <ls_bp_edit>-address TO ls_address.
- MOVE-CORRESPONDING <ls_bp_edit>-address_x TO ls_address_x.
- CALL FUNCTION 'BAPI_BUPA_CENTRAL_CHANGE'
- EXPORTING
- businesspartner = lv_partner_num
- centraldata = ls_central
- centraldataperson = ls_central_person
- centraldataorganization = ls_central_org
- centraldatagroup = ls_central_group
- centraldata_x = ls_central_x
- centraldataperson_x = ls_central_person_x
- centraldataorganization_x = ls_central_org_x
- centraldatagroup_x = ls_central_group_x
- TABLES
- return = lt_return.
- zcl_tm_utils=>analyze_bapi_return(
- EXPORTING
- it_return = lt_return
- IMPORTING
- ev_error = lv_curr_error
- CHANGING
- cs_messages_all = ls_messages_all
- RECEIVING
- rs_messages = ls_messages ).
- * заполнение et_result
- * MOVE-CORRESPONDING <ls_bp_edit> TO ls_result.
- *
- * ls_result-error = ls_messages-error.
- * ls_result-messages = ls_messages-messages.
- * ls_result-messages_error = ls_messages-messages_error.
- *
- * APPEND ls_result TO et_result.
- IF iv_commit EQ abap_true AND iv_package_commit EQ space.
- IF ls_messages-error EQ 'X'.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- ELSE.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- ENDIF.
- ENDIF.
- CLEAR: lt_return,
- lv_curr_error,
- ls_messages. "?????????????????????????????????????????????????????
- CALL FUNCTION 'BAPI_BUPA_ADDRESS_CHANGE'
- EXPORTING
- businesspartner = lv_partner_num
- addressguid = lv_addressguid
- addressdata = ls_address
- addressdata_x = ls_address_x
- TABLES
- return = lt_return.
- zcl_tm_utils=>analyze_bapi_return(
- EXPORTING
- it_return = lt_return
- IMPORTING
- ev_error = lv_curr_error
- CHANGING
- cs_messages_all = ls_messages_all
- RECEIVING
- rs_messages = ls_messages ).
- * заполнение et_result
- * MOVE-CORRESPONDING <ls_bp_edit> TO ls_result.
- *
- * ls_result-error = ls_messages-error.
- * ls_result-messages = ls_messages-messages.
- * ls_result-messages_error = ls_messages-messages_error.
- *
- * APPEND ls_result TO et_result.
- IF iv_commit EQ abap_true AND iv_package_commit EQ space.
- IF ls_messages-error EQ 'X'.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- ELSE.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- ENDIF.
- ENDIF.
- ENDLOOP.
- IF iv_commit EQ abap_true AND iv_package_commit EQ abap_true.
- IF ls_messages_all-error IS INITIAL.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- ELSE.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- ENDIF.
- ENDIF.
- es_messages = ls_messages_all.
- ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement