‎2008 Apr 16 1:45 PM
hi,
i recorded PA40 transaction . when i run this code using call transaction mode it is working fine. when i am running it session method it is giving error like "Batch input session is completed'.
i am sending my code below.
report ZAAATEST
no standard page heading line-size 255.
DATA: wa_opt TYPE ctu_params.
PARAMETERS : P_GROUP LIKE APQI-GROUPID DEFAULT 'AVANTIMRG10'.
wa_opt-nobinpt = 'X'.
wa_opt-DISMODE = 'A'.
wa_opt-UPDMODE = 'S'.
WA_OPT-RACOMMIT = 'X'.
include bdcrecx1.
start-of-selection.
*perform open_group.
-- Initial Screen
perform bdc_dynpro using 'SAPMP50A' '2000'.
perform bdc_field using 'BDC_CURSOR'
'T529T-MNTXT(05)'.
perform bdc_field using 'BDC_OKCODE'
'=PICK'.
perform bdc_field using 'RP50G-PERNR'
''.
perform bdc_field using 'RP50G-EINDA'
'04/15/2008'.
perform bdc_field using 'RP50G-SELEC(05)'
'X'.
-- 0000
perform bdc_dynpro using 'MP000000' '2000'.
perform bdc_field using 'BDC_CURSOR'
'PSPAR-PLANS'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0000-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0000-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0000-MASSN'
'10'.
perform bdc_field using 'P0000-MASSG'
'NR'.
perform bdc_field using 'PSPAR-PLANS'
'00621775'.
perform bdc_field using 'PSPAR-WERKS'
'US01'.
perform bdc_field using 'PSPAR-PERSG'
'1'.
perform bdc_field using 'PSPAR-PERSK'
'11'.
commit work.
perform bdc_dynpro using 'MP000100' '2010'.
perform bdc_field using 'BDC_CURSOR'
'P0001-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
commit work.
*perform bdc_field using 'P0001-BEGDA'
'04/15/2008'.
*perform bdc_field using 'P0001-ENDDA'
'12/31/9999'.
*perform bdc_field using 'P0001-ABKRS'
'UB'.
*perform bdc_field using 'PPRHPR-PROZT'
'100,00'.
*perform bdc_field using 'P0001-PLANS'
'00621775'.
*perform bdc_dynpro using 'SAPLRHOV' '0100'.
*perform bdc_field using 'BDC_CURSOR'
'P1007-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=CONT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=UPD'.
*perform bdc_field using 'P1007-BEGDA'
'04/14/2008'.
perform bdc_dynpro using 'MP000200' '2010'.
perform bdc_field using 'BDC_CURSOR'
'P0002-GBDAT'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
commit work.
perform bdc_field using 'P0002-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0002-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0002-NACHN'
'Test gelco 2'.
perform bdc_field using 'P0002-VORNA'
'Test'.
perform bdc_field using 'Q0002-PERID'
'999999999'.
perform bdc_field using 'P0002-GBDAT'
'02/25/1995'.
perform bdc_field using 'Q0002-GESC3'
'X'.
maheedhar-start
perform bdc_field using 'BDC_OKCODE'
'=CONT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=UPD'.
commit work.
maheedhar-end
*----
perform bdc_dynpro using 'MP000600' '2010'.
perform bdc_field using 'BDC_CURSOR'
'P0006-PSTLZ'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
'UPD'.
perform bdc_field using 'P0006-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0006-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0006-ANSSA'
'9001'.
perform bdc_field using 'P0006-STRAS'
'uyertutiuetu'.
perform bdc_field using 'P0006-ORT01'
'fgkjkdgkd'.
perform bdc_field using 'P0006-STATE'
'CA'.
perform bdc_field using 'P0006-PSTLZ'
'95061'.
perform bdc_field using 'P0006-LAND1'
'US'.
perform bdc_dynpro using 'MP000600' '2010'.
perform bdc_field using 'BDC_CURSOR'
'P0006-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0006-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0006-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0006-ANSSA'
'9001'.
perform bdc_field using 'P0006-STRAS'
'uyertutiuetu'.
perform bdc_field using 'P0006-ORT01'
'fgkjkdgkd'.
perform bdc_field using 'P0006-STATE'
'CA'.
perform bdc_field using 'P0006-PSTLZ'
'95061'.
perform bdc_field using 'P0006-LAND1'
'US'.
perform bdc_dynpro using 'MP000700' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0007-WOSTD'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'P0007-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0007-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0007-SCHKZ'
'NORM'.
perform bdc_field using 'P0007-ZTERF'
'9'.
perform bdc_field using 'P0007-WOSTD'
' 40'.
perform bdc_dynpro using 'MP000700' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0007-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0007-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0007-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0007-SCHKZ'
'NORM'.
perform bdc_field using 'P0007-ZTERF'
'9'.
perform bdc_field using 'P0007-WOSTD'
' 40,00'.
perform bdc_field using 'P0007-WKWDY'
' 5,00'.
perform bdc_dynpro using 'MP000800' '2010'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'P0008-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0008-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0008-PREAS'
'HC'.
perform bdc_field using 'P0008-BSGRD'
'100,00'.
perform bdc_field using 'Q0008-ANSAL'
' 102000'.
perform bdc_field using 'P0008-ANCUR'
'USD'.
perform bdc_field using 'BDC_CURSOR'
'Q0008-BETRG(01)'.
perform bdc_field using 'Q0008-IBBEG'
'04/15/2008'.
perform bdc_field using 'P0008-WAERS'
'USD'.
perform bdc_field using 'Q0008-BETRG(01)'
' 1'.
perform bdc_dynpro using 'MP000800' '2010'.
perform bdc_field using 'BDC_CURSOR'
'P0008-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0008-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0008-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0008-PREAS'
'HC'.
perform bdc_field using 'P0008-BSGRD'
'100,00'.
perform bdc_field using 'Q0008-ANSAL'
' 102.000,00'.
perform bdc_field using 'P0008-ANCUR'
'USD'.
perform bdc_field using 'Q0008-IBBEG'
'04/15/2008'.
perform bdc_field using 'P0008-WAERS'
'USD'.
perform bdc_dynpro using 'MP001500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0015-LGART'.
perform bdc_dynpro using 'MP001400' '2010'.
perform bdc_field using 'BDC_CURSOR'
'Q0014-BETRG'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0014-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0014-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0014-LGART'
'9000'.
perform bdc_field using 'Q0014-BETRG'
' 6646'.
perform bdc_field using 'P0014-WAERS'
'USD'.
perform bdc_dynpro using 'MP010500' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0105-USRID'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0105-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0105-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0105-USRID'
'gwh'.
perform bdc_dynpro using 'MP010500' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0105-USRID_LONG'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0105-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0105-ENDDA'
'12/31/9999'.
perform bdc_dynpro using 'MP010500' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0105-BEGDA'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0105-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0105-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0105-USRID'
'8859'.
perform bdc_dynpro using 'MP003200' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0032-BEGDA'.
perform bdc_dynpro using 'MP002300' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0023-BEGDA'.
perform bdc_dynpro using 'MP900500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P9005-BEGDA'.
perform bdc_dynpro using 'MP004100' '2000'.
perform bdc_field using 'BDC_CURSOR'
'P0041-DAT01'.
perform bdc_field using 'BDC_OKCODE'
'=UPD'.
perform bdc_field using 'P0041-BEGDA'
'04/15/2008'.
perform bdc_field using 'P0041-ENDDA'
'12/31/9999'.
perform bdc_field using 'P0041-DAR01'
'01'.
perform bdc_field using 'P0041-DAT01'
'04/15/2008'.
perform bdc_dynpro using 'MP900400' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P9004-BEGDA'.
perform bdc_dynpro using 'MP003500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0035-BEGDA'.
perform bdc_dynpro using 'MP003500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0035-BEGDA'.
perform bdc_dynpro using 'MP003500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0035-BEGDA'.
perform bdc_dynpro using 'MP003500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0035-BEGDA'.
perform bdc_dynpro using 'MP003500' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0035-BEGDA'.
perform bdc_dynpro using 'MP007700' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/ENXT'.
perform bdc_field using 'BDC_CURSOR'
'P0077-BEGDA'.
perform bdc_dynpro using 'SAPMP50A' '2000'.
perform bdc_field using 'BDC_OKCODE'
'/EBCK'.
perform bdc_field using 'BDC_CURSOR'
'RP50G-PERNR'.
**perform bdc_transaction using 'PA40'.
*
CALL TRANSACTION 'PA40' USING BDCDATA
MODE 'A'
OPTIONS FROM wa_opt
MESSAGES INTO MESSTAB.
*
*DATA: w_session_name LIKE apqi-groupid.
*
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = P_GROUP
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
IMPORTING
QID =
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11
.
IF SY-SUBRC <> 0.
WRITE 😕 'OPEN GROUP FAILED'.
STOP.
ENDIF.
*
**
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'PA40'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = wa_opt
TABLES
DYNPROTAB = BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
**
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'PA40'
TABLES
DYNPROTAB = BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
**
**
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE 😕 'CLOSE GROUP FAILED'.
STOP.
ENDIF.
*
*perform close_group.
thanks,
maheedhar
Edited by: Alvaro Tejada Galindo on Apr 16, 2008 1:42 PM
‎2008 Apr 16 1:49 PM
Hi Maheedhar,
The correct way i
1) call the bdc_open_group
2) loop
populate bdcdata.......
call bdc_insert
endloop.
3) cal the bdc-close_group
Regards,
Ravi kanth Talagana
‎2008 Apr 16 1:49 PM
Hi Maheedhar,
The correct way i
1) call the bdc_open_group
2) loop
populate bdcdata.......
call bdc_insert
endloop.
3) cal the bdc-close_group
Regards,
Ravi kanth Talagana
‎2008 Apr 16 4:06 PM
‎2008 Apr 16 2:21 PM
hi
iam sending u one sample code just go through it
u will understood.
in u r code comment call transaction while running session.
if u need both then in selection screen put radio button
and do according to it.
*********************************
REPORT ZSTEST_049 .
DATA: BEGIN OF ITAB OCCURS 0,
LIFNR(10) TYPE C,
F1(4) TYPE C,
F2(4) TYPE C,
F3(4) TYPE C,
F4(10) TYPE C,
F5(35) TYPE C,
F6(10) TYPE C,
F7(3) TYPE C,
F8(10) TYPE C,
F9(10) TYPE C,
F10(3) TYPE C,
END OF ITAB.
DATA FILE TYPE STRING.
DATA I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
FILE = 'C:\Documents and Settings\AMS-TR1\Desktop\VENDOR.TXT'.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
END-OF-SELECTION.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'ZSTEST'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
PROG = SY-CPROG
IMPORTING
QID =
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT ITAB.
*--100
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0100'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'RF02K-LIFNR'.
I_BDCDATA-FVAL = ITAB-LIFNR.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'RF02K-BUKRS'.
I_BDCDATA-FVAL = ITAB-F1.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'RF02K-EKORG'.
I_BDCDATA-FVAL = ITAB-F2.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'RF02K-KTOKK'.
I_BDCDATA-FVAL = ITAB-F3.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--110
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0110'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFA1-ANRED'.
I_BDCDATA-FVAL = ITAB-F4.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFA1-NAME1'.
I_BDCDATA-FVAL = ITAB-F5.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFA1-SORTL'.
I_BDCDATA-FVAL = ITAB-F6.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFA1-LAND1'.
I_BDCDATA-FVAL = ITAB-F7.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--120
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0120'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--130
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0130'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '=ENTR'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--210
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0210'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFB1-AKONT'.
I_BDCDATA-FVAL = ITAB-F8.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFB1-FDGRV'.
I_BDCDATA-FVAL = ITAB-F9.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--0215
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0215'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*-- 220
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0220'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--310
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0310'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'LFM1-WAERS'.
I_BDCDATA-FVAL = ITAB-F10.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '/00'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--0320
I_BDCDATA-PROGRAM = 'SAPMF02K'.
I_BDCDATA-DYNPRO = '0320'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '=ENTR'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--330
I_BDCDATA-PROGRAM = 'SAPLSPO1'.
I_BDCDATA-DYNPRO = '0330'.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = 'BDC_OKCODE'.
I_BDCDATA-FVAL = '=YES'.
APPEND I_BDCDATA.
CLEAR I_BDCDATA.
*--SESSION
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
DYNPROTAB = I_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH I_BDCDATA.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE:/ 'Session created..'.