Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- METHOD create_bp.
- * на время теста
- * 2 идентичных вызова BAPI_BUPA_CREATE_FROM_DATA
- * заполнение et_result
- "ls_centraldata не присвоено
- * DATA: <ls_bp_create> TYPE zstm_bp_create,
- * lt_return TYPE bapiret2_t,
- * ls_return TYPE bapiret2,
- * lv_bupa_number TYPE bu_partner,
- * ls_ident TYPE bapibus1006_identification,
- * ls_centraldata TYPE bapibus1006_central,
- * ls_centraldataorganization TYPE bapibus1006_central_organ,
- * ls_addressdata TYPE bapibus1006_address,
- * ls_telefondat TYPE bapiadtel,
- * lt_telefondat TYPE TABLE OF bapiadtel,
- * ls_bp_person TYPE bapibus1006_central_person,
- *
- * ls_bank_address TYPE bapi1011_address,
- * ls_bankdetaildata TYPE bapibus1006_bankdetail,
- * ls_partners_bank TYPE zstm_partners_bank_data_sap,
- * "ls_bp_group TYPE bapibus1006_central_group,
- *
- * lv_partner_num TYPE bu_partner,
- * lv_curr_error TYPE flag,
- * lv_partn_cat TYPE bu_type,
- * lv_partn_grp TYPE bu_group,
- * ls_result TYPE zstm_bp_result,
- * ls_messages_all TYPE zstm_messages,
- * ls_messages TYPE zstm_messages.
- 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_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.
- * "{ Main
- ** Раскидываем из входящей структуры текущего партнёра все данные в нужные структуры
- * ls_centraldataorganization-name1 = <ls_bp_create>-main_data-ap_suppliers_vendor_name.
- * ls_centraldataorganization-name2 = <ls_bp_create>-main_data-hz_parties_known_as.
- * ls_centraldataorganization-name3 = <ls_bp_create>-main_data-hz_parties_org_name_phonetic.
- *
- * ls_addressdata-country = <ls_bp_create>-main_data-hz_locations_country.
- * ls_addressdata-postl_cod1 = <ls_bp_create>-main_data-hz_locations_postal_code.
- * ls_addressdata-city = <ls_bp_create>-main_data-hz_locations_city.
- * ls_addressdata-county = <ls_bp_create>-main_data-hz_locations_county.
- * ls_addressdata-street = <ls_bp_create>-main_data-hz_locations_address2.
- * ls_addressdata-house_no = <ls_bp_create>-main_data-hz_locations_address3.
- * ls_addressdata-house_no2 = <ls_bp_create>-main_data-hz_locations_address4.
- * ls_addressdata-langu = 'RU'.
- * "} Main
- *
- * IF <ls_bp_create>-generate_bp_num EQ space.
- * lv_partner_num = <ls_bp_create>-partner_num.
- * ENDIF.
- *
- * lv_partn_cat = <ls_bp_create>-partn_typ.
- * lv_partn_grp = <ls_bp_create>-partn_grp.
- * ls_bp_person-birthdate = <ls_bp_create>-bp_person-birthdate.
- * ls_bp_person-firstname = <ls_bp_create>-bp_person-firstname.
- * ls_bp_person-lastname = <ls_bp_create>-bp_person-lastname.
- *
- * ls_addressdata-country = <ls_bp_create>-adress_data-country.
- * ls_addressdata-countryiso = <ls_bp_create>-adress_data-countryiso.
- *
- * "{ Телефоны
- * ls_telefondat-telephone = <ls_bp_create>-telefon_data-telephone.
- * ls_telefondat-r_3_user = <ls_bp_create>-telefon_data-r_3_user.
- * ls_telefondat-country = <ls_bp_create>-telefon_data-country.
- * ls_telefondat-countryiso = <ls_bp_create>-telefon_data-countryiso.
- *
- * APPEND ls_telefondat TO lt_telefondat.
- * "} Телефоны
- * "Semenova 08.07.2021
- ** Создаём партнёра с входящими данными
- ** На время теста
- * IF lv_partner_num IS INITIAL.
- * lv_partn_grp = '0001'.
- *
- * ELSE.
- * lv_partn_grp = '0002'.
- * ENDIF.
- ** На время теста
- * IF lv_partn_cat = '1'.
- ** 2 идентичных вызова BAPI_BUPA_CREATE_FROM_DATA
- 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 "ls_centraldata не присвоено
- 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.
- * ELSE.
- * " Создаём партнёра с входящими данными( Организация )
- * CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
- * EXPORTING
- * businesspartnerextern = lv_partner_num
- * partnercategory = lv_partn_cat
- * partnergroup = lv_partn_grp
- * centraldata = ls_centraldata "ls_centraldata не присвоено
- * centraldataorganization = ls_centraldataorganization
- * addressdata = ls_addressdata
- * IMPORTING
- * businesspartner = lv_bupa_number
- * TABLES
- * return = lt_return.
- * ENDIF.
- 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