2008 Mar 25 1:43 PM
Hi Experts,
i need idoc spec can any one send me iimmediatly its urgent...
Thanks in advance...
Rajesh
Hi Experts,
i need idoc spec can any one send me iimmediatly its urgent...
Thanks in advance...
Rajesh
2008 Mar 25 1:52 PM
2008 Mar 25 5:51 PM
Hi swaroop,
i need function spec for create idoc as per customer requirement anyone...because i am a new in idoc i know only create and idoc till now i dodnt get chance to work in that area...
2008 Mar 28 6:27 AM
Hello Rajesh
i have develop one Scenario of IDOC i.e-
-IDOC to file scenario- end to end implementation from IDOC creation to flat file generation
Create segment with the help of TCODE WE31 first we have create one Ztable ZPHHR with the help of tcode se11 put all field of that table into segment Z1EART01 save and release it (go to edit and set release )
Table entry
MANDT MANDT CLNT 3 0 Client
EBELN EBELN CHAR 10 0 Purchasing Document Number
EBELP EBELP NUMC 5 0 Item Number of Purchasing Document
ZSUB_ITEM ZSUB_ITEM CHAR 10 0 Data element for subitem for pharma
LICHA LICHN CHAR 15 0 Vendor Batch Number
ZSPLT_QTY MENGE_D QUAN 13 3 Quantity
MEINS BSTME UNIT 3 0 Order unit
MATNR MATNR CHAR 18 0 Article Number
ZEAN11 ZEAN11 CHAR 18 0 DATA ELEMENT FOR VENDOR BARCODE
WERKS WERKS_D CHAR 4 0 Site
TXZ01 TXZ01 CHAR 40 0 Short text
CHARG CHARG_D CHAR 10 0 Batch Number
HSDAT HSDAT DATS 8 0 Date of Manufacture
VFDAT VFDAT DATS 8 0 Shelf Life Expiration Date
MBLNR MBLNR CHAR 10 0 Number of Article Document
ZST0BI ZST0BI NUMC 1 0 DATA ELEMENT FOR PHARMA STOCK INDICATOR
PROFL ZADGE_PROFL CHAR 1 0 Pharma Indicator
ENDPR ENDPR CURR 11 2 Final price
MFRPN MFRPN CHAR 40 0 Manufacturer part number
BUDAT BUDAT DATS 8 0 Posting Date in the Document
BWART BWART CHAR 3 0 Movement Type (Inventory Management)
ZASTK ZAST CURR 11 2 AVAILABLE STOCK
ZBANO ZBANO NUMC 40 0 BILL NUMBER
Create IDOC Type WE30 create IDOC type ZPHR01 and hare you can put segment Z1ERT01 save it release it
Create EDI logical message type message Type WE81 create message type ZPHARMA
Output type assigning to IDOC type- tcode WE82 hare you can link message type to IDOC type
Create partner profile Tcode WE20
program for outbound -
Program for IDOC generation
&----
*& Report ZIDOC_GENERATION_VISHAL
*&
&----
*&
*&
&----
REPORT ZIDOC_GENERATION_VISHAL.
made by Amit SHivhare
TABLES : T001W,
T001L,
ZZPHR,
EDP13.
DATA : IT_COM_CON LIKE EDIDC OCCURS 0 WITH HEADER LINE,
WA_COM_CON LIKE EDIDC OCCURS 0 WITH HEADER LINE,
WA_COM LIKE EDIDC ,
IT_IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADER LINE,
WA_IDOC_DATA LIKE EDIDD ,
WA_IDOC_CONTROL LIKE EDIDC,
STATUS_OK LIKE EDI_DS VALUE '03',
IT_EDP13 LIKE EDP13 OCCURS 0 WITH HEADER LINE,
WA_EDP13 LIKE EDP13,
IT_ART LIKE ZZPHR OCCURS 0 WITH HEADER LINE,
WA_ART LIKE ZZPHR.
DATA : COUNT LIKE WA_IDOC_DATA-SEGNUM VALUE '000001'.
DATA : COUNT_SEG LIKE WA_IDOC_DATA-SEGNUM VALUE '000001'.
DATA : TEXT(255).
*----
*Internal tables taken bcoz in Partner profile Vishal had concatnated
'C' for Sites. We have purged out C writen in the partner profile
*----
DATA : BEGIN OF IT_EDP13 OCCURS 0,
RCVPRN LIKE EDP13-RCVPRN,
RCVPRN1(4) TYPE C,
MESTYP LIKE EDP13-MESTYP,
RCVPOR LIKE EDP13-RCVPOR,
END OF IT_EDP13.
DATA : BEGIN OF M_EDP13 OCCURS 0,
RCVPRN LIKE EDP13-RCVPRN,
RCVPRN1(4) TYPE C,
MESTYP LIKE EDP13-MESTYP,
RCVPOR LIKE EDP13-RCVPOR,
END OF M_EDP13.
DATA : WA_EDP13 LIKE IT_EDP13,
WA_M_EDP13 LIKE M_EDP13.
DEFINE STATUS.
TEXT = &1.
CALL FUNCTION 'PROGRESS_INDICATOR'
EXPORTING
I_TEXT = TEXT
.
END-OF-DEFINITION.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS : WERKS FOR T001L-WERKS OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK B1 .
SELECTION-SCREEN : BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
SELECTION-SCREEN : BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-102.
SELECT-OPTIONS : S_MATNR FOR ZZPHR-MATNR ,
S_ARTDOC FOR ZZPHR-MBLNR.
SELECTION-SCREEN : END OF BLOCK B3 .
SELECTION-SCREEN : END OF BLOCK B2 .
START-OF-SELECTION.
PERFORM CHECK_SITE_OK.
STATUS 'CHECK_SITE_OK' .
PERFORM FILL_DATA_ITAB.
STATUS 'FILL_DATA_TO_ITAB' .
IF IT_ART[] IS NOT INITIAL.
PERFORM WRITE_IDOC.
STATUS 'GENERATE IDOC'.
PERFORM CALL_WE02.
ELSE.
MESSAGE I000(USERINFO) WITH 'NO DATA SELECTED PLEASE PUT THE VALID INPUT '.
ENDIF.
FORM CHECK_SITE_OK.
SELECT RCVPRN MESTYP RCVPOR FROM EDP13 INTO CORRESPONDING FIELDS OF TABLE IT_EDP13 WHERE MESTYP = 'ZPHARMA' AND RCVPRT EQ 'KU'.
LOOP AT IT_EDP13 INTO WA_EDP13.
CLEAR WA_M_EDP13.
WA_M_EDP13-RCVPRN = WA_EDP13-RCVPRN.
WA_M_EDP13-RCVPRN1 = WA_EDP13-RCVPRN+1(4).
WA_M_EDP13-MESTYP = WA_EDP13-MESTYP.
WA_M_EDP13-RCVPOR = WA_EDP13-RCVPOR.
APPEND WA_M_EDP13 TO M_EDP13.
CLEAR WA_M_EDP13.
ENDLOOP.
REFRESH IT_EDP13.
LOOP AT M_EDP13 WHERE MESTYP = 'ZPHARMA' AND RCVPRN1 IN WERKS.
IT_EDP13-RCVPRN = M_EDP13-RCVPRN.
IT_EDP13-RCVPRN1 = M_EDP13-RCVPRN1.
IT_EDP13-MESTYP = M_EDP13-MESTYP.
IT_EDP13-RCVPOR = M_EDP13-RCVPOR.
APPEND IT_EDP13.
ENDLOOP.
LOOP AT IT_EDP13.
ENDLOOP.
***
***LOOP AT M_EDP13 INTO IT_EDP13 WHERE MESTYP = 'ZPHARMA' AND RCVPRN IN WERKS.
append IT_EDP13.
***ENDLOOP.
*SELECT * FROM M_EDP13 INTO CORRESPONDING FIELDS OF TABLE IT_EDP13 WHERE MESTYP = 'ZPHARMA'
AND RCVPRN IN WERKS.
ENDFORM.
FORM FILL_DATA_ITAB.
SELECT MANDT EBELN EBELP ZSUB_ITEM LICHA ZSPLT_QTY MEINS MATNR ZEAN11 WERKS
TXZ01 CHARG HSDAT VFDAT MBLNR ZST0BI PROFL ENDPR MFRPN BUDAT BWART ZASTK ZBANO
FROM ZZPHR INTO CORRESPONDING FIELDS OF TABLE IT_ART WHERE WERKS IN WERKS AND
MATNR IN S_MATNR AND
MBLNR IN S_ARTDOC.
SORT IT_ART BY MATNR.
*DELETE ADJACENT DUPLICATES FROM IT_ART.
ENDFORM.
FORM WRITE_IDOC.
LOOP AT IT_EDP13 INTO WA_EDP13.
REFRESH : IT_COM_CON,
IT_IDOC_DATA.
CLEAR : WA_IDOC_CONTROL,
WA_COM_CON,
WA_IDOC_DATA.
COUNT = '000001'.
COUNT_SEG = '000001'.
WA_IDOC_CONTROL-STATUS = '53'.
WA_IDOC_CONTROL-DOCTYP = 'ZPHAR01'.
WA_IDOC_CONTROL-MESTYP = 'ZPHARMA'.
WA_IDOC_CONTROL-RCVPOR = WA_EDP13-RCVPOR. "'EP1-001'.
WA_IDOC_CONTROL-RCVPRT = 'KU'.
WA_IDOC_CONTROL-RCVPRN = WA_EDP13-RCVPRN."'M001'.
WA_COM_CON-DIRECT = 1.
WA_COM_CON-OUTMOD = 2.
WA_COM_CON-DOCTYP = 'ZPHAR01'.
WA_COM_CON-MESTYP = 'ZPHARMA'.
WA_COM_CON-RCVPOR = WA_EDP13-RCVPOR. "'EP1-001'.
WA_COM_CON-RCVPRT = 'KU'.
WA_COM_CON-RCVPRN = WA_EDP13-RCVPRN. "'M001'.
WA_COM_CON-CREDAT = SY-DATUM.
APPEND WA_COM_CON TO IT_COM_CON.
CLEAR WA_COM_CON.
LOOP AT IT_ART INTO WA_ART WHERE WERKS = WA_EDP13-RCVPRN1. "'3025'.
STATUS WA_ART-MATNR.
WA_IDOC_DATA-SEGNUM = COUNT.
WA_IDOC_DATA-SEGNAM = 'Z1EART01'.
WA_IDOC_DATA-PSGNUM = '000000'.
WA_IDOC_DATA-HLEVEL = '02'.
WA_IDOC_DATA-DTINT2 = '1000'.
WA_IDOC_DATA-SDATA+0(3) = WA_ART-MANDT.
WA_IDOC_DATA-SDATA+3(10) = WA_ART-EBELN.
WA_IDOC_DATA-SDATA+13(5) = WA_ART-EBELP.
WA_IDOC_DATA-SDATA+18(10) = WA_ART-ZSUB_ITEM.
WA_IDOC_DATA-SDATA+28(15) = WA_ART-LICHA.
WA_IDOC_DATA-SDATA+43(13) = WA_ART-ZSPLT_QTY.
WA_IDOC_DATA-SDATA+58(3) = WA_ART-MEINS.
WA_IDOC_DATA-SDATA+61(18) = WA_ART-MATNR.
WA_IDOC_DATA-SDATA+79(18) = WA_ART-ZEAN11.
WA_IDOC_DATA-SDATA+97(4) = WA_ART-WERKS.
WA_IDOC_DATA-SDATA+101(40) = WA_ART-TXZ01.
WA_IDOC_DATA-SDATA+141(10) = WA_ART-CHARG.
WA_IDOC_DATA-SDATA+151(8) = WA_ART-HSDAT.
WA_IDOC_DATA-SDATA+159(8) = WA_ART-VFDAT.
WA_IDOC_DATA-SDATA+167(10) = WA_ART-MBLNR.
WA_IDOC_DATA-SDATA+177(1) = WA_ART-ZST0BI.
WA_IDOC_DATA-SDATA+178(1) = WA_ART-PROFL.
WA_IDOC_DATA-SDATA+179(11) = WA_ART-ENDPR.
WA_IDOC_DATA-SDATA+192(40) = WA_ART-MFRPN.
WA_IDOC_DATA-SDATA+232(8) = WA_ART-BUDAT.
WA_IDOC_DATA-SDATA+240(3) = WA_ART-BWART.
WA_IDOC_DATA-SDATA+243(11) = WA_ART-ZASTK.
WA_IDOC_DATA-SDATA+256(40) = WA_ART-ZBANO.
APPEND WA_IDOC_DATA TO IT_IDOC_DATA.
CLEAR WA_IDOC_DATA.
COUNT_SEG = COUNT.
COUNT = COUNT + 1.
ENDLOOP.
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
EXPORTING
MASTER_IDOC_CONTROL = WA_IDOC_CONTROL
OBJ_TYPE = ''
CHNUM = ''
TABLES
COMMUNICATION_IDOC_CONTROL = IT_COM_CON
MASTER_IDOC_DATA = IT_IDOC_DATA
EXCEPTIONS
ERROR_IN_IDOC_CONTROL = 1
ERROR_WRITING_IDOC_STATUS = 2
ERROR_IN_IDOC_DATA = 3
SENDING_LOGICAL_SYSTEM_UNKNOWN = 4
OTHERS = 5
.
IF SY-SUBRC = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
COMMIT WORK.
READ TABLE IT_COM_CON INDEX 2.
DATA : DOCNUM LIKE WA_IDOC_CONTROL-DOCNUM.
DOCNUM = IT_COM_CON-DOCNUM.
*CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
REFRESH : IT_IDOC_DATA.
CALL FUNCTION 'EDI_OUTPUT_NEW'
EXPORTING
ONL_OPTION = 'B'
ERROR_FLAG = ' '
NAST_RECORD =
TABLES
I_EDIDC = IT_COM_CON
I_EDIDD = IT_IDOC_DATA
.
*TABLES : EDIDC.
*SELECT * FROM EDIDC WHERE DOCNUM = DOCNUM.
*EDIDC-TEST = '.'.
*MODIFY EDIDC.
*
*ENDSELECT.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
ENDFORM.
FORM CALL_WE02.
CALL TRANSACTION 'WE02' AND SKIP FIRST SCREEN.
ENDFORM.
Thanks
Amit shivhare
POS:Reward poinrt
for moare information send your email id
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |