0% found this document useful (0 votes)
425 views

BDC Recording

The document describes a step loop process used to display repeating records in a screen. Step loops allow incrementing/decrementing a base counter to page through records. An example is provided of using step loops to upload data from a file into a purchase order transaction using BDC programming. Field values are filled and transactions are submitted to the backend system in a loop.

Uploaded by

ajayjoe_83
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
425 views

BDC Recording

The document describes a step loop process used to display repeating records in a screen. Step loops allow incrementing/decrementing a base counter to page through records. An example is provided of using step loops to upload data from a file into a purchase order transaction using BDC programming. Field values are filled and transactions are submitted to the backend system in a loop.

Uploaded by

ajayjoe_83
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

0000 T VA02

SAPMV45A 0102 X

0000 BDC_CURSOR
VBAK-VBELN
0000 BDC_OKCODE
/00
0000 VBAK-VBELN
45239774
SAPMV45A 4001 X

0000 BDC_OKCODE
=POTO
0000 BDC_SUBSCR

SAPMV45A
4021SUBSCREEN_HEADER
0000 VBKD-BSTKD
Test12345
0000 VBKD-BSTDK
01/18/2010
0000 BDC_SUBSCR
SAPMV45A
4701PART-SUB
0000 KUWEV-KUNNR
20018370
0000 BDC_SUBSCR
SAPMV45A
4401SUBSCREEN_BODY
0000 RV45A-KETDAT

01/18/2010
0000 RV45A-KPRGBZ
D
0000 BDC_SUBSCR
SAPMV45A
4900SUBSCREEN_TC
0000 BDC_CURSOR
VBAP-POSNR(02)
0000 RV45A-VBAP_SELKZ
(02)
X
0000 BDC_SUBSCR
SAPMV45A
4050SUBSCREEN_BUTTONS
SAPLIPW1 0200 X

0000 BDC_CURSOR
RIPW0-SERNR(01)
0000 BDC_OKCODE
=RWS
0000 RIPW0-SERNR(01)
test657
SAPMV45A 4001 X

0000 BDC_OKCODE
=SICH
0000 BDC_SUBSCR

SAPMV45A
4021SUBSCREEN_HEADER
0000 VBKD-BSTKD
Test12345
0000 VBKD-BSTDK
01/18/2010
0000 BDC_SUBSCR
SAPMV45A
4701PART-SUB
0000 KUWEV-KUNNR
20018370
0000 BDC_SUBSCR
SAPMV45A
4401SUBSCREEN_BODY
0000 RV45A-KETDAT
01/18/2010
0000 RV45A-KPRGBZ
D
0000 BDC_SUBSCR
SAPMV45A
4900SUBSCREEN_TC
0000 BDC_CURSOR
RV45A-MABNR(03)
0000 BDC_SUBSCR
SAPMV45A
4050SUBSCREEN_BUTTONS
===========
REFRESH bdcdata.
REFRESH l_t_msg.
CLEAR bdcdata.
bdcdata-program = 'SAPMV45A'.
bdcdata-dynpro = '0102'.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-fnam = 'BDC_CURSOR' .
bdcdata-fval = 'VBAK-VBELN'.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-fnam = 'BDC_OKCODE' .
bdcdata-fval = '/00'.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-fnam = 'VBAK-VBELN'.
bdcdata-fval = l_t_final-vbeln.
APPEND bdcdata. CLEAR bdcdata.
bdcdata-program = 'SAPMV45A'.
bdcdata-dynpro = '4001'.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-fnam = 'BDC_OKCODE' .
bdcdata-fval = '/00'.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-fnam = 'KUAGV-KUNNR' .
bdcdata-fval = xvbak-kunnr.
APPEND bdcdata.
CONCATENATE 'VBAP-VSTEL' '(' l_f_line ')' INTO fld.
CLEAR bdcdata.
bdcdata-fnam = 'BDC_CURSOR' .
bdcdata-fval = fld. APPEND bdcdata.
CONCATENATE 'RV45A-MABNR' '(' l_f_line ')' INTO fld.
CLEAR bdcdata. bdcdata-fnam = fld.
bdcdata-fval = l_t_final-matnr.
APPEND bdcdata.
CONCATENATE 'RV45A-KWMENG' '(' l_f_line ')' INTO fld.
CLEAR bdcdata.
bdcdata-fnam = fld.
bdcdata-fval = l_t_final-kwmeng.
APPEND bdcdata.
CONCATENATE 'KOMV-KBETR' '(' l_f_line ')' INTO fld.
CLEAR bdcdata. bdcdata-fnam = fld.
bdcdata-fval = l_t_final-netwr.
APPEND bdcdata.
CONCATENATE 'VBAP-VSTEL' '(' l_f_line ')' INTO fld. CLEAR bdcdata.
bdcdata-fnam = fld.
" bdcdata-fval = l_t_final-vstel.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-program = 'SAPMV45A'.
bdcdata-dynpro = '4001'.
bdcdata-dynbegin = 'X'.
APPEND bdcdata. CLEAR bdcdata.
bdcdata-fnam = 'BDC_OKCODE' .
bdcdata-fval = '/00'.
APPEND bdcdata.
CONCATENATE 'VBAP-UEPOS' '(' l_f_line ')' INTO fld.
CLEAR bdcdata.
bdcdata-fnam = 'BDC_CURSOR' .
bdcdata-fval = fld.
APPEND bdcdata.
CONCATENATE 'VBAP-UEPOS' '(' l_f_line ')' INTO fld.
CLEAR bdcdata. bdcdata-fnam = fld.
" bdcdata-fval = l_t_final-uepos.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-program = 'SAPMV45A'.
bdcdata-dynpro = '4001'.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
CLEAR bdcdata.
bdcdata-fnam = 'BDC_OKCODE' .
bdcdata-fval = '=SICH'.
APPEND bdcdata.
CALL FUNCTION 'DEQUEUE_ALL'
* EXPORTING * _SYNCHRON = ' ' . DATA:l_f_mode(1) TYPE c. l_f_mode = 'N'.
CALL TRANSACTION 'VA02' USING bdcdata MODE l_f_mode UPDATE 'S' MESSAGES INTO l_t
_msg.
============
Step loops are repeated blocks of field in a screen. Step loops: Method of displ
aying a set of records. Page down & Page up used make step loops work: decrement
/ increment base counter Index = base + sy-step1 ? 1 example of a step loop is
a table control in that we find in some sap transactions. SAMPLE CODE: see this
example.
report ZBH_PURORDER no standard page heading line-size 255.
PARAMETERS:P_FILE LIKE IBIPPARMS-PATH.
DATA FILENAME TYPE STRING.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME' EXPORTING program_name = sy-cprog dynpro_number = sy
-dynnr IMPORTING file_name = P_FILE.
START-OF-SELECTION.
FILENAME = P_FILE.
DATA:BEGIN OF XTAB OCCURS 0,
TYP,
DES(255) TYPE C,
END OF XTAB.
DATA:BEGIN OF ITAB OCCURS 0,
SUPERFIELD LIKE MEPO_TOPLINE-SUPERFIELD,
EKORG LIKE MEPO1222-EKORG,
EKGRP LIKE MEPO1222-EKGRP,
BUKRS LIKE MEPO1222-BUKRS,
END OF ITAB.
DATA:BEGIN OF JTAB OCCURS 0,
N(4) TYPE C,
EMATN LIKE MEPO1211-EMATN,
MENGE(13) TYPE C,
NETPR(13) TYPE C,
NAME1 LIKE MEPO1211-NAME1,
END OF JTAB.
DATA:BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA:DELIMITER VALUE '*'.
DATA A TYPE I.
DATA M(4) TYPE N.
DATA L_FNAM(30) TYPE C.
CALL FUNCTION 'GUI_UPLOAD' EXPORTING FILENAME = FILENAME FILETYPE = 'ASC' TABLES
DATA_TAB = XTAB. LOOP AT XTAB. IF XTAB-TYP = 'H'. SPLIT XTAB-DES AT DELIMITER I
NTO ITAB-SUPERFIELD ITAB-EKORG ITAB-EKGRP ITAB-BUKRS. JTAB-N = JTAB-N + 1. APPEN
D ITAB. ELSEIF XTAB-TYP = 'I'. SPLIT XTAB-DES AT DELIMITER INTO JTAB-EMATN JTAB-
MENGE JTAB-NETPR JTAB-NAME1. APPEND JTAB. ENDIF. ENDLOOP.
CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = 'PORDER' KEEP
= 'X' USER = SY-UNAME.
LOOP AT ITAB.
A = SY-TABIX.
REFRESH BDCTAB.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_CURSOR' 'MEPO_TOPLINE-SUPERFIELD'.
perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'.
perform bdc_field using 'DYN_6000-LIST' ' 1'.
perform bdc_field using 'BDC_OKCODE' '=MEV4000BUTTON'.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'.
perform bdc_field using 'BDC_CURSOR' 'MEPO1222-EKORG'.
perform bdc_field using 'MEPO1222-EKORG' ITAB-EKORG.
perform bdc_field using 'MEPO1222-EKGRP' ITAB-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS' ITAB-BUKRS.
perform bdc_field using 'DYN_6000-LIST' ' 1'.
perform bdc_field using 'BDC_OKCODE' '=MEV4001BUTTON'.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'.
perform bdc_field using 'MEPO1222-EKORG' ITAB-EKORG.
perform bdc_field using 'MEPO1222-EKGRP' ITAB-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS' ITAB-BUKRS. M = 1.
LOOP AT JTAB. IF JTAB-N = A. WRITE:/ JTAB.
CONCATENATE 'MEPO1211-EMATN(' M ')' INTO L_FNAM.
perform bdc_field using 'BDC_CURSOR' L_FNAM.
perform bdc_field using L_FNAM JTAB-EMATN.
CONCATENATE 'MEPO1211-MENGE(' M ')' INTO L_FNAM.
perform bdc_field using L_FNAM JTAB-MENGE.
CONCATENATE 'MEPO1211-NETPR(' M ')' INTO L_FNAM.
perform bdc_field using L_FNAM JTAB-NETPR.
CONCATENATE 'MEPO1211-NAME1(' M ')' INTO L_FNAM.
perform bdc_field using L_FNAM JTAB-NAME1. M = M + 1.
ENDIF.
ENDLOOP.
perform bdc_field using 'DYN_6000-LIST' ' 1'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'.
perform bdc_field using 'MEPO1222-EKORG' ITAB-EKORG.
perform bdc_field using 'MEPO1222-EKGRP' ITAB-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS' ITAB-BUKRS.
perform bdc_field using 'DYN_6000-LIST' ' 1'.
perform bdc_field using 'BDC_CURSOR' 'MEPO1319-MATKL'.
perform bdc_field using 'MEPO1319-SPINF' 'X'.
perform bdc_field using 'BDC_OKCODE' '=MESAVE'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'ME21N'
TABLES
DYNPROTAB = BDCTAB.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'. FORM BDC_DYNPRO USING PROGRAM DYNPRO. CLEAR BDC
TAB. BDCTAB-PROGRAM = PROGRAM. BDCTAB-DYNPRO = DYNPRO. BDCTAB-DYNBEGIN = 'X'. AP
PEND BDCTAB. ENDFORM. FORM BDC_FIELD USING FNAM FVAL. CLEAR BDCTAB. BDCTAB-FNAM
= FNAM. BDCTAB-FVAL = FVAL. APPEND BDCTAB. ENDFORM. FLAT FILE: H117161*1000*001*
1000 ICPU*1*16000*1000 ILEY BOARD*10*10000*1000 IMOUSE*6*6000*1000 H117171*1000*
001*1000 ICPU*5*80000*1000 H117170*1000*001*1000 IMOUSE*3*3000*1000 ILEY BOARD*1
0*10000*1000 [b]Kindly Reward points if you found the reply helpful.[/b] Cheers,
CHAITANYA.

You might also like