Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 6.36 KB | None | 0 0
  1. FUNCTION zpp_order_add_component.
  2. *"----------------------------------------------------------------------
  3. *"*"Lokalny interfejs:
  4. *"  IMPORTING
  5. *"     VALUE(MATERIAL) TYPE  MATNR
  6. *"     VALUE(QUANTITY) TYPE  GAMNG
  7. *"     VALUE(UOM) TYPE  MEINS
  8. *"     VALUE(ORDER) TYPE  AUFNR
  9. *"     VALUE(BATCH) TYPE  CHARG_D OPTIONAL
  10. *"     VALUE(SOBKZ) TYPE  SOBKZ OPTIONAL
  11. *"     VALUE(POSNR) TYPE  POSITIONNO
  12. *"     VALUE(SLOC) TYPE  LGORT_D
  13. *"     VALUE(POSTP) TYPE  POSTP OPTIONAL
  14. *"  EXPORTING
  15. *"     VALUE(ERROR) TYPE  XFELD
  16. *"  EXCEPTIONS
  17. *"      COMPONENT_ADD_FAILURE
  18. *"      ORDER_POST_FAILURE
  19. *"----------------------------------------------------------------------
  20.   DATA:
  21.     ls_return      LIKE bapiret2,
  22.     lv_error       TYPE c,
  23.     ls_resbd       LIKE resbd,
  24.     ls_quan        TYPE coxt_s_quantity,
  25.     ls_org         TYPE coxt_s_storage_location,
  26.     ls_orgx        TYPE coxt_s_storage_locationx,
  27.     lv_char20      TYPE char20,
  28.     et_ord_key_map TYPE coxt_t_ord_key_map,
  29.     lv_postp       TYPE postp,
  30.     lv_logno       TYPE syst_msgno.
  31.  
  32.   IF postp IS NOT INITIAL.
  33.     lv_postp = postp.
  34.   ELSE.
  35.     lv_postp = 'L'.
  36.   ENDIF.
  37.  
  38.   ls_quan-quantity = quantity.
  39.   ls_quan-uom = uom.
  40.   ls_org-werks = 'M100'.
  41.   ls_org-lgort = sloc.
  42.   ls_orgx-werks = 'X'.
  43.   ls_orgx-lgort = 'X'.
  44.  
  45.   CLEAR error.
  46.  
  47.   DATA: lv_order TYPE coxt_ord_key.
  48.   lv_order = order.
  49.  
  50.   CALL FUNCTION 'CO_XT_COMPONENT_ADD'
  51.     EXPORTING
  52.       is_order_key         = lv_order
  53.       i_material           = material
  54.       is_requ_quan         = ls_quan
  55. *     IS_CONF_QUAN         =
  56. *     IS_CONF_QUANX        =
  57.       i_operation          = '0'
  58. *     I_SEQUENCE           =
  59.       is_storage_location  = ls_org
  60.       is_storage_locationx = ls_orgx
  61.       i_batch              = batch
  62.       i_batchx             = 'X'
  63. *     I_CUOBJ              =
  64. *     I_CUOBJX             =
  65. *     I_BATCH_SEL_CUOBJ    =
  66. *     I_BATCH_SEL_CUOBJX   =
  67.       i_postp              = lv_postp "'L'
  68. *     I_KZKUP              =
  69. *     I_KZKUPX             =
  70. *     I_XFEHL              =
  71. *     I_XFEHLX             =
  72. *     i_sobkz              = sobkz
  73. *     i_sobkzx             = 'X'
  74. *     I_KDAUF              =
  75. *     I_KDAUFX             =
  76. *     I_KDPOS              =
  77. *     I_KDPOSX             =
  78. *     I_PSPEL              =
  79. *     I_PSPELX             =
  80.       i_posno              = posnr
  81. *     I_KZAUS              =
  82. *     I_KZAUSX             =
  83. *     I_NAFKZ              =
  84. *     I_NAFKZX             =
  85. *     I_NOMAT              =
  86. *     I_NOMATX             =
  87. *     I_NFUML              =
  88. *     I_NFUMLX             =
  89. *     I_NFPKZ              =
  90. *     I_NFPKZX             =
  91. *     I_NOMNG              =
  92. *     I_NOMNGX             =
  93.     IMPORTING
  94. *     ES_AFPO              =
  95. *     ES_ISSUEDATE         =
  96.       es_bapireturn        = ls_return
  97.       e_error_occurred     = lv_error
  98.       es_resbd_created     = ls_resbd
  99. ***  TABLES
  100. ***    resbt_exp            =
  101.     .
  102.  
  103.   IF ls_return-type = 'E' OR lv_error IS NOT INITIAL.
  104. *ls_return
  105.  
  106.     zpp_tools=>zbreak(
  107.       EXPORTING
  108.         iv_param_name = 'ZPP_ORDER_ADD_COMPONENT__E'    " Nazwa parametru blokady
  109.         iv_infinite   =  'X'   " Wskaźnik jednoznakowy
  110.     ).
  111.  
  112.     lv_char20 = lv_order.
  113.     CALL FUNCTION 'ZPP_GET_ERROR_LOC'
  114.       EXPORTING
  115.         iv_appl_obj = lv_char20.
  116.  
  117.     lv_logno = ls_return-log_no.
  118.  
  119.     CALL FUNCTION 'ZPP_CREATE_LOG'
  120.       EXPORTING
  121.         in_object    = 'ZPP_ORDERS'
  122.         in_subobject = 'COMPONENTS'
  123.         in_type      = ls_return-type
  124.         in_cl        = ls_return-id
  125.         in_number    = lv_logno
  126.         in_par1      = ls_return-message_v1
  127.         in_par2      = ls_return-message_v2
  128.         in_par3      = ls_return-message_v3
  129.         in_par4      = ls_return-message_v4
  130.         in_appl_obj  = lv_char20.
  131.     COMMIT WORK.
  132.     error = 'X'.
  133.     RAISE component_add_failure.
  134.   ELSE.
  135.     CALL FUNCTION 'CO_ZV_ORDER_POST'
  136.       EXPORTING
  137.         commit_flag     = space
  138.         ext_flg         = 'X'
  139.         trans_typ       = 'V'
  140.         no_gui_message  = 'X'
  141.         no_dialog       = 'X'
  142.       IMPORTING
  143.         first_aufnr     = lv_order
  144.         e_flg_lvs_error = lv_error
  145.       TABLES
  146.         caufvd_num_exp  = et_ord_key_map
  147.       EXCEPTIONS
  148.         no_change       = 1
  149.         update_reject   = 2
  150.         error_message   = 3
  151.         OTHERS          = 4.
  152.  
  153.     IF sy-subrc <> 0.
  154.  
  155.       zpp_tools=>zbreak(
  156.         EXPORTING
  157.           iv_param_name = 'ZPP_ORDER_ADD_COMPONENT__E'    " Nazwa parametru blokady
  158.           iv_infinite   =  'X'   " Wskaźnik jednoznakowy
  159.       ).
  160.  
  161.       lv_char20 = lv_order.
  162.       CALL FUNCTION 'ZPP_GET_ERROR_LOC'
  163.         EXPORTING
  164.           iv_appl_obj = lv_char20.
  165.  
  166.       lv_logno = sy-msgno.
  167.  
  168.       CALL FUNCTION 'ZPP_CREATE_LOG'
  169.         EXPORTING
  170.           in_object    = 'ZPP_ORDERS'
  171.           in_subobject = 'COMPONENTS'
  172.           in_type      = sy-msgty
  173.           in_cl        = sy-msgid
  174.           in_number    = lv_logno
  175.           in_par1      = sy-msgv1
  176.           in_par2      = sy-msgv3
  177.           in_par3      = sy-msgv3
  178.           in_par4      = sy-msgv4
  179.           in_appl_obj  = lv_char20.
  180.  
  181.       COMMIT WORK.
  182.       error = 'X'.
  183. ***      RAISE order_post_failure.
  184.     ELSEIF lv_error IS NOT INITIAL.
  185.  
  186.       lv_char20 = lv_order.
  187.       CALL FUNCTION 'ZPP_GET_ERROR_LOC'
  188.         EXPORTING
  189.           iv_appl_obj = lv_char20.
  190.  
  191.  
  192.       lv_logno = ls_return-number.
  193.  
  194.       ls_return-number = '023'.
  195.       ls_return-type = 'E'.
  196.       ls_return-id = 'ZPP_ORDER'.
  197.       ls_return-message_v1 = lv_order.
  198.       ls_return-message_v2 = material.
  199.       ls_return-message_v3 = batch.
  200.       CALL FUNCTION 'ZPP_CREATE_LOG'
  201.         EXPORTING
  202.           in_object    = 'ZPP_ORDERS'
  203.           in_subobject = 'COMPONENTS'
  204.           in_type      = ls_return-type
  205.           in_cl        = ls_return-id
  206.           in_number    = lv_logno
  207.           in_par1      = ls_return-message_v1
  208.           in_par2      = ls_return-message_v2
  209.           in_par3      = ls_return-message_v3
  210.           in_appl_obj  = lv_char20.
  211.       COMMIT WORK.
  212.       error = 'X'.
  213. ***      RAISE order_post_failure.
  214.     ENDIF.
  215.  
  216.     zpp_tools=>zbreak(
  217.       EXPORTING
  218.         iv_param_name = 'ZPP_ORDER_ADD_COMPONENT'    " Nazwa parametru blokady
  219.         iv_infinite   =  'X'   " Wskaźnik jednoznakowy
  220.     ).
  221.  
  222.   ENDIF.
  223. *  COMMIT WORK AND WAIT.
  224.  
  225. ENDFUNCTION.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement