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

Table control in BDC

Former Member
0 Likes
749

Hi,

I have a problem in BDC while passing values to table control. For example while recording the BDC the table control shows 7 lines. But at the same time when I minmize the screen only 3 rows are visible so i can't able to pass 7 rows at that time.

Saravana.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
694

Saravana,

While calling the transaction use call transaction tcode using i_bdcdata options from opt message into i_messages.

data: lws_cnt type char2,

lws_field type char15.

LOOP AT i_invoicing_plan INTO wa_invoicing_plan.

lws_cnt = sy-tabix.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = lws_cnt

IMPORTING

output = lws_cnt .

CONCATENATE 'FPLT-AFDAT(' lws_cnt ')' INTO lws_field.

CONCATENATE wa_invoicing_plan-date+6(2)

wa_invoicing_plan-date+4(2)

wa_invoicing_plan-date+0(4) INTO lws_date

SEPARATED BY '.'.

PERFORM bdc_field USING lws_field lws_date.

CONCATENATE 'FPLT-FPROZ(' lws_cnt ')' INTO lws_field.

lws_perct = wa_invoicing_plan-percentage.

CONDENSE lws_perct.

PERFORM bdc_field USING lws_field lws_perct.

ENDLOOP.

While calling the transaction give like this:

<b> DATA: opt TYPE ctu_params.

opt-dismode = 'N'.

opt-updmode = 'A'.

opt-defsize = 'X'.

CALL TRANSACTION tcode

USING i_bdcdata OPTIONS FROM opt MESSAGES INTO i_messages.

LOOP AT i_messages.

ENDLOOP. </b>

Saravana,

While calling the transaction use call transaction tcode using i_bdcdata options from opt message into i_messages.

data: lws_cnt type char2,

lws_field type char15.

LOOP AT i_invoicing_plan INTO wa_invoicing_plan.

lws_cnt = sy-tabix.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = lws_cnt

IMPORTING

output = lws_cnt .

CONCATENATE 'FPLT-AFDAT(' lws_cnt ')' INTO lws_field.

CONCATENATE wa_invoicing_plan-date+6(2)

wa_invoicing_plan-date+4(2)

wa_invoicing_plan-date+0(4) INTO lws_date

SEPARATED BY '.'.

PERFORM bdc_field USING lws_field lws_date.

CONCATENATE 'FPLT-FPROZ(' lws_cnt ')' INTO lws_field.

lws_perct = wa_invoicing_plan-percentage.

CONDENSE lws_perct.

PERFORM bdc_field USING lws_field lws_perct.

ENDLOOP.

While calling the transaction give like this:

<b> DATA: opt TYPE ctu_params.

opt-dismode = 'N'.

opt-updmode = 'A'.

opt-defsize = 'X'.

CALL TRANSACTION tcode

USING i_bdcdata OPTIONS FROM opt MESSAGES INTO i_messages.

LOOP AT i_messages.

ENDLOOP. </b>

4 REPLIES 4
Read only

Former Member
0 Likes
695

Saravana,

While calling the transaction use call transaction tcode using i_bdcdata options from opt message into i_messages.

data: lws_cnt type char2,

lws_field type char15.

LOOP AT i_invoicing_plan INTO wa_invoicing_plan.

lws_cnt = sy-tabix.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = lws_cnt

IMPORTING

output = lws_cnt .

CONCATENATE 'FPLT-AFDAT(' lws_cnt ')' INTO lws_field.

CONCATENATE wa_invoicing_plan-date+6(2)

wa_invoicing_plan-date+4(2)

wa_invoicing_plan-date+0(4) INTO lws_date

SEPARATED BY '.'.

PERFORM bdc_field USING lws_field lws_date.

CONCATENATE 'FPLT-FPROZ(' lws_cnt ')' INTO lws_field.

lws_perct = wa_invoicing_plan-percentage.

CONDENSE lws_perct.

PERFORM bdc_field USING lws_field lws_perct.

ENDLOOP.

While calling the transaction give like this:

<b> DATA: opt TYPE ctu_params.

opt-dismode = 'N'.

opt-updmode = 'A'.

opt-defsize = 'X'.

CALL TRANSACTION tcode

USING i_bdcdata OPTIONS FROM opt MESSAGES INTO i_messages.

LOOP AT i_messages.

ENDLOOP. </b>

Read only

Former Member
0 Likes
694

Hello Saravana,

Use this code.

REPORT zprataptable2

NO STANDARD PAGE HEADING LINE-SIZE 255.

DATA : BEGIN OF itab OCCURS 0,

i1 TYPE i,

lifnr LIKE rf02k-lifnr,

bukrs LIKE rf02k-bukrs,

ekorg LIKE rf02k-ekorg,

ktokk LIKE rf02k-ktokk,

anred LIKE lfa1-anred,

name1 LIKE lfa1-name1,

sortl LIKE lfa1-sortl,

land1 LIKE lfa1-land1,

akont LIKE lfb1-akont,

fdgrv LIKE lfb1-fdgrv,

waers LIKE lfm1-waers,

END OF itab.

DATA : BEGIN OF jtab OCCURS 0,

j1 TYPE i,

banks LIKE lfbk-banks,

bankl LIKE lfbk-bankl,

bankn LIKE lfbk-bankn,

END OF jtab.

DATA : cnt(4) TYPE n.

DATA : fdt(20) TYPE c.

DATA : c TYPE i.

INCLUDE bdcrecx1.

START-OF-SELECTION.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'C:\first1.txt'

filetype = 'DAT'

TABLES

data_tab = itab.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'C:\second.txt'

filetype = 'DAT'

TABLES

data_tab = jtab.

LOOP AT itab.

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'

itab-lifnr.

PERFORM bdc_field USING 'RF02K-BUKRS'

itab-bukrs.

PERFORM bdc_field USING 'RF02K-EKORG'

itab-ekorg.

PERFORM bdc_field USING 'RF02K-KTOKK'

itab-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-ANRED'

itab-anred.

PERFORM bdc_field USING 'LFA1-NAME1'

itab-name1.

PERFORM bdc_field USING 'LFA1-SORTL'

itab-sortl.

PERFORM bdc_field USING 'LFA1-LAND1'

itab-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-BANKN(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

cnt = 0.

LOOP AT jtab WHERE j1 = itab-i1.

cnt = cnt + 1.

CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.

PERFORM bdc_field USING fdt jtab-banks.

CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.

PERFORM bdc_field USING fdt jtab-bankl.

CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.

PERFORM bdc_field USING fdt jtab-bankn.

IF cnt = 5.

cnt = 0.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKN(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

ENDIF.

ENDLOOP.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

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'

itab-akont.

PERFORM bdc_field USING 'LFB1-FDGRV'

itab-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'

itab-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'.

ENDLOOP.

PERFORM close_group.

If useful reward.

Vasanth

Read only

Former Member
0 Likes
694

You have to take into account only the number of lines that are visible in recording mode only.

Take 7 as the number of visible rows.

Also do the following additions to your code.

data xctuparams like ctu_params.

xctuparams-DISMODE= 'N'.

xctuparams-updmode = 'S'.

<b>xctuparams-DEFSIZE = 'X'.</b>

call transaction <tcode> using bdcdata options from xctuparams.

refer this example for bdc using table control:

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

Regards,

ravi

Read only

Former Member
0 Likes
694

Hi

Didnt get you..

Why do you minimize while doing a bdc?

You can use Options to set standard screen resolution while calling a BDC...

DATA opt TYPE ctu_params.

CTU_PARAMS

-


DISMODE

UPDMODE

CATTMODE

DEFSIZE

RACOMMIT

NOBINPT

NOBIEND

*- Set the screen size to default for BDC

opt-defsize = 'X'.

**- Set mode for call trxn

opt-dismode = 'N'.

CALL TRANSACTION 'VL02N'

USING bdcdata OPTIONS FROM opt

MODE l_mode

UPDATE l_sync

MESSAGES INTO messtab.

Regards,

Raj