Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BDC: Table control problem in Transaction IW32

Former Member
0 Likes
1,234

I've got an assignment to improve the old program which is not support when w/o has operation items more than 1 page. I need to add page down step to my BDC (ok_code = P+)

When I record the step for BDC, the line items are 13 items per page. After apply logic in my program and test run using 'A' mode (display all), the line Items are 15 lines. Furthermore, when my friend who is in another location run, her page has 17 line items.

So, my logic which calculate page and index to select the right item (base on 13 lines/page) is not capable with all scenario.

How can I deal with this kind of problem? Is there any system field that keep the items per page ?

Could any one suggest the way to solve this kind of problem?

I've got an assignment to improve the old program which is not support when w/o has operation items more than 1 page. I need to add page down step to my BDC (ok_code = P+)

When I record the step for BDC, the line items are 13 items per page. After apply logic in my program and test run using 'A' mode (display all), the line Items are 15 lines. Furthermore, when my friend who is in another location run, her page has 17 line items.

So, my logic which calculate page and index to select the right item (base on 13 lines/page) is not capable with all scenario.

How can I deal with this kind of problem? Is there any system field that keep the items per page ?

Could any one suggest the way to solve this kind of problem?

4 REPLIES 4
Read only

Former Member
0 Likes
876

hi,

during start of BDC session user must always select

option <dynpro standard size>

gretings,darek

Read only

former_member609120
Contributor
0 Likes
876

DATA: g_v_mode TYPE c value 'A', "BDC Mode

g_v_update TYPE c value 'S'. "BDC Update Method

  • Work Area for messages during the BDC

DATA: w_msgtab TYPE bdcmsgcoll,

w_ctu_params TYPE ctu_params.

w_ctu_params-dismode = g_v_mode.

w_ctu_params-updmode = g_v_update.

w_ctu_params-defsize = 'X'.

CALL TRANSACTION 'TCode'

USING int_bdcdata

OPTIONS FROM w_ctu_params

MESSAGES INTO int_msgtab.

Try using w_ctu_params, I think it shud work

Read only

Former Member
0 Likes
876

This is a case of table control ,go through this program your problem will solved

REPORT YJAR_VENDOR_INBOUND02 NO STANDARD PAGE HEADING LINE-SIZE 255

MESSAGE-ID ZABC.

*******************************************************************************

STRUCTURE DEFINITIONS :

*

*******************************************************************************

TYPES : BEGIN OF TY_SOURCE ,

LIFNR TYPE LIF16 ,

BUKRS TYPE BUKRS ,

EKORG TYPE EKORG ,

KTOKK TYPE KTOKK ,

NAME1 TYPE AD_NAME1 ,

SORTL TYPE AD_SORT1 ,

LAND1 TYPE LAND1 ,

BANKS TYPE BANKS ,

BANKL TYPE BANKK ,

BANKN TYPE BANKN ,

AKONT TYPE AKONT ,

FDGRV TYPE FDGRV ,

WAERS TYPE BSTWA ,

END OF TY_SOURCE ,

BEGIN OF TY_HEADER ,

LIFNR TYPE LIF16 ,

BUKRS TYPE BUKRS ,

EKORG TYPE EKORG ,

KTOKK TYPE KTOKK ,

NAME1 TYPE AD_NAME1 ,

SORTL TYPE AD_SORT1 ,

LAND1 TYPE LAND1 ,

AKONT TYPE AKONT ,

FDGRV TYPE FDGRV ,

WAERS TYPE BSTWA ,

END OF TY_HEADER ,

BEGIN OF TY_ITEM ,

LIFNR TYPE LIF16 ,

BANKS TYPE BANKS ,

BANKL TYPE BANKK ,

BANKN TYPE BANKN ,

END OF TY_ITEM .

*******************************************************************************

INTERNAL TABLE AND WORK AREA DEFINITIONS :

*

*******************************************************************************

DATA : T_SOURCE TYPE STANDARD TABLE OF TY_SOURCE INITIAL SIZE 1 ,

W_SOURCE TYPE TY_SOURCE ,

W_SOURCE1 TYPE TY_SOURCE ,

T_TARGET TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 1 ,

W_TARGET TYPE BDCDATA ,

T_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 1 ,

W_HEADER TYPE TY_HEADER ,

T_ITEM TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 1 ,

W_ITEM TYPE TY_ITEM ,

I(2) TYPE C ,

FNAM(20) .

*******************************************************************************

UPLOADING FLATFILE TO SOURCE INTERNAL TABLE :

*

*******************************************************************************

PERFORM SUB_UPLOAD_FLATFILE.

PERFORM SUB_SPLIT_DATA.

*include bdcrecx1.

*

*start-of-selection.

*

*perform open_group.

LOOP AT T_HEADER INTO W_HEADER .

REFRESH T_TARGET .

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0100'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF02K-KTOKK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'RF02K-LIFNR' W_HEADER-LIFNR.

PERFORM BDC_FIELD USING 'RF02K-BUKRS' W_HEADER-BUKRS.

PERFORM BDC_FIELD USING 'RF02K-EKORG' W_HEADER-EKORG.

PERFORM BDC_FIELD USING 'RF02K-KTOKK' W_HEADER-KTOKK.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0110'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFA1-LAND1'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'LFA1-NAME1' W_HEADER-NAME1.

PERFORM BDC_FIELD USING 'LFA1-SORTL' W_HEADER-SORTL.

PERFORM BDC_FIELD USING 'LFA1-LAND1' W_HEADER-LAND1.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFA1-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFBK-BANKL(02)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' 'ENTR'.

I = '01' .

LOOP AT T_ITEM INTO W_ITEM WHERE LIFNR = W_HEADER-LIFNR .

CONCATENATE 'LFBK-BANKS(' I ')' INTO FNAM .

PERFORM BDC_FIELD USING FNAM W_ITEM-BANKS.

CONCATENATE 'LFBK-BANKL(' I ')' INTO FNAM .

PERFORM BDC_FIELD USING FNAM W_ITEM-BANKL.

CONCATENATE 'LFBK-BANKN(' I ')' INTO FNAM .

PERFORM BDC_FIELD USING FNAM W_ITEM-BANKN.

I = I + 1 .

IF I GT 5 .

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' 'P+'.

I = '01'.

ENDIF.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.

ENDLOOP .

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0210'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFB1-FDGRV'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'LFB1-AKONT' W_HEADER-AKONT.

PERFORM BDC_FIELD USING 'LFB1-FDGRV' W_HEADER-FDGRV.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0215'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFB1-ZTERM'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0220'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFB5-MAHNA'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0310'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFM1-WAERS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

PERFORM BDC_FIELD USING 'LFM1-WAERS' W_HEADER-WAERS.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF02K-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=YES'.

*perform bdc_transaction using 'XK01'.

*

*perform close_group.

CLEAR W_HEADER .

CALL TRANSACTION 'XK01'

USING T_TARGET

MODE 'A'.

ENDLOOP .

&----


*& Form SUB_UPLOAD_FLATFILE

&----


THIS SUBROUTINE IS USED TO UPLOAD THE FLATFILE TO SOURCE INTERNAL TABLE

-


FORM SUB_UPLOAD_FLATFILE .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'E:/FLATFILE.TXT'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

DAT_MODE = ' '

IMPORTING

FILELENGTH =

HEADER =

TABLES

DATA_TAB = T_SOURCE

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.

ENDFORM. " SUB_UPLOAD_FLATFILE

&----


*& Form SUB_SPLIT_DATA

&----


THIS SUBROUTINE IS USED TO SPLIT DATA FROM SOURCE INTERNAL TABLE TO

HEADER AND ITEM INTERNAL TABLE

-


FORM SUB_SPLIT_DATA .

LOOP AT T_SOURCE INTO W_SOURCE .

W_SOURCE1 = W_SOURCE .

AT NEW LIFNR .

W_HEADER-LIFNR = W_SOURCE1-LIFNR.

W_HEADER-BUKRS = W_SOURCE1-BUKRS.

W_HEADER-EKORG = W_SOURCE1-EKORG.

W_HEADER-KTOKK = W_SOURCE1-KTOKK.

W_HEADER-NAME1 = W_SOURCE1-NAME1.

W_HEADER-SORTL = W_SOURCE1-SORTL.

W_HEADER-LAND1 = W_SOURCE1-LAND1.

W_HEADER-AKONT = W_SOURCE1-AKONT.

W_HEADER-FDGRV = W_SOURCE1-FDGRV.

W_HEADER-WAERS = W_SOURCE1-WAERS.

APPEND W_HEADER TO T_HEADER .

ENDAT .

W_ITEM-LIFNR = W_SOURCE-LIFNR .

W_ITEM-BANKS = W_SOURCE-BANKS .

W_ITEM-BANKL = W_SOURCE-BANKL.

W_ITEM-BANKN = W_SOURCE-BANKN.

APPEND W_ITEM TO T_ITEM .

CLEAR W_HEADER.

CLEAR W_ITEM .

ENDLOOP.

ENDFORM. " SUB_SPLIT_DATA

-


Start new screen *

-


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR W_TARGET.

W_TARGET-PROGRAM = PROGRAM.

W_TARGET-DYNPRO = DYNPRO.

W_TARGET-DYNBEGIN = 'X'.

APPEND W_TARGET TO T_TARGET.

ENDFORM. "BDC_DYNPRO

-


Insert field *

-


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL SPACE.

CLEAR W_TARGET.

W_TARGET-FNAM = FNAM.

W_TARGET-FVAL = FVAL.

APPEND W_TARGET TO T_TARGET.

ENDIF.

ENDFORM. "BDC_FIELD

****************FLAT FILE FORMAT***********************

1000-56 1000 1000 0001 ABC-01 TC IN US 123445678 123456 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 234567 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345678 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345679 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345670 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345671 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345672 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345673 31000 A1 INR

1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345674 31000 A1 INR

Rewards plz if this helps you

Read only

Former Member
0 Likes
876

hi,

this is nothing but screen resolution problem,

try to add this code in your program,

DATA: OPT LIKE CTU_PARAMS.

OPT-DEFSIZE = 'X'.

OPT-DISMODE = CTUMODE.

OPT-UPDMODE = CUPDATE.

and change ur call transaction syntax like

CALL TRANSACTION TCODE USING BDCDATA

  • MODE ctumode

  • UPDATE cupdate

MESSAGES INTO MESSTAB

OPTIONS FROM OPT.

reward points if usful,

thanks and regards,

muralidhar.