Introduction: Recently, I was working on an asset value transfer program. I didn’t find a suitable function, so I used BDC. However, there is a problem that, for the transaction code ABUMN, the first time you enter it, a pop-up window will pop up to enter the company code. No, there will be a default parameter ID, so there is no way to control it.
Solution:
Find the parameter ID of the company code. Before the BDC screen recording starts, pass the parameter to the parameter ID first, and then use the BDC to call the transaction code, and there will be no pop-up prompt.
SET PARAMETER ID 'BUK' FIELD P_BUKRS.
Complete ABUMN screen recording code:
SET PARAMETER ID 'BUK' FIELD P_BUKRS.
PERFORM BDC_DYNPRO USING 'SAPLAMDP' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/ENEWC'.
PERFORM BDC_DYNPRO USING 'SAPLSPO4' '0300'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'SVALD-VALUE(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=FURT'.
PERFORM BDC_FIELD USING 'SVALD-VALUE(01)'
<FS_OUT>-BUKRS.
PERFORM BDC_DYNPRO USING 'SAPLAMDP' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB02'.
PERFORM BDC_FIELD USING 'RAIFP2-ANLN1'
<FS_OUT>-INVZU1.
PERFORM BDC_FIELD USING 'RAIFP2-ANLN2'
<FS_OUT>-INVZU2.
PERFORM BDC_FIELD USING 'RAIFP1-BLDAT'
LV_DATE2 . " 上线日期
PERFORM BDC_FIELD USING 'RAIFP1-BUDAT'
LV_DATE2 .. " 上线日期
PERFORM BDC_FIELD USING 'RAIFP1-BZDAT'
LV_BZDAT. " 资产价值日
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RAIFP3-ANLN2'.
PERFORM BDC_FIELD USING 'RAIFP3-XBANL'
'X'."已存资产
PERFORM BDC_FIELD USING 'RAIFP3-ANLN1'
<FS_OUT>-ANLN1.
PERFORM BDC_FIELD USING 'RAIFP3-ANLN2'
<FS_OUT>-ANLN2.
PERFORM BDC_DYNPRO USING 'SAPLAMDP' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=TAB03'.
PERFORM BDC_FIELD USING 'RAIFP2-ANLN1'
<FS_OUT>-INVZU1.
PERFORM BDC_FIELD USING 'RAIFP2-ANLN2'
<FS_OUT>-INVZU2.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RAIFP1-BLART'.
PERFORM BDC_FIELD USING 'RAIFP1-BLART'
'Z1'.
PERFORM BDC_FIELD USING 'RAIFP1-TRAVA'
'4'.
PERFORM BDC_DYNPRO USING 'SAPLAMDP' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SAVE'.
PERFORM BDC_FIELD USING 'RAIFP2-ANLN1'
<FS_OUT>-INVZU1.
PERFORM BDC_FIELD USING 'RAIFP2-ANLN2'
<FS_OUT>-INVZU2.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RAIFP2-XANEU'.
PERFORM BDC_DYNPRO USING 'SAPLAMDP' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/ERTRN'.
PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=YES'.
LV_MODE = 'N'.
CALL TRANSACTION 'ABUMN' USING BDCDATA[]
MODE LV_MODE "不显示事务屏幕
UPDATE 'S' "同步更新.
MESSAGES INTO ZBDCMSGCOLL."错误信息写入zbdcmsgcoll
Author: Little Flying Pig Pig Pig Pig Pig Pig Pig – CSDN