Sample IDOC shell program
Note: ABAP/4 is the proprietary programming language of SAP™
REPORT ZWMMBXY1.
*
************************************************************************
*** This is an IDOC shell program to create WMMBID01 IDocs for ***
*** the Goods Movement interface between an external warehouse ***
*** management system and SAP R/3's Inventory Management module. ***
************************************************************************
TABLES :
E2MBXYH, " WMMBID01 IDoc type's header segment
E2MBXYI. " WMMBID01 IDoc type's detail segment
* idoc control record
DATA: BEGIN OF IDOC_CONTROL.
INCLUDE STRUCTURE EDI_DC.
DATA: END OF IDOC_CONTROL.
* idoc data record
DATA: BEGIN OF INT_EDIDD.
INCLUDE STRUCTURE EDI_DD.
DATA: END OF INT_EDIDD.
*
PARAMETERS:
* SAP IM Inbound Test file of IDocs
OUTFILE(40) TYPE C LOWER CASE " output filename
DEFAULT '/home/rajcast/invadj50.tst'.
*
START-OF-SELECTION.
*
***** Open the output file
*
OPEN DATASET OUTFILE FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC NE 0.
WRITE: / 'Error opening outfile!', SY-SUBRC.
EXIT.
ENDIF.
*******
CLEAR: IDOC_CONTROL, INT_EDIDD.
************************************************************************
* SET CONTROL VARIABLES AND WRITE CONTROL RECORD
************************************************************************
*
IDOC_CONTROL-TABNAM = 'EDI_DC'. "Table name
IDOC_CONTROL-MANDT = SY-MANDT. "Client
IDOC_CONTROL-DOCREL = SY-SAPRL. "SAP release
* IDOC_CONTROL-DOCNUM = "edi docnumber
IDOC_CONTROL-DOCTYP = 'WMMBID01'. "IDOC type
IDOC_CONTROL-DIRECT = '2'. "Direction
IDOC_CONTROL-RCVPOR = 'SAPBK1'. "Receiver Port
IDOC_CONTROL-RCVPRT = 'LS'. "Receiver Partner Type
IDOC_CONTROL-RCVPRN = 'BK1CLNT010'. "Receiver Partner
IDOC_CONTROL-SNDPOR = 'SAPBK1'. " Sender port
IDOC_CONTROL-SNDPRT = 'LS'. "Partner Type for sender
IDOC_CONTROL-SNDPRN = 'GOODSMVT01'. "Sender Partner
IDOC_CONTROL-SNDPFC = SPACE. "Sender Partner, function
IDOC_CONTROL-MESTYP = 'WMMBXY'. "Message type
IDOC_CONTROL-IDOCTYP = 'WMMBID01'. "IDOC type
* IDOC_CONTROL-CIMTYP = "Extension type
* IDOC_CONTROL-SERIAL = "Serial number for serlzn
*
TRANSFER IDOC_CONTROL TO OUTFILE. "write control record
IF SY-SUBRC NE 0.
WRITE: / 'ERROR EDIDC 1'.
ENDIF.
************************************************************************
************************************************************************
CLEAR INT_EDIDD.
INT_EDIDD-TABNAM = 'EDI_DD'.
INT_EDIDD-SEGNAM = 'E2MBXYH'.
* INT_EDIDD-SEGNUM =
* INT_EDIDD-PSGNUM =
* INT_EDIDD-HLEVEL =
*
CLEAR: E2MBXYH.
*
E2MBXYH-BLDAT = '19980825'. " 8 Document date in document
E2MBXYH-BUDAT = '19980825'. " 8 Posting data in document
E2MBXYH-XBLNR = 'testgood'. " 16 Reference document number
E2MBXYH-BKTXT = 'testgdsrecp'. " 25 Document header text
*E2MBXYH-FRBNR CHAR C 16 Number of bill of lading
*E2MBXYH-XABLN CHAR C 10 Goods receipt/issue slip
E2MBXYH-TCODE = 'MB1C'. " CHAR C 4 Session: Current transaction
*
INT_EDIDD-SDATA = E2MBXYH.
*
TRANSFER INT_EDIDD TO OUTFILE.
IF SY-SUBRC NE 0.
WRITE: / 'Error writing EDIDD 1'.
ENDIF.
*
CLEAR INT_EDIDD.
INT_EDIDD-TABNAM = 'EDI_DD'.
INT_EDIDD-SEGNAM = 'E2MBXYI'.
* INT_EDIDD-SEGNUM =
* INT_EDIDD-PSGNUM =
* INT_EDIDD-HLEVEL =
*
CLEAR E2MBXYI.
*
*2MBXYI-BEAKZ CHAR C 1 Indicator: line already e
*2MBXYI-XSTOB CHAR C 1 Flag: Reverse posting
E2MBXYI-MATNR = '000000TESTMATERIAL'. "rial number
E2MBXYI-WERKS = 'PLNT'. " CHAR C 4 Plant
E2MBXYI-LGORT = '0001'. " Storage Location
E2MBXYI-CHARG = 'TESTBTCH'. " Batch number
E2MBXYI-BWART = '561'. " 3 Movement type (inventory
*2MBXYI-INSMK = 'S'. " CHAR C 1 stock type
*2MBXYI-SOBKZ CHAR C 1 Special stock indicator
*2MBXYI-KZVBR CHAR C 1 Indicator: consumption po
*2MBXYI-LIFNR CHAR C 10 Vendor (creditor) account
*2MBXYI-KUNNR CHAR C 10 Customer number
*2MBXYI-KDAUF CHAR C 10 Sales order number
*2MBXYI-KDPOS CHAR C 6 Item number in customer o
*2MBXYI-KDEIN CHAR C 4 Scheduling of customer or
*2MBXYI-SHKZG CHAR C 1 Debit/credit indicator
*2MBXYI-WAERS CHAR C 5 Currency key
*2MBXYI-DMBTR CHAR C 15 Amount in local currency
*2MBXYI-BWTAR CHAR C 10 Valuation type
E2MBXYI-ERFMG = '555.000'. " Quantity in unit of entry
E2MBXYI-ERFME = 'CS'. " CHAR C 3 Unit of entry in char.for
*2MBXYI-BPMNG CHAR C 15 Quantity in order price q
*2MBXYI-BPRME CHAR C 3 Order price quantity unit
*2MBXYI-EBELN = " 10 Purchasing docum
*2MBXYI-EBELP = " 5 Item number of purchasing
*2MBXYI-ELIKZ = 'X'. " CHAR C 1 "Delivery completed" indi
*2MBXYI-SGTXT CHAR C 50 Line item text
*2MBXYI-WEMPF CHAR C 12 Goods recipient
*2MBXYI-ABLAD CHAR C 25 Unloading point
*2MBXYI-KOSTL CHAR C 10 Cost center
*2MBXYI-AUFNR = " 12 Order Number
*2MBXYI-ANLN1 CHAR C 12 Asset main number
*2MBXYI-ANLN2 CHAR C 4 Asset sub-number
*2MBXYI-RSNUM CHAR C 10 Number of reservation / d
*2MBXYI-RSPOS CHAR C 4 Item number of reservatio
*2MBXYI-KZEAR CHAR C 1 Indicator: final issue fo
*2MBXYI-UMMAT CHAR C 18 Receiving/issuing materia
*2MBXYI-UMWRK = " CHAR C 4 Receiving Plant/Issuing P
*2MBXYI-UMLGO = ' '. " C 4 Receiving/Issuing Storage
*2MBXYI-UMCHA CHAR C 10 Receiving/Issuing Batch
*2MBXYI-KZBEW = " CHAR C 1 Movement Indicator
*2MBXYI-WEUNB CHAR C 1 Indicator: goods receipt
*2MBXYI-LGNUM CHAR C 3 Warehouse number/complex
*2MBXYI-LGTYP CHAR C 3 Storage type
*2MBXYI-LGPLA CHAR C 10 Storage bin
*2MBXYI-GRUND = " 4 Indicator:Reason for Good
*2MBXYI-EVERS CHAR C 2 Shipping instructions
*2MBXYI-EVERE CHAR C 2 Compliance with shipping
*2MBXYI-IMKEY CHAR C 8 Internal key for real est
*2MBXYI-KSTRG CHAR C 12 Cost object
*2MBXYI-PAOBJNR CHAR C 10 Number for business segme
*2MBXYI-PRCTR CHAR C 10 Profit center
*2MBXYI-PS_PSP_PNR CHAR C 8 Project structure plan el
*2MBXYI-NPLNR CHAR C 12 Network number for accoun
*2MBXYI-AUFPL CHAR C 10 Planning number for trans
*2MBXYI-APLZL CHAR C 8 Counter for distinguishin
*2MBXYI-AUFPS CHAR C 4 Number of order item in C
*2MBXYI-VPTNR CHAR C 10 Partner account number
*2MBXYI-FIPOS CHAR C 14 Commitment item
*2MBXYI-GSBER CHAR C 4 Business area
*2MBXYI-BSTMG CHAR C 15 Goods receipt quantity in
*2MBXYI-BSTME CHAR C 3 Order unit
*2MBXYI-EXBWR CHAR C 15 Posting amount in local c
*2MBXYI-KONTO CHAR C 10 G/L account number
*2MBXYI-RSHKZ CHAR C 1 Debit/credit indicator
*2MBXYI-BDMNG CHAR C 15 Requirement quantity in C
*2MBXYI-ENMNG CHAR C 15 Issued quantity in char.f
*2MBXYI-QPLOS CHAR C 12 Inspection lot number in
*2MBXYI-UMZST CHAR C 1 Status of receiving batch
*2MBXYI-UMZUS CHAR C 1 Status key of transfer ba
*2MBXYI-UMBAR CHAR C 10 Valuation type of transfe
**MBXYI-UMSOK CHAR C 1 Special stock indicator f
*2MBXYI-LFBJA CHAR C 4 Fiscal year of a referenc
*2MBXYI-LFBNR CHAR C 10 Document number of a refe
*2MBXYI-LFPOS CHAR C 4 Item in a reference docum
*2MBXYI-SJAHR CHAR C 4 Material document year in
*2MBXYI-SMBLN CHAR C 10 Number of a material docu
*2MBXYI-SMBLP CHAR C 4 Item in material document
*2MBXYI-EXVKW CHAR C 15 Sales value specified ext
*2MBXYI-QM_ZUSTD CHAR C 1 Batch status with status
*2MBXYI-POSNR CHAR C 6 Delivery item for subsyst
*2MBXYI-VBELN CHAR C 10 Delivery
*2MBXYI-QM_UMZST CHAR C 1 Status of receiv. batch w
*2MBXYI-BWLVS CHAR C 3 Movement type for Whse Mg
*2MBXYI-UMREZ = ' '. " CHAR C 5 NUMERATOR FOR CONVERTING
*2MBXYI-UMREN = ' '. " CHAR C 5 DENOMINATOR FOR CONVERSIO
*2MBXYI-VFDAT = ' '. " 8 EXPIRATION DATE OR BEST-B
*2MBXYI-DABRZ DATS D 8 Reference date for accoun
*
******************************** write EDIDD record ********************
INT_EDIDD-SDATA = E2MBXYI.
TRANSFER INT_EDIDD TO OUTFILE.
IF SY-SUBRC NE 0.
WRITE: / 'ERROR EDIDD 2'.
ENDIF.
May 30, 2010
В·
admin В·
No Comments
Tags: idoc shell program В· Posted in: ABAP Tutorials

Leave a Reply