Advertisement
hxxxrz

Untitled

Jul 14th, 2021
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. METHOD change_bp.
  2. * заполнение et_result
  3.  
  4. DATA: lv_partner_num TYPE bu_partner,
  5. ls_central TYPE bapibus1006_central,
  6. ls_central_x TYPE bapibus1006_central_x,
  7. ls_central_person TYPE bapibus1006_central_person,
  8. ls_central_person_x TYPE bapibus1006_central_person_x,
  9. ls_central_org TYPE bapibus1006_central_organ,
  10. ls_central_org_x TYPE bapibus1006_central_organ_x,
  11. ls_central_group TYPE bapibus1006_central_group,
  12. ls_central_group_x TYPE bapibus1006_central_group_x,
  13. lv_addressguid TYPE but020-guid,
  14. ls_address TYPE bapibus1006_address,
  15. ls_address_x TYPE bapibus1006_address_x,
  16. lt_return TYPE bapiret2_t,
  17. lv_curr_error TYPE flag,
  18. ls_messages_all TYPE zstm_messages,
  19. ls_messages TYPE zstm_messages.
  20.  
  21. LOOP AT it_bp_edit ASSIGNING FIELD-SYMBOL(<ls_bp_edit>).
  22. CLEAR: lv_partner_num,
  23. ls_central,
  24. ls_central_x,
  25. ls_central_person,
  26. ls_central_person_x,
  27. ls_central_org,
  28. ls_central_org_x,
  29. ls_central_group,
  30. ls_central_group_x,
  31. lv_addressguid,
  32. ls_address,
  33. ls_address_x,
  34. lt_return,
  35. lv_curr_error,
  36. ls_messages.
  37.  
  38. lv_partner_num = <ls_bp_edit>-partner_num.
  39.  
  40. MOVE-CORRESPONDING <ls_bp_edit>-central_data TO ls_central.
  41. MOVE-CORRESPONDING <ls_bp_edit>-central_data_x TO ls_central_x.
  42. MOVE-CORRESPONDING <ls_bp_edit>-central_person TO ls_central_person.
  43. MOVE-CORRESPONDING <ls_bp_edit>-central_person_x TO ls_central_person_x.
  44. MOVE-CORRESPONDING <ls_bp_edit>-central_org TO ls_central_org.
  45. MOVE-CORRESPONDING <ls_bp_edit>-central_org_x TO ls_central_org_x.
  46. MOVE-CORRESPONDING <ls_bp_edit>-central_group TO ls_central_group.
  47. MOVE-CORRESPONDING <ls_bp_edit>-central_group_x TO ls_central_group_x.
  48.  
  49. lv_addressguid = <ls_bp_edit>-addressguid.
  50.  
  51. MOVE-CORRESPONDING <ls_bp_edit>-address TO ls_address.
  52. MOVE-CORRESPONDING <ls_bp_edit>-address_x TO ls_address_x.
  53.  
  54. CALL FUNCTION 'BAPI_BUPA_CENTRAL_CHANGE'
  55. EXPORTING
  56. businesspartner = lv_partner_num
  57. centraldata = ls_central
  58. centraldataperson = ls_central_person
  59. centraldataorganization = ls_central_org
  60. centraldatagroup = ls_central_group
  61. centraldata_x = ls_central_x
  62. centraldataperson_x = ls_central_person_x
  63. centraldataorganization_x = ls_central_org_x
  64. centraldatagroup_x = ls_central_group_x
  65. TABLES
  66. return = lt_return.
  67.  
  68. zcl_tm_utils=>analyze_bapi_return(
  69. EXPORTING
  70. it_return = lt_return
  71. IMPORTING
  72. ev_error = lv_curr_error
  73. CHANGING
  74. cs_messages_all = ls_messages_all
  75. RECEIVING
  76. rs_messages = ls_messages ).
  77.  
  78. * заполнение et_result
  79. * MOVE-CORRESPONDING <ls_bp_edit> TO ls_result.
  80. *
  81. * ls_result-error = ls_messages-error.
  82. * ls_result-messages = ls_messages-messages.
  83. * ls_result-messages_error = ls_messages-messages_error.
  84. *
  85. * APPEND ls_result TO et_result.
  86.  
  87. IF iv_commit EQ abap_true AND iv_package_commit EQ space.
  88. IF ls_messages-error EQ 'X'.
  89. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  90.  
  91. ELSE.
  92. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  93. EXPORTING
  94. wait = 'X'.
  95. ENDIF.
  96. ENDIF.
  97.  
  98. CLEAR: lt_return,
  99. lv_curr_error,
  100. ls_messages. "?????????????????????????????????????????????????????
  101.  
  102. CALL FUNCTION 'BAPI_BUPA_ADDRESS_CHANGE'
  103. EXPORTING
  104. businesspartner = lv_partner_num
  105. addressguid = lv_addressguid
  106. addressdata = ls_address
  107. addressdata_x = ls_address_x
  108. TABLES
  109. return = lt_return.
  110.  
  111. zcl_tm_utils=>analyze_bapi_return(
  112. EXPORTING
  113. it_return = lt_return
  114. IMPORTING
  115. ev_error = lv_curr_error
  116. CHANGING
  117. cs_messages_all = ls_messages_all
  118. RECEIVING
  119. rs_messages = ls_messages ).
  120.  
  121. * заполнение et_result
  122. * MOVE-CORRESPONDING <ls_bp_edit> TO ls_result.
  123. *
  124. * ls_result-error = ls_messages-error.
  125. * ls_result-messages = ls_messages-messages.
  126. * ls_result-messages_error = ls_messages-messages_error.
  127. *
  128. * APPEND ls_result TO et_result.
  129.  
  130. IF iv_commit EQ abap_true AND iv_package_commit EQ space.
  131. IF ls_messages-error EQ 'X'.
  132. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  133.  
  134. ELSE.
  135. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  136. EXPORTING
  137. wait = 'X'.
  138. ENDIF.
  139. ENDIF.
  140. ENDLOOP.
  141.  
  142. IF iv_commit EQ abap_true AND iv_package_commit EQ abap_true.
  143. IF ls_messages_all-error IS INITIAL.
  144. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  145. EXPORTING
  146. wait = 'X'.
  147.  
  148. ELSE.
  149. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  150. ENDIF.
  151. ENDIF.
  152.  
  153. es_messages = ls_messages_all.
  154.  
  155. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement