Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BDC Regarding - very urgent

Former Member
0 Kudos

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

1 REPLY 1

Former Member
0 Kudos

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.