Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- METHOD create_bp.
- * заполнение et_result
- DATA: lv_partner_num_extern TYPE bu_partner, "на вход - вручную прописать номер БП
- lv_partn_grp TYPE bu_group,
- lv_partn_cat TYPE bu_type,
- ls_central TYPE bapibus1006_central,
- ls_central_person TYPE bapibus1006_central_person,
- ls_central_org TYPE bapibus1006_central_organ,
- ls_central_group TYPE bapibus1006_central_group,
- ls_address TYPE bapibus1006_address,
- lt_telefon TYPE TABLE OF bapiadtel,
- lv_partner_num TYPE bu_partner, "на выходе вызова bapi
- 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_create ASSIGNING FIELD-SYMBOL(<ls_bp_create>).
- CLEAR: lv_partner_num_extern,
- lv_partn_grp,
- lv_partn_cat,
- ls_central,
- ls_central_person,
- ls_central_org,
- ls_central_group,
- ls_address,
- lt_telefon,
- lv_partner_num,
- lt_return,
- lv_curr_error,
- ls_messages.
- * IF <ls_bp_create>-generate_bp_num EQ space. "генерация или присвоение номера БП
- * lv_partner_num_extern = <ls_bp_create>-partner_num.
- * ENDIF.
- lv_partner_num_extern = <ls_bp_create>-partner_num.
- lv_partn_grp = <ls_bp_create>-partn_grp.
- lv_partn_cat = <ls_bp_create>-partn_typ.
- MOVE-CORRESPONDING <ls_bp_create>-central_data TO ls_central.
- MOVE-CORRESPONDING <ls_bp_create>-central_person TO ls_central_person.
- MOVE-CORRESPONDING <ls_bp_create>-central_org TO ls_central_org.
- MOVE-CORRESPONDING <ls_bp_create>-central_group TO ls_central_group.
- MOVE-CORRESPONDING <ls_bp_create>-address TO ls_address.
- MOVE-CORRESPONDING <ls_bp_create>-telefon TO lt_telefon.
- CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
- EXPORTING
- businesspartnerextern = lv_partner_num_extern
- partnercategory = lv_partn_cat "'2'
- partnergroup = lv_partn_grp "'0001'
- centraldata = ls_central "обязательный атрибут
- centraldataperson = ls_central_person
- centraldataorganization = ls_central_org
- centraldatagroup = ls_central_group
- addressdata = ls_address
- IMPORTING
- businesspartner = lv_partner_num
- TABLES
- telefondata = lt_telefon
- 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_create> 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