Hi all,
I'm creating a BDC to update the prof.segment from account assignment on a sales item.
Everything works fine when I run it into the foreground, but when I turn the program in the background, there seems to be an error when opening program 'SAPLKACB' screen '0002'.
He stops at the screen, and the user has to press on a key to 'push' the program forward.
Anyone has an idea on how to solve this ?
This is my code,
problem lays between the opening of the program, and the start of BDC_OKCODE =COBL_XERGO
DATA : i_bdcdata TYPE TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata,
wa_pos TYPE posnr_va,
I_TAB TYPE TABLE OF BDCMSGCOLL,
wa_tab type BDCMSGCOLL,
wa_params type CTU_PARAMS.
refresh i_bdcdata.
wa_params-dismode = 'A'.
wa_params-defsize = 'X'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '0102'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'VBAK-VBELN'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'/00'.
PERFORM add_line TABLES i_bdcdata USING 'VBAK-VBELN'
'0070040656'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '4001'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
* CLEAR wa_salesorder.
*loop at the items
CLEAR wa_pos.
clear wa_pos.
* loop at i_salesorder into wa_salesorder.
do 2 times.
* LOOP AT i_salesorder INTO wa_salesorder.
wa_pos = wa_pos + 10.
PERFORM add_line TABLES i_bdcdata USING
'BDC_OKCODE'
'=POPO'.
* PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
* 'R45A-MABNR(03)'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '0251'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RV45A-POSNR'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=POSI'.
PERFORM add_line TABLES i_bdcdata USING 'RV45A-POSNR'
wa_pos.
clear wa_bdcdata.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '4001'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=ITEM'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RV45A-MABNR(01)'.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '4003'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=T\06'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '4003'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
*perform bdc_dynpro using 'SAPMV45A' '4003'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'/EBACK'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'VBAP-KALSM_K'.
PERFORM add_line TABLES i_bdcdata USING 'DKACB-FMORE'
'X'.
wa_bdcdata-program = 'SAPLKACB'.
wa_bdcdata-dynpro = '0002'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'DKACB-XERGO'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=COBL_XERGO'.
PERFORM add_line TABLES i_bdcdata USING 'DKACB-XERGO'
'X'
.
*perform bdc_dynpro using 'SAPLKACB' '0002'.
*PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
* 'COBL-PS_POSID'.
* PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
* '/EBACK'.
* PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
* 'VBAP-KALSM_K'.
* PERFORM add_line TABLES i_bdcdata USING 'DKACB-FMORE'
* 'X'.
* CLEAR wa_bdcdata.
* wa_bdcdata-program = 'SAPLKACB'.
* wa_bdcdata-dynpro = '0002'.
* wa_bdcdata-dynbegin = 'X'.
* APPEND wa_bdcdata TO i_bdcdata.
* PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
* '=COBL_XERGO'.
**PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
** 'COBL-AUFNR'.
*COBL-PS_POSID
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKEAK'.
wa_bdcdata-dynpro = '0300'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RKEAK-FIELD(15)'.
PERFORM add_line TABLES i_bdcdata USING 'RKEAK-FIELD(15)'
'A1224'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=P+'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKEAK'.
wa_bdcdata-dynpro = '0300'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RKEAK-FIELD(03)'.
PERFORM add_line TABLES i_bdcdata USING 'RKEAK-FIELD(03)'
'OTH'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=P+'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKEAK'.
wa_bdcdata-dynpro = '0300'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RKEAK-FIELD(07)'.
PERFORM add_line TABLES i_bdcdata USING 'RKEAK-FIELD(07)'
'BE'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=P+'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKEAK'.
wa_bdcdata-dynpro = '0300'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RKEAK-FIELD(09)'.
PERFORM add_line TABLES i_bdcdata USING 'RKEAK-FIELD(09)'
'BE'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=P+'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKEAK'.
wa_bdcdata-dynpro = '0300'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RKEAK-FIELD(10)'.
PERFORM add_line TABLES i_bdcdata USING 'RKEAK-FIELD(10)'
'BE'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=P+'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKEAK'.
wa_bdcdata-dynpro = '0300'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'RKEAK-FIELD(11)'.
PERFORM add_line TABLES i_bdcdata USING 'RKEAK-FIELD(11)'
'REPMC'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=WEIT'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLKACB'.
wa_bdcdata-dynpro = '0002'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
'COBL-AUFNR'.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=ENTE'.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPMV45A'.
wa_bdcdata-dynpro = '4001'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO i_bdcdata.
**PERFORM add_line TABLES i_bdcdata USING 'BDC_CURSOR'
** 'RV45A-MABNR(03)'.
** CLEAR wa_bdcdata.
** wa_bdcdata-program = 'SAPLSPO2'.
** wa_bdcdata-dynpro = '0101'.
** wa_bdcdata-dynbegin = 'X'.
** APPEND wa_bdcdata TO i_bdcdata.
**PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
** '=OPT1'.
**
**
* ENDLOOP.
enddo.
PERFORM add_line TABLES i_bdcdata USING 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VA02' USING i_bdcdata
options from wa_params
MESSAGES INTO i_tab.
break-point.
FORM add_line TABLES i_bdcdata STRUCTURE bdcdata
USING bdc
value.
DATA : lw_bdcdata TYPE bdcdata.
CLEAR lw_bdcdata.
lw_bdcdata-fnam = bdc.
lw_bdcdata-fval = value.
APPEND lw_bdcdata TO i_bdcdata.
ENDFORM. " add_line