Quantcast
Channel: SCN: Message List - ABAP Connectivity
Viewing all articles
Browse latest Browse all 3125

Re: MBGMCR03 (DC_STOCKCHNG_IN) shows wrong message in Status 53

$
0
0

Hi Rob

 

Please find attached a sample code for the wrapper function module. It should have the same signature as any inbound IDoc processing function module.

 

The main idea is to replace the message from the existing B1(501) to another more relevant message. I used existing message N1ME(259) that states "Material document & & posted". The messages are in the IDOC_STATUS table whilst the material document & year is in the RETURN_VARIABLES table.

 

If you go with this approach, do note that you will need to have a custom process code for this function module, and use this new custom process code in your partner profile.

 

If you don't want to have a custom process code, another alternative would be to put the message modification logic as an implicit enhancement in function module IDOC_INPUT_MBGMCR. That choice is entirely yours.

 

FUNCTION z_idoc_input_mbgmcr.
 *"----------------------------------------------------------------------
 *"*"Local Interface:
 *"  IMPORTING
 *"     REFERENCE(INPUT_METHOD) TYPE  BDWFAP_PAR-INPUTMETHD
 *"     REFERENCE(MASS_PROCESSING) TYPE  BDWFAP_PAR-MASS_PROC
 *"  EXPORTING
 *"     REFERENCE(WORKFLOW_RESULT) TYPE  BDWF_PARAM-RESULT
 *"     REFERENCE(APPLICATION_VARIABLE) TYPE  BDWF_PARAM-APPL_VAR
 *"     REFERENCE(IN_UPDATE_TASK) TYPE  BDWFAP_PAR-UPDATETASK
 *"     REFERENCE(CALL_TRANSACTION_DONE) TYPE  BDWFAP_PAR-CALLTRANS
 *"  TABLES
 *"      IDOC_CONTRL STRUCTURE  EDIDC
 *"      IDOC_DATA STRUCTURE  EDIDD
 *"      IDOC_STATUS STRUCTURE  BDIDOCSTAT
 *"      RETURN_VARIABLES STRUCTURE  BDWFRETVAR
 *"      SERIALIZATION_INFO STRUCTURE  BDI_SER
 *"  EXCEPTIONS
 *"      WRONG_FUNCTION_CALLED
 *"----------------------------------------------------------------------   FIELD-SYMBOLS:     <status>  LIKE LINE OF idoc_status[],     <ret_var> LIKE LINE OF return_variables[].   CALL FUNCTION 'IDOC_INPUT_MBGMCR'     EXPORTING       input_method          = input_method       mass_processing       = mass_processing     IMPORTING       workflow_result       = workflow_result       application_variable  = application_variable       in_update_task        = in_update_task       call_transaction_done = call_transaction_done     TABLES       idoc_contrl           = idoc_contrl       idoc_data             = idoc_data       idoc_status           = idoc_status       return_variables      = return_variables       serialization_info    = serialization_info     EXCEPTIONS       wrong_function_called = 1.   IF sy-subrc = 0.
 *   Abort - rollback     READ TABLE idoc_status[] TRANSPORTING NO FIELDS                              WITH KEY msgty = 'A'.     IF sy-subrc = 0.       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.     ELSE.
 *   Success       LOOP AT idoc_status ASSIGNING <status>.         IF ( <status>-msgid = 'B1' AND <status>-msgno = '501' ). "BAPI & has been called successfully
 *         Get the MatDoc and year           READ TABLE return_variables[] ASSIGNING <ret_var>                                         WITH KEY wf_param = 'Appl_Objects'.           IF sy-subrc = 0.
 *           N1ME(259) - Material document & & posted             <status>-msgid = 'N1ME'.             <status>-msgno = '259'.             <status>-msgv1 = <ret_var>-doc_number+00. "Material No             <status>-msgv2 = <ret_var>-doc_number+10. "Year           ENDIF.           EXIT.         ENDIF.       ENDLOOP.     ENDIF.   ELSEIF sy-subrc = 1.     RAISE wrong_function_called.   ENDIF.
ENDFUNCTION.

 

Rgds

Eng Swee


Viewing all articles
Browse latest Browse all 3125

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>