Advertisement
hxxxrz

Untitled

Jul 14th, 2021
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. METHOD create_bp.
  2. * заполнение et_result
  3. DATA: lv_partner_num_extern TYPE bu_partner, "на вход - вручную прописать номер БП
  4. lv_partn_grp TYPE bu_group,
  5. lv_partn_cat TYPE bu_type,
  6. ls_central TYPE bapibus1006_central,
  7. ls_central_person TYPE bapibus1006_central_person,
  8. ls_central_org TYPE bapibus1006_central_organ,
  9. ls_central_group TYPE bapibus1006_central_group,
  10. ls_address TYPE bapibus1006_address,
  11. lt_telefon TYPE TABLE OF bapiadtel,
  12. lv_partner_num TYPE bu_partner, "на выходе вызова bapi
  13. lt_return TYPE bapiret2_t,
  14. lv_curr_error TYPE flag,
  15. ls_messages_all TYPE zstm_messages,
  16. ls_messages TYPE zstm_messages.
  17.  
  18. LOOP AT it_bp_create ASSIGNING FIELD-SYMBOL(<ls_bp_create>).
  19. CLEAR: lv_partner_num_extern,
  20. lv_partn_grp,
  21. lv_partn_cat,
  22. ls_central,
  23. ls_central_person,
  24. ls_central_org,
  25. ls_central_group,
  26. ls_address,
  27. lt_telefon,
  28. lv_partner_num,
  29. lt_return,
  30. lv_curr_error,
  31. ls_messages.
  32.  
  33. * IF <ls_bp_create>-generate_bp_num EQ space. "генерация или присвоение номера БП
  34. * lv_partner_num_extern = <ls_bp_create>-partner_num.
  35. * ENDIF.
  36.  
  37. lv_partner_num_extern = <ls_bp_create>-partner_num.
  38. lv_partn_grp = <ls_bp_create>-partn_grp.
  39. lv_partn_cat = <ls_bp_create>-partn_typ.
  40.  
  41. MOVE-CORRESPONDING <ls_bp_create>-central_data TO ls_central.
  42. MOVE-CORRESPONDING <ls_bp_create>-central_person TO ls_central_person.
  43. MOVE-CORRESPONDING <ls_bp_create>-central_org TO ls_central_org.
  44. MOVE-CORRESPONDING <ls_bp_create>-central_group TO ls_central_group.
  45. MOVE-CORRESPONDING <ls_bp_create>-address TO ls_address.
  46. MOVE-CORRESPONDING <ls_bp_create>-telefon TO lt_telefon.
  47.  
  48. CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
  49. EXPORTING
  50. businesspartnerextern = lv_partner_num_extern
  51. partnercategory = lv_partn_cat "'2'
  52. partnergroup = lv_partn_grp "'0001'
  53. centraldata = ls_central "обязательный атрибут
  54. centraldataperson = ls_central_person
  55. centraldataorganization = ls_central_org
  56. centraldatagroup = ls_central_group
  57. addressdata = ls_address
  58. IMPORTING
  59. businesspartner = lv_partner_num
  60. TABLES
  61. telefondata = lt_telefon
  62. return = lt_return.
  63.  
  64. zcl_tm_utils=>analyze_bapi_return(
  65. EXPORTING
  66. it_return = lt_return
  67. IMPORTING
  68. ev_error = lv_curr_error
  69. CHANGING
  70. cs_messages_all = ls_messages_all
  71. RECEIVING
  72. rs_messages = ls_messages ).
  73.  
  74. * заполнение et_result
  75. * MOVE-CORRESPONDING <ls_bp_create> TO ls_result.
  76. *
  77. * ls_result-error = ls_messages-error.
  78. * ls_result-messages = ls_messages-messages.
  79. * ls_result-messages_error = ls_messages-messages_error.
  80. *
  81. * APPEND ls_result TO et_result.
  82.  
  83. IF iv_commit EQ abap_true AND iv_package_commit EQ space.
  84. IF ls_messages-error EQ 'X'.
  85. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  86.  
  87. ELSE.
  88. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  89. EXPORTING
  90. wait = 'X'.
  91. ENDIF.
  92. ENDIF.
  93. ENDLOOP.
  94.  
  95. IF iv_commit EQ abap_true AND iv_package_commit EQ abap_true.
  96. IF ls_messages_all-error IS INITIAL.
  97. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  98. EXPORTING
  99. wait = 'X'.
  100.  
  101. ELSE.
  102. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  103. ENDIF.
  104. ENDIF.
  105.  
  106. es_messages = ls_messages_all.
  107. ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement