Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FUNCTION zpp_order_add_component.
- *"----------------------------------------------------------------------
- *"*"Lokalny interfejs:
- *" IMPORTING
- *" VALUE(MATERIAL) TYPE MATNR
- *" VALUE(QUANTITY) TYPE GAMNG
- *" VALUE(UOM) TYPE MEINS
- *" VALUE(ORDER) TYPE AUFNR
- *" VALUE(BATCH) TYPE CHARG_D OPTIONAL
- *" VALUE(SOBKZ) TYPE SOBKZ OPTIONAL
- *" VALUE(POSNR) TYPE POSITIONNO
- *" VALUE(SLOC) TYPE LGORT_D
- *" VALUE(POSTP) TYPE POSTP OPTIONAL
- *" EXPORTING
- *" VALUE(ERROR) TYPE XFELD
- *" EXCEPTIONS
- *" COMPONENT_ADD_FAILURE
- *" ORDER_POST_FAILURE
- *"----------------------------------------------------------------------
- DATA:
- ls_return LIKE bapiret2,
- lv_error TYPE c,
- ls_resbd LIKE resbd,
- ls_quan TYPE coxt_s_quantity,
- ls_org TYPE coxt_s_storage_location,
- ls_orgx TYPE coxt_s_storage_locationx,
- lv_char20 TYPE char20,
- et_ord_key_map TYPE coxt_t_ord_key_map,
- lv_postp TYPE postp,
- lv_logno TYPE syst_msgno.
- IF postp IS NOT INITIAL.
- lv_postp = postp.
- ELSE.
- lv_postp = 'L'.
- ENDIF.
- ls_quan-quantity = quantity.
- ls_quan-uom = uom.
- ls_org-werks = 'M100'.
- ls_org-lgort = sloc.
- ls_orgx-werks = 'X'.
- ls_orgx-lgort = 'X'.
- CLEAR error.
- DATA: lv_order TYPE coxt_ord_key.
- lv_order = order.
- CALL FUNCTION 'CO_XT_COMPONENT_ADD'
- EXPORTING
- is_order_key = lv_order
- i_material = material
- is_requ_quan = ls_quan
- * IS_CONF_QUAN =
- * IS_CONF_QUANX =
- i_operation = '0'
- * I_SEQUENCE =
- is_storage_location = ls_org
- is_storage_locationx = ls_orgx
- i_batch = batch
- i_batchx = 'X'
- * I_CUOBJ =
- * I_CUOBJX =
- * I_BATCH_SEL_CUOBJ =
- * I_BATCH_SEL_CUOBJX =
- i_postp = lv_postp "'L'
- * I_KZKUP =
- * I_KZKUPX =
- * I_XFEHL =
- * I_XFEHLX =
- * i_sobkz = sobkz
- * i_sobkzx = 'X'
- * I_KDAUF =
- * I_KDAUFX =
- * I_KDPOS =
- * I_KDPOSX =
- * I_PSPEL =
- * I_PSPELX =
- i_posno = posnr
- * I_KZAUS =
- * I_KZAUSX =
- * I_NAFKZ =
- * I_NAFKZX =
- * I_NOMAT =
- * I_NOMATX =
- * I_NFUML =
- * I_NFUMLX =
- * I_NFPKZ =
- * I_NFPKZX =
- * I_NOMNG =
- * I_NOMNGX =
- IMPORTING
- * ES_AFPO =
- * ES_ISSUEDATE =
- es_bapireturn = ls_return
- e_error_occurred = lv_error
- es_resbd_created = ls_resbd
- *** TABLES
- *** resbt_exp =
- .
- IF ls_return-type = 'E' OR lv_error IS NOT INITIAL.
- *ls_return
- zpp_tools=>zbreak(
- EXPORTING
- iv_param_name = 'ZPP_ORDER_ADD_COMPONENT__E' " Nazwa parametru blokady
- iv_infinite = 'X' " Wskaźnik jednoznakowy
- ).
- lv_char20 = lv_order.
- CALL FUNCTION 'ZPP_GET_ERROR_LOC'
- EXPORTING
- iv_appl_obj = lv_char20.
- lv_logno = ls_return-log_no.
- CALL FUNCTION 'ZPP_CREATE_LOG'
- EXPORTING
- in_object = 'ZPP_ORDERS'
- in_subobject = 'COMPONENTS'
- in_type = ls_return-type
- in_cl = ls_return-id
- in_number = lv_logno
- in_par1 = ls_return-message_v1
- in_par2 = ls_return-message_v2
- in_par3 = ls_return-message_v3
- in_par4 = ls_return-message_v4
- in_appl_obj = lv_char20.
- COMMIT WORK.
- error = 'X'.
- RAISE component_add_failure.
- ELSE.
- CALL FUNCTION 'CO_ZV_ORDER_POST'
- EXPORTING
- commit_flag = space
- ext_flg = 'X'
- trans_typ = 'V'
- no_gui_message = 'X'
- no_dialog = 'X'
- IMPORTING
- first_aufnr = lv_order
- e_flg_lvs_error = lv_error
- TABLES
- caufvd_num_exp = et_ord_key_map
- EXCEPTIONS
- no_change = 1
- update_reject = 2
- error_message = 3
- OTHERS = 4.
- IF sy-subrc <> 0.
- zpp_tools=>zbreak(
- EXPORTING
- iv_param_name = 'ZPP_ORDER_ADD_COMPONENT__E' " Nazwa parametru blokady
- iv_infinite = 'X' " Wskaźnik jednoznakowy
- ).
- lv_char20 = lv_order.
- CALL FUNCTION 'ZPP_GET_ERROR_LOC'
- EXPORTING
- iv_appl_obj = lv_char20.
- lv_logno = sy-msgno.
- CALL FUNCTION 'ZPP_CREATE_LOG'
- EXPORTING
- in_object = 'ZPP_ORDERS'
- in_subobject = 'COMPONENTS'
- in_type = sy-msgty
- in_cl = sy-msgid
- in_number = lv_logno
- in_par1 = sy-msgv1
- in_par2 = sy-msgv3
- in_par3 = sy-msgv3
- in_par4 = sy-msgv4
- in_appl_obj = lv_char20.
- COMMIT WORK.
- error = 'X'.
- *** RAISE order_post_failure.
- ELSEIF lv_error IS NOT INITIAL.
- lv_char20 = lv_order.
- CALL FUNCTION 'ZPP_GET_ERROR_LOC'
- EXPORTING
- iv_appl_obj = lv_char20.
- lv_logno = ls_return-number.
- ls_return-number = '023'.
- ls_return-type = 'E'.
- ls_return-id = 'ZPP_ORDER'.
- ls_return-message_v1 = lv_order.
- ls_return-message_v2 = material.
- ls_return-message_v3 = batch.
- CALL FUNCTION 'ZPP_CREATE_LOG'
- EXPORTING
- in_object = 'ZPP_ORDERS'
- in_subobject = 'COMPONENTS'
- in_type = ls_return-type
- in_cl = ls_return-id
- in_number = lv_logno
- in_par1 = ls_return-message_v1
- in_par2 = ls_return-message_v2
- in_par3 = ls_return-message_v3
- in_appl_obj = lv_char20.
- COMMIT WORK.
- error = 'X'.
- *** RAISE order_post_failure.
- ENDIF.
- zpp_tools=>zbreak(
- EXPORTING
- iv_param_name = 'ZPP_ORDER_ADD_COMPONENT' " Nazwa parametru blokady
- iv_infinite = 'X' " Wskaźnik jednoznakowy
- ).
- ENDIF.
- * COMMIT WORK AND WAIT.
- ENDFUNCTION.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement