01-30-2008 10:50 AM
Hi All,
While doing BDC for VA32 , i encountered the following error.
Flow control: Entry SAPMV45B, EIAN, PO, PKNT, *, * is missing in T185 .
And i could not get past the Account assignment tab.
I searched table T185 and found there is no entry of EIAN, PO, PKNT.
How to handle this error?
Kindly help me in soving this problem.
Thanks and regards.
Suki.
01-30-2008 10:55 AM
Hi Suki,
It occurs when the BDC commands are not given the correct sequence...can u plz giv me ur recorded BDC commands ...will try to trace the sequence...
Regards,.
Kaveri
01-30-2008 11:45 AM
Hi Kaveri,
I am sending the BDC i have done for VA32.
Actually in this BDC i didnt handle the screen SAPMV45B ( for which i am getting error ).
i have highlighted the line after which i am getting error.
----
LOOP AT YFORECASTTEMP.
CLEAR TB_BDCDATA.
REFRESH TB_BDCDATA.
CLEAR : TB_VBEP,
WA_VBAP.
REFRESH TB_VBEP.
SELECT SINGLE *
FROM VBAP
INTO WA_VBAP
WHERE VBELN = YFORECASTTEMP-VBELN
AND MATNR = YFORECASTTEMP-MATNR.
IF SY-SUBRC EQ 0.
SELECT VBELN
POSNR
ETENR
ETART
EDATU
J_2CELNG
J_2CWLFD
FROM VBEP
INTO CORRESPONDING FIELDS OF TABLE TB_VBEP
WHERE VBELN = WA_VBAP-VBELN
AND POSNR = WA_VBAP-POSNR.
ENDIF.
CLEAR VA_QUANT.
LOOP AT TB_VBEP.
VA_QUANT = VA_QUANT + TB_VBEP-J_2CELNG.
CONCATENATE TB_VBEP-J_2CWLFD+4(2)
'/'
TB_VBEP-EDATU+6(2)
'/' TB_VBEP-J_2CWLFD+0(4)
INTO TB_VBEP-DATE.
MODIFY TB_VBEP.
ENDLOOP.
VA_QUANT = VA_QUANT + YFORECASTTEMP-FORECASTVALUE.
IF NOT WA_VBAP IS INITIAL.
SELECT VBELN
POSNR
LABNK
ABRDT
FROM VBLB
INTO TABLE TB_VBLB
WHERE VBELN = WA_VBAP-VBELN
AND POSNR = WA_VBAP-POSNR.
ENDIF.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '0125',
' ' 'BDC_CURSOR' 'RV45S-KUNNR',
' ' 'BDC_OKCODE' '/00',
' ' 'VBAK-VBELN' YFORECASTTEMP-VBELN ,
' ' 'RV45S-BSTNK' YFORECASTTEMP-PRODUCT_ID,
' ' 'RV45S-KUNNR' YFORECASTTEMP-CUST_NO.
SELECT SINGLE * FROM VBAP WHERE VBELN = YFORECASTTEMP-VBELN.
IF SY-SUBRC EQ 0.
CLEAR VBAP.
SELECT SINGLE * FROM VBAP WHERE VBELN = YFORECASTTEMP-VBELN
AND MATNR = YFORECASTTEMP-MATNR.
VA_SUBRC = SY-SUBRC.
IF VA_SUBRC EQ 0.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=POPO'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '0251',
' ' 'BDC_OKCODE' '=POSI',
' ' 'RV45A-PO_MATNR' YFORECASTTEMP-MATNR.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=ITEM',
' ' 'RV45A-VBAP_SELKZ(01)' 'X'.
ELSEIF VA_SUBRC NE 0.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=POAN'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '/00',
' ' 'RV45A-MABNR(02)' YFORECASTTEMP-MATNR,
' ' 'VBAP-ABLFZ(02)' YFORECASTTEMP-FORECASTVALUE,
' ' 'VBAP-KDMAT(02)' YFORECASTTEMP-PRODUCT_ID.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=ITEM',
' ' 'RV45A-VBAP_SELKZ(02)' 'X'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=ITEM',
' ' 'RV45A-VBAP_SELKZ(02)' 'X'.
ENDIF.
ELSE.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=POAN'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '/00',
' ' 'RV45A-MABNR(01)' YFORECASTTEMP-MATNR,
' ' 'VBAP-ABLFZ(01)' YFORECASTTEMP-FORECASTVALUE,
' ' 'VBAP-KDMAT(01)' YFORECASTTEMP-PRODUCT_ID.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=ITEM',
' ' 'RV45A-VBAP_SELKZ(01)' 'X'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=ITEM',
' ' 'RV45A-VBAP_SELKZ(01)' 'X'.
ENDIF.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=T\06'.
' ' 'VBAP-ZMENG' VA_QUANT.
CLEAR WA_VBAP.
SELECT SINGLE *
FROM VBAP
INTO WA_VBAP
WHERE VBELN = YFORECASTTEMP-VBELN
AND MATNR = YFORECASTTEMP-MATNR.
IF SY-SUBRC EQ 0.
READ TABLE TB_VBEP WITH KEY VBELN = YFORECASTTEMP-VBELN
POSNR = WA_VBAP-POSNR.
IF SY-SUBRC EQ 0.
*******************************************************************
CONCATENATE YFORECASTTEMP-REQ_DATE+0(2)
YFORECASTTEMP-REQ_DATE+6(4)
INTO VA_MONDAT SEPARATED BY '/'.
READ TABLE TB_VBEP WITH KEY VBELN = YFORECASTTEMP-VBELN
POSNR = WA_VBAP-POSNR
DATE = VA_MONDAT.
*YFORECASTTEMP-REQ_DATE.
*******************************************************************
IF SY-SUBRC EQ 0.
CLEAR VBEP.
SELECT SINGLE * FROM VBEP WHERE VBELN = YFORECASTTEMP-VBELN
AND POSNR = WA_VBAP-POSNR.
IF SY-SUBRC EQ 0.
IF VBEP-J_2CRBDL NE 'X'.
IF TB_VBEP-J_2CELNG NE YFORECASTTEMP-FORECASTVALUE
AND YFORECASTTEMP-FORECASTVALUE NE '0'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=/CAB/EIPO'.
PERFORM DYNPRO_PROCESS USING :
'X' '/CAB/SAPLVWIN' '1090',
' ' 'BDC_OKCODE' '=UEBE',
' ' 'G_POS-ETENR' TB_VBEP-ETENR.
' ' 'G_POS-W_DATUM' YFORECASTTEMP-REQ_DATE.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=T\01',
' ' '/CAB/RV45A-ELNG_E(01)' YFORECASTTEMP-FORECASTVALUE,
' ' 'VBEP-J_2CVKAT(01)' P_2CVKAT.
ELSEIF YFORECASTTEMP-FORECASTVALUE EQ '0'.
***************************09/19/2007
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=/CAB/EIPO'.
PERFORM DYNPRO_PROCESS USING :
'X' '/CAB/SAPLVWIN' '1090',
' ' 'BDC_OKCODE' '=UEBE',
' ' 'G_POS-ETENR' TB_VBEP-ETENR.
' ' 'G_POS-W_DATUM' YFORECASTTEMP-REQ_DATE.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'RV45A-VBEP_SELKZ(01)' 'X',
' ' 'BDC_OKCODE' '=EILO'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=T\01',
' ' '/CAB/RV45A-ELNG_E(01)' '1',
' ' 'VBEP-J_2CVKAT(01)' P_2CVKAT.
***************************09/19/2007
ENDIF.
ENDIF.
ENDIF.
ELSEIF SY-SUBRC NE 0 AND YFORECASTTEMP-FORECASTVALUE NE '0'.
DATA : VA_VAR(2).
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=EIAN',
' ' 'BDC_CURSOR' '/CAB/RV45A-WLDAT(01)'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=T\01',
' ' 'BDC_CURSOR' '/CAB/RV45A-ELNG_E(02)',
' ' '/CAB/RV45A-WLDAT(02)' YFORECASTTEMP-REQ_DATE,
' ' 'VBEP-ETART(02)' TB_VBEP-ETART,
' ' 'VBEP-J_2CFAKT(02)' ' 1',
' ' '/CAB/RV45A-ELNG_E(02)' YFORECASTTEMP-FORECASTVALUE,
' ' 'VBEP-J_2CVKAT(01)' P_2CVKAT.
ENDIF.
ELSEIF SY-SUBRC NE 0 AND YFORECASTTEMP-FORECASTVALUE NE '0'.
CLEAR VA_DATUM1.
VA_DATUM = SY-DATUM + 1.
VA_VAR = VA_DATUM1+6(2) + 1.
CONCATENATE VA_DATUM4(2) '/' VA_DATUM6(2) '/' VA_DATUM+0(4)
INTO VA_DATUM3.
CLEAR VA_DATUM1.
CONCATENATE YFORECASTTEMP-MONTH '/' YFORECASTTEMP-YEAR INTO
VA_DATUM1.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=EIAN',
' ' 'BDC_CURSOR' '/CAB/RV45A-WLDAT(01)'.
*-----mod1 25/1/2008-for error in u69----
' ' 'VBLB-LABNK' VA_DATUM1,*
' ' 'VBLB-ABRDT' VA_DATUM3.*
-----mod1 25/1/2008-for error in u69----
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=T\01',
' ' 'BDC_CURSOR' '/CAB/RV45A-ELNG_E(02)',
' ' '/CAB/RV45A-WLDAT(01)' YFORECASTTEMP-REQ_DATE,
' ' 'VBEP-ETART(01)' TB_VBEP-ETART,
' ' 'VBEP-J_2CFAKT(01)' ' 1',
' ' '/CAB/RV45A-ELNG_E(01)' YFORECASTTEMP-FORECASTVALUE,
' ' 'VBEP-J_2CVKAT(01)' P_2CVKAT.
ENDIF.
ELSE.
CLEAR VA_DATUM1.
VA_DATUM = SY-DATUM + 1.
VA_VAR = VA_DATUM1+6(2) + 1.
CONCATENATE VA_DATUM4(2) '/' VA_DATUM6(2) '/' VA_DATUM+0(4)
INTO VA_DATUM3.
CLEAR VA_DATUM1.
CONCATENATE YFORECASTTEMP-MONTH '/' YFORECASTTEMP-YEAR INTO
VA_DATUM1.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=EIAN',
' ' 'BDC_CURSOR' '/CAB/RV45A-WLDAT(01)',
' ' 'VBLB-LABNK' VA_DATUM1,
' ' 'VBLB-ABRDT' VA_DATUM3.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'BDC_OKCODE' '=T\01',
' ' 'BDC_CURSOR' '/CAB/RV45A-ELNG_E(02)',
' ' '/CAB/RV45A-WLDAT(01)' YFORECASTTEMP-REQ_DATE,
' ' 'VBEP-ETART(01)' TB_VBEP-ETART,
' ' 'VBEP-J_2CFAKT(01)' ' 1',
' ' '/CAB/RV45A-ELNG_E(01)' YFORECASTTEMP-FORECASTVALUE,
' ' 'VBEP-J_2CVKAT(01)' P_2CVKAT.
ENDIF.
VA_QUANT1 = VBAP-KWMENG.
VA_QUANT = VA_QUANT1.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4003',
' ' 'VBAP-ZMENG' VA_QUANT,
' ' 'BDC_OKCODE' '/EBACK'.
PERFORM DYNPRO_PROCESS USING :
'X' 'SAPMV45A' '4001',
' ' 'BDC_OKCODE' '=SICH'.
CLEAR TB_MSG.
REFRESH TB_MSG.
CALL TRANSACTION 'VA32' USING TB_BDCDATA
MODE P_MODE
UPDATE 'S'
MESSAGES INTO TB_MSG.
----
Do i need to do update the table T185?
Thanks and regards,
Suki.