Advertisement
hxxxrz

Untitled

Jul 14th, 2021
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.50 KB | None | 0 0
  1. METHOD create_bp.
  2. * на время теста
  3. * 2 идентичных вызова BAPI_BUPA_CREATE_FROM_DATA
  4. * заполнение et_result
  5. "ls_centraldata не присвоено
  6.  
  7. * DATA: <ls_bp_create> TYPE zstm_bp_create,
  8. * lt_return TYPE bapiret2_t,
  9. * ls_return TYPE bapiret2,
  10. * lv_bupa_number TYPE bu_partner,
  11. * ls_ident TYPE bapibus1006_identification,
  12. * ls_centraldata TYPE bapibus1006_central,
  13. * ls_centraldataorganization TYPE bapibus1006_central_organ,
  14. * ls_addressdata TYPE bapibus1006_address,
  15. * ls_telefondat TYPE bapiadtel,
  16. * lt_telefondat TYPE TABLE OF bapiadtel,
  17. * ls_bp_person TYPE bapibus1006_central_person,
  18. *
  19. * ls_bank_address TYPE bapi1011_address,
  20. * ls_bankdetaildata TYPE bapibus1006_bankdetail,
  21. * ls_partners_bank TYPE zstm_partners_bank_data_sap,
  22. * "ls_bp_group TYPE bapibus1006_central_group,
  23. *
  24. * lv_partner_num TYPE bu_partner,
  25. * lv_curr_error TYPE flag,
  26. * lv_partn_cat TYPE bu_type,
  27. * lv_partn_grp TYPE bu_group,
  28. * ls_result TYPE zstm_bp_result,
  29. * ls_messages_all TYPE zstm_messages,
  30. * ls_messages TYPE zstm_messages.
  31.  
  32. DATA: lv_partner_num_extern TYPE bu_partner, "на вход - вручную прописать номер БП
  33. lv_partn_grp TYPE bu_group,
  34. lv_partn_cat TYPE bu_type,
  35. ls_central TYPE bapibus1006_central,
  36. ls_central_person TYPE bapibus1006_central_person,
  37. ls_central_org TYPE BAPIBUS1006_CENTRAL_ORGAN,
  38. ls_central_group TYPE BAPIBUS1006_CENTRAL_GROUP,
  39. ls_address TYPE BAPIBUS1006_ADDRESS,
  40. lt_telefon TYPE TABLE OF BAPIADTEL,
  41. lv_partner_num TYPE bu_partner, "на выходе вызова bapi
  42. lt_return TYPE bapiret2_t,
  43. lv_curr_error TYPE flag,
  44. ls_messages_all TYPE zstm_messages,
  45. ls_messages TYPE zstm_messages.
  46.  
  47. LOOP AT it_bp_create ASSIGNING FIELD-SYMBOL(<ls_bp_create>).
  48. CLEAR: lv_partner_num_extern,
  49. lv_partn_grp,
  50. lv_partn_cat,
  51. ls_central,
  52. ls_central_person,
  53. ls_central_org,
  54. ls_central_group,
  55. ls_address,
  56. lt_telefon,
  57. lv_partner_num,
  58. lt_return,
  59. lv_curr_error,
  60. ls_messages.
  61.  
  62. IF <ls_bp_create>-generate_bp_num EQ space. "генерация или присвоение номера БП
  63. lv_partner_num_extern = <ls_bp_create>-partner_num.
  64. ENDIF.
  65.  
  66. lv_partn_grp = <ls_bp_create>-partn_grp.
  67. lv_partn_cat = <ls_bp_create>-partn_typ.
  68.  
  69. MOVE-CORRESPONDING <ls_bp_create>-central_data TO ls_central.
  70. MOVE-CORRESPONDING <ls_bp_create>-central_person TO ls_central_person.
  71. MOVE-CORRESPONDING <ls_bp_create>-central_org TO ls_central_org.
  72. MOVE-CORRESPONDING <ls_bp_create>-central_group TO ls_central_group.
  73. MOVE-CORRESPONDING <ls_bp_create>-address TO ls_address.
  74. MOVE-CORRESPONDING <ls_bp_create>-telefon TO lt_telefon.
  75.  
  76. * "{ Main
  77. ** Раскидываем из входящей структуры текущего партнёра все данные в нужные структуры
  78. * ls_centraldataorganization-name1 = <ls_bp_create>-main_data-ap_suppliers_vendor_name.
  79. * ls_centraldataorganization-name2 = <ls_bp_create>-main_data-hz_parties_known_as.
  80. * ls_centraldataorganization-name3 = <ls_bp_create>-main_data-hz_parties_org_name_phonetic.
  81. *
  82. * ls_addressdata-country = <ls_bp_create>-main_data-hz_locations_country.
  83. * ls_addressdata-postl_cod1 = <ls_bp_create>-main_data-hz_locations_postal_code.
  84. * ls_addressdata-city = <ls_bp_create>-main_data-hz_locations_city.
  85. * ls_addressdata-county = <ls_bp_create>-main_data-hz_locations_county.
  86. * ls_addressdata-street = <ls_bp_create>-main_data-hz_locations_address2.
  87. * ls_addressdata-house_no = <ls_bp_create>-main_data-hz_locations_address3.
  88. * ls_addressdata-house_no2 = <ls_bp_create>-main_data-hz_locations_address4.
  89. * ls_addressdata-langu = 'RU'.
  90. * "} Main
  91. *
  92. * IF <ls_bp_create>-generate_bp_num EQ space.
  93. * lv_partner_num = <ls_bp_create>-partner_num.
  94. * ENDIF.
  95. *
  96. * lv_partn_cat = <ls_bp_create>-partn_typ.
  97. * lv_partn_grp = <ls_bp_create>-partn_grp.
  98. * ls_bp_person-birthdate = <ls_bp_create>-bp_person-birthdate.
  99. * ls_bp_person-firstname = <ls_bp_create>-bp_person-firstname.
  100. * ls_bp_person-lastname = <ls_bp_create>-bp_person-lastname.
  101. *
  102. * ls_addressdata-country = <ls_bp_create>-adress_data-country.
  103. * ls_addressdata-countryiso = <ls_bp_create>-adress_data-countryiso.
  104. *
  105. * "{ Телефоны
  106. * ls_telefondat-telephone = <ls_bp_create>-telefon_data-telephone.
  107. * ls_telefondat-r_3_user = <ls_bp_create>-telefon_data-r_3_user.
  108. * ls_telefondat-country = <ls_bp_create>-telefon_data-country.
  109. * ls_telefondat-countryiso = <ls_bp_create>-telefon_data-countryiso.
  110. *
  111. * APPEND ls_telefondat TO lt_telefondat.
  112. * "} Телефоны
  113.  
  114. * "Semenova 08.07.2021
  115. ** Создаём партнёра с входящими данными
  116. ** На время теста
  117. * IF lv_partner_num IS INITIAL.
  118. * lv_partn_grp = '0001'.
  119. *
  120. * ELSE.
  121. * lv_partn_grp = '0002'.
  122. * ENDIF.
  123. ** На время теста
  124.  
  125. * IF lv_partn_cat = '1'.
  126. ** 2 идентичных вызова BAPI_BUPA_CREATE_FROM_DATA
  127. CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
  128. EXPORTING
  129. businesspartnerextern = lv_partner_num_extern
  130. partnercategory = lv_partn_cat "'2'
  131. partnergroup = lv_partn_grp "'0001'
  132. centraldata = ls_central "ls_centraldata не присвоено
  133. centraldataperson = ls_central_person
  134. centraldataorganization = ls_central_org
  135. centraldatagroup = ls_central_group
  136. addressdata = ls_address
  137. IMPORTING
  138. businesspartner = lv_partner_num
  139. TABLES
  140. telefondata = lt_telefon "Данные телефона
  141. return = lt_return.
  142.  
  143. * ELSE.
  144. * " Создаём партнёра с входящими данными( Организация )
  145. * CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
  146. * EXPORTING
  147. * businesspartnerextern = lv_partner_num
  148. * partnercategory = lv_partn_cat
  149. * partnergroup = lv_partn_grp
  150. * centraldata = ls_centraldata "ls_centraldata не присвоено
  151. * centraldataorganization = ls_centraldataorganization
  152. * addressdata = ls_addressdata
  153. * IMPORTING
  154. * businesspartner = lv_bupa_number
  155. * TABLES
  156. * return = lt_return.
  157. * ENDIF.
  158.  
  159. zcl_tm_utils=>analyze_bapi_return(
  160. EXPORTING
  161. it_return = lt_return
  162. IMPORTING
  163. ev_error = lv_curr_error
  164. CHANGING
  165. cs_messages_all = ls_messages_all
  166. RECEIVING
  167. rs_messages = ls_messages ).
  168.  
  169. * заполнение et_result
  170. * MOVE-CORRESPONDING <ls_bp_create> TO ls_result.
  171. *
  172. * ls_result-error = ls_messages-error.
  173. * ls_result-messages = ls_messages-messages.
  174. * ls_result-messages_error = ls_messages-messages_error. " Заполнение анализа ошибок в разрезе обьекта
  175. *
  176. * APPEND ls_result TO et_result.
  177.  
  178. IF iv_commit EQ abap_true AND iv_package_commit EQ space.
  179. IF ls_messages-error EQ 'X'.
  180. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  181.  
  182. ELSE.
  183. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  184. EXPORTING
  185. wait = 'X'.
  186. ENDIF.
  187. ENDIF.
  188. ENDLOOP.
  189.  
  190. IF iv_commit EQ abap_true AND iv_package_commit EQ abap_true.
  191. IF ls_messages_all-error IS INITIAL.
  192. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  193. EXPORTING
  194. wait = 'X'.
  195.  
  196. ELSE.
  197. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  198. ENDIF.
  199. ENDIF.
  200.  
  201. es_messages = ls_messages_all.
  202. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement