‎2007 Aug 06 8:02 AM
HI,
I want to know tht whether is there a function module zpp_idoc_process_test in transaction code we42. or else can anyone update the scenario of LSMW using IDOC.
‎2007 Aug 06 8:10 AM
‎2011 Aug 17 12:00 AM
Source:
http://www.saptechnical.com/Tutorials/LSMW/IDocMethod/IDocMethod2.htm
and IDocMethod1.htm, IDocMethod3.htm ,IDocMethod4.htm
Try This:
Create Table: ZEMP_SEG_TBL same structure with ZEMP_SEG:
PSNO
NAME
DEPARTMENT
CITY
COUNTRY
SM37: Create Function Module ZPP_IDOC_PROCESS_TEST
-> Dont forget input Importing, Exporting, Tables and Exception for this Function Module
****************************************************************************************************
FUNCTION ZPP_IDOC_PROCESS_TEST.
*"----
""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
*"----
INCLUDE MBDCONWF.
***Data
DATA : W_ZEMP_SEG LIKE ZEMP_SEG.
DATA : T_ZEMP_SEG_TBL LIKE ZEMP_SEG_TBL OCCURS 0 WITH HEADER LINE.
***********************************************************************
WORKFLOW_RESULT = C_WF_RESULT_OK.
LOOP AT IDOC_CONTRL.
IF IDOC_CONTRL-MESTYP NE 'ZEMP_MSG'.
RAISE WRONG_FUNCTION_CALLED.
ENDIF.
Before reading a new entry, clear application buffer
LOOP AT IDOC_DATA WHERE DOCNUM EQ IDOC_CONTRL-DOCNUM.
CASE IDOC_DATA-SEGNAM.
WHEN 'ZEMP_SEG'.
W_ZEMP_SEG = IDOC_DATA-SDATA.
MOVE-CORRESPONDING W_ZEMP_SEG TO T_ZEMP_SEG_TBL.
INSERT INTO ZEMP_SEG_TBL VALUES T_ZEMP_SEG_TBL.
ENDCASE.
ENDLOOP.
IF SY-SUBRC EQ 0.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '53'.
IDOC_STATUS-MSGTY = 'I'.
IDOC_STATUS-MSGID = 'YM'.
IDOC_STATUS-MSGNO = '004'.
IDOC_STATUS-MSGV1 = T_ZEMP_SEG_TBL-PSNO.
IDOC_STATUS-MSGV2 = 'BALI'.
IDOC_STATUS-MSGV3 = 'IS'.
IDOC_STATUS-MSGV4 = 'THE BEST'.
APPEND IDOC_STATUS.
CLEAR IDOC_STATUS.
ELSE.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '51'.
IDOC_STATUS-MSGTY = 'E'.
IDOC_STATUS-MSGID = 'YM'.
IDOC_STATUS-MSGNO = '005'.
IDOC_STATUS-MSGV1 = T_ZEMP_SEG_TBL-PSNO.
APPEND IDOC_STATUS.
CLEAR IDOC_STATUS.
WORKFLOW_RESULT = C_WF_RESULT_ERROR.
RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
CLEAR RETURN_VARIABLES.
ENDIF.
ENDLOOP.
ENDFUNCTION.
****************************************************************************************************
DON'T FORGET Run This TCODE:
BD51 :
-Func Mod: ZPP_IDOC_PROCESS_TEST, Input Type: 2 (Inbound)
WE57 :
-Func Mod: ZPP_IDOC_PROCESS_TEST
-Func Type: F
-Basic Type : ZEMP_IDC
-Message Type : ZEMP_MSG
-Direction : 2 Inbound
Then Run Again the process in this link:
http://www.saptechnical.com/Tutorials/LSMW/IDocMethod/IDocMethod3.htm
Table: ZEMP_SEG_TBL willbe filled with data from your Text File loaded using LSMW.