07-12-2006 5:37 AM
Hi all,
I am facing a problem that i have to transfer the data of Sales order using bdc which has already created using Mainframes.
Please give me the steps how to do it & modification of Sales order process.
Need acknowledgment process also.
Its very urgent.
Thanks in advance
Venkat
07-12-2006 5:51 AM
TABLES: CTU_PARAMS.
DATA: L_ITM_MENGE LIKE V46R_ITEM-MENGE,
L_CHARGE LIKE EQUI-CHARGE,
L_V46RMATNR(24) TYPE C,
L_V46RMENGE(22) TYPE C,
L_V46RVAL(32) TYPE C,
L_V46CHARG(32) TYPE C,
L_V46LGORT(32) TYPE C,
L_PSTYV LIKE VBAP-PSTYV,
C_E TYPE C VALUE 'E', "Engine orders
W_BATCH LIKE MARA-XCHPF,
C_X TYPE C VALUE 'X',
ZINCUP LIKE TVAK-INCUP,
W_TEXT(30),
L_REC(2) TYPE C,
W_ITM_CAT LIKE ZMROPCC_CON-ZTVARV_VAL,
L_LINE TYPE I,
L_DATE(10).
CONSTANTS:C_ITM_CAT LIKE ZMROPCC_CON-ZRVARI_VNAM VALUE 'EX_STOCK_E'.
DATA: BEGIN OF T_VBAP OCCURS 0,
VBELN TYPE VBAP-VBELN,
PSTYV TYPE VBAP-PSTYV,
POSNR TYPE VBAP-POSNR,
END OF T_VBAP.
DATA: BEGIN OF T_QMEL OCCURS 0.
INCLUDE STRUCTURE VIQMEL.
DATA: END OF T_QMEL.
DATA: W_MATNR_BAT LIKE BAPIBATCHKEY-MATERIAL, "VJ0805
W_WERKS_BAT LIKE BAPIBATCHKEY-PLANT,
W_CHARG_BAT LIKE BAPIBATCHKEY-BATCH,
W_LGORT_BAT LIKE BAPIBATCHSTOLOC-STGE_LOC,
W_NEW_BATCH_BAT LIKE BAPIBATCHKEY-BATCH.
Report the progress to the user
W_TEXT = TEXT-115.
PERFORM REPORT_PROGRESS USING W_TEXT.
Get line items detail
SELECT VBELN PSTYV POSNR FROM VBAP INTO TABLE T_VBAP
WHERE VBELN = S_ORDER.
DESCRIBE TABLE T_VBAP LINES L_LINE.
Get Batch details
L_CHARGE = BATCH.
Enter VA02 information
CLEAR T_BDCTAB[].
PERFORM BDC_DYNPRO USING 'SAPMV45A' '0102'.
PERFORM BDC_FIELD USING 'VBAK-VBELN'
S_ORDER.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
Get into the Repair Screen
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=PREP'.
Press the switch button to show both lines on screen.
PERFORM BDC_DYNPRO USING 'SAPLV46R' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=RALL'.
Press the Plus button to add line items
PERFORM BDC_DYNPRO USING 'SAPLV46R' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=RINS'.
Set line counter
L_REC = 2.
L_REC = L_LINE - 1.
L_REC = L_REC + 1.
SHIFT L_REC RIGHT DELETING TRAILING ' '.
OVERLAY L_REC WITH '00'.
CLEAR L_V46RMATNR .
CONCATENATE 'V46R_ITEM-MATNR_G(' L_REC ')' INTO L_V46RMATNR.
CLEAR L_V46RMENGE .
CONCATENATE 'V46R_ITEM-MENGE(' L_REC ')' INTO L_V46RMENGE.
CLEAR L_V46RVAL.
CONCATENATE 'V46R_ITEM-VORGA_VAL_106(' L_REC ')'
INTO L_V46RVAL.
Update the values at the Repairs tab
PERFORM BDC_DYNPRO USING 'SAPLV46R' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
Pass the quantity
L_ITM_MENGE = T_QUAN.
PERFORM BDC_FIELD USING L_V46RMENGE
L_ITM_MENGE.
Update material number
PERFORM BDC_FIELD USING L_V46RMATNR
MATNR.
Update exchange flag
PERFORM BDC_FIELD USING L_V46RVAL
C_X.
Press the back button
PERFORM BDC_DYNPRO USING 'SAPLV46R' '4001'. "+KP0715 test
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=S\BACK'.
Show all sub line items on the sales order
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=UALL'.
Reset line counter
DESCRIBE TABLE T_VBAP LINES L_REC.
start of get vbap-posnr for update below "+KP071504
CLEAR: T_VBAP, ZINCUP.
SORT T_VBAP BY POSNR ASCENDING.
READ TABLE T_VBAP INDEX L_REC.
IF SY-SUBRC IS INITIAL.
SELECT SINGLE INCUP FROM TVAK INTO ZINCUP
WHERE AUART = ( SELECT AUART FROM VBAK
WHERE VBELN = S_ORDER ).
ENDIF.
Get the popup screen to position new posnr
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=POPO'.
Fill new POSNR
T_VBAP-POSNR = T_VBAP-POSNR + ZINCUP.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '0251'.
PERFORM BDC_FIELD USING 'RV45A-POSNR' T_VBAP-POSNR.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=POSI'.
SELECT SINGLE ZTVARV_VAL
FROM ZMROPCC_CON
INTO W_ITM_CAT
WHERE ZRVARI_VNAM = C_ITM_CAT.
L_PSTYV = W_ITM_CAT.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'VBAP-PSTYV(01)' L_PSTYV.
Double click on the new posnr to go to the detailed screen
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ITEM'.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
Update the Batch
PERFORM BDC_FIELD USING 'VBAP-CHARG'
L_CHARGE.
IF NOT SERNR IS INITIAL.
Press Extra-> technical Objects
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=POTO'.
Populate Serial Number
PERFORM BDC_DYNPRO USING 'SAPLIPW1' '0200'.
PERFORM BDC_FIELD USING 'RIPW0-SELKZ(1)'
C_X.
PERFORM BDC_FIELD USING 'RIPW0-SERNR(1)'
SERNR.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=RWS'.
ENDIF.
Press the save button
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SICH'.
CLEAR CTU_PARAMS.
CTU_PARAMS-DISMODE = 'E'.
CTU_PARAMS-UPDMODE = 'S'.
CTU_PARAMS-DEFSIZE = 'X'.
*
Call the transaction
CALL TRANSACTION 'VA02' USING T_BDCTAB OPTIONS FROM CTU_PARAMS
MESSAGES INTO T_BDCMSGCOLL.
Error processing
READ TABLE T_BDCMSGCOLL WITH KEY MSGTYP = C_E.
IF SY-SUBRC = 0.
MESSAGE ID T_BDCMSGCOLL-MSGID TYPE C_E
NUMBER T_BDCMSGCOLL-MSGNR.
ENDIF.
Hope this helps u.
Regards.
Seema.