09-09-2008 6:03 PM
We are working in sap module - plant maintenence.We need to create ZM01 or ZM08 order in SAP by reading data from an excel file. I know that BDC can be written to do it. Is anybody already had done it for their requirements and could provide me the bdc code. It will be very helpful.
09-09-2008 6:10 PM
01-05-2009 12:56 PM
DATA : BEGIN OF T_BDCMSG OCCURS 0,
T_TCODE LIKE BDCMSGCOLL-TCODE,
T_DYNAME LIKE BDCMSGCOLL-DYNAME,
T_DYNUMB LIKE BDCMSGCOLL-DYNUMB,
T_MSGTYP LIKE BDCMSGCOLL-MSGTYP,
T_MSGSPRA LIKE BDCMSGCOLL-MSGSPRA,
T_MSGID LIKE BDCMSGCOLL-MSGID,
T_MSGNR LIKE BDCMSGCOLL-MSGNR,
T_MSGV1 LIKE BDCMSGCOLL-MSGV1,
T_MSGV2 LIKE BDCMSGCOLL-MSGV2,
T_MSGV3 LIKE BDCMSGCOLL-MSGV3,
T_MSGV4 LIKE BDCMSGCOLL-MSGV4,
T_ENV LIKE BDCMSGCOLL-ENV,
T_FLDNAME LIKE BDCMSGCOLL-FLDNAME.
DATA : END OF T_BDCMSG.
***************************************************
Variables Declarations
***************************************************
DATA: V_MODE TYPE CTU_PARAMS-DISMODE VALUE 'N',
V_MESSAGE(100) TYPE C.
PERFORM BDC_DYNPRO USING 'SAPLIQS0' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RIWO00-QMNUM'
V_QMNUM.
PERFORM BDC_DYNPRO USING 'SAPLIQS0' '7200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=COER'.
PERFORM BDC_DYNPRO USING 'SAPLIQS0' '8030'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RIWO00-AUART'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WEIT'.
PERFORM BDC_FIELD USING 'RIWO00-AUART'
V_ORDTYP.
record-AUART_018.
PERFORM bdc_dynpro USING 'SAPLIQS0' '8030'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=WEIT'.
**End Comment
PERFORM BDC_DYNPRO USING 'SAPLCOIH' '3000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'IW22'
USING BDCDATA
MODE V_MODE
UPDATE 'S'
MESSAGES INTO T_BDCMSG.
******Moving formatted message to output message table
LOOP AT T_BDCMSG WHERE T_MSGTYP = 'E'.
IF T_BDCMSG-T_MSGNR = '298' OR T_BDCMSG-T_MSGNR = '055'.
MESSAGE = 'short description missing'.
ELSE.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = T_BDCMSG-T_MSGID
LANG = 'EN'
NO = T_BDCMSG-T_MSGNR
V1 = T_BDCMSG-T_MSGV1
V2 = T_BDCMSG-T_MSGV2
V3 = T_BDCMSG-T_MSGV3
V4 = T_BDCMSG-T_MSGV4
IMPORTING
MSG = V_MESSAGE
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF SY-TABIX EQ 1.
MESSAGE = V_MESSAGE.
ELSE.
CONCATENATE MESSAGE ',' V_MESSAGE INTO MESSAGE.
ENDIF.
ENDIF.
ENDLOOP.
----
Start new screen *
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
**----
Insert field *
**----
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. "BDC_FIELD