cancel
Showing results for 
Search instead for 
Did you mean: 

BDC for Customer Master upload

Former Member
0 Kudos

Hi Experts,

I would like to know how to handle the table controls in bdc. Here Iam pasting the code which i got after recording of XD01 transaction. Here I pasted the code which I wrote.please tell me how to add table control logic for the fields knva-ablad,knva-knfak,knvi-taxkd.

report ZSD_XD01BDC

no standard page heading line-size 255.

TYPE-POOLS: truxs.

include bdcrecx1.

data:begin of it_xd01 occurs 0,

kunnr(16) type c,

BUKRS(4) TYPE C,

VKORG(4) TYPE C,

VTWEG(2) TYPE C,

SPART(2) TYPE C,

KTOKD(4) TYPE C,

ANRED(15) TYPE C,

NAME1(35) TYPE C,

SORTL(10) TYPE C,

STRAS(35) TYPE C,

ORT01(35) TYPE C,

PSTLZ(10) TYPE C,

ORT02(35) TYPE C,

LAND1(3) TYPE C,

SPRAS(3) TYPE C,

ABLAD(25) TYPE C,

KNFAK(2) TYPE C,

AKONT(10) TYPE C,

ZUAWA(3) TYPE C,

  • KZAZU(1) TYPE C,

VSBED(2) TYPE C,

VWERK(4) TYPE C,

ANTLF(1) TYPE C,

TAXKD(1) TYPE C,

END OF IT_XD01.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS : p_file TYPE rlgrap-filename OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

DATA: v_raw TYPE truxs_t_text_data,

v_kstar type KSTAR.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

file_name = p_file.

start-of-selection.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

  • I_FIELD_SEPERATOR =

  • I_LINE_HEADER =

i_tab_raw_data = v_raw

i_filename = p_file

tables

i_tab_converted_data = it_xd01

  • EXCEPTIONS

  • CONVERSION_FAILED = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

start-of-selection.

perform open_group.

loop at it_xd01.

perform bdc_dynpro using 'SAPMF02D' '0100'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-KTOKD'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

IT_XD01-KUNNR..

perform bdc_field using 'RF02D-BUKRS'

IT_XD01-BUKRS..

perform bdc_field using 'RF02D-VKORG'

IT_XD01-VKORG.

perform bdc_field using 'RF02D-VTWEG'

IT_XD01-VTWEG.

perform bdc_field using 'RF02D-SPART'

IT_XD01-SPART.

perform bdc_field using 'RF02D-KTOKD'

IT_XD01-KTOKD.

perform bdc_dynpro using 'SAPMF02D' '0110'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-SPRAS'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KNA1-ANRED'

IT_XD01-ANRED.

perform bdc_field using 'KNA1-NAME1'

IT_XD01-NAME1.

perform bdc_field using 'KNA1-SORTL'

IT_XD01-SORTL.

perform bdc_field using 'KNA1-STRAS'

IT_XD01-STRAS.

perform bdc_field using 'KNA1-ORT01'

IT_XD01-ORT01.

perform bdc_field using 'KNA1-PSTLZ'

IT_XD01-PSTLZ.

perform bdc_field using 'KNA1-ORT02'

IT_XD01-ORT02.

perform bdc_field using 'KNA1-LAND1'

IT_XD01-LAND1.

perform bdc_field using 'KNA1-SPRAS'

IT_XD01-SPRAS.

perform bdc_dynpro using 'SAPMF02D' '0120'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-LIFNR'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02D' '0125'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-NIELS'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02D' '0130'.

perform bdc_field using 'BDC_CURSOR'

'KNBK-BANKS(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_dynpro using 'SAPMF02D' '0340'.

perform bdc_field using 'BDC_CURSOR'

'KNVA-KNFAK(15)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

***changes****

perform bdc_field using 'KNVA-ABLAD(01)'

it_xd01-ablad.

perform bdc_field using 'KNVA-ABLAD(02)'

'point2'.

perform bdc_field using 'KNVA-ABLAD(03)'

'point3'.

perform bdc_field using 'KNVA-ABLAD(04)'

'point4'.

perform bdc_field using 'KNVA-ABLAD(05)'

'point5'.

perform bdc_field using 'KNVA-ABLAD(06)'

'point6'.

perform bdc_field using 'KNVA-ABLAD(07)'

'point7'.

perform bdc_field using 'KNVA-ABLAD(08)'

'point8'.

perform bdc_field using 'KNVA-ABLAD(09)'

'point9'.

perform bdc_field using 'KNVA-ABLAD(10)'

'point10'.

perform bdc_field using 'KNVA-ABLAD(11)'

'point11'.

perform bdc_field using 'KNVA-ABLAD(12)'

'point12'.

perform bdc_field using 'KNVA-ABLAD(13)'

'point13'.

perform bdc_field using 'KNVA-ABLAD(14)'

'point14'.

perform bdc_field using 'KNVA-ABLAD(15)'

'point15'.

perform bdc_field using 'KNVA-KNFAK(01)'

it_xd01-knfak.

perform bdc_field using 'KNVA-KNFAK(02)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(03)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(04)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(05)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(06)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(07)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(08)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(09)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(10)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(11)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(12)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(13)'

'in'.

perform bdc_field using 'KNVA-KNFAK(14)'

'IN'.

perform bdc_field using 'KNVA-KNFAK(15)'

'in'.

perform bdc_dynpro using 'SAPMF02D' '0340'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-KUNNR'.

perform bdc_field using 'BDC_OKCODE'

'=P+'.

perform bdc_dynpro using 'SAPMF02D' '0340'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-KUNNR'.

perform bdc_field using 'BDC_OKCODE'

'=UPDA'.

perform bdc_dynpro using 'SAPMF02D' '0210'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-ZUAWA'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KNB1-AKONT'

IT_XD01-AKONT.

perform bdc_field using 'KNB1-ZUAWA'

IT_XD01-ZUAWA.

perform bdc_dynpro using 'SAPMF02D' '0315'.

perform bdc_field using 'BDC_CURSOR'

'KNVV-VWERK'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KNVV-KZAZU'

'X'.

perform bdc_field using 'KNVV-VSBED'

IT_XD01-VSBED.

perform bdc_field using 'KNVV-VWERK'

IT_XD01-Vwerk.

perform bdc_field using 'KNVV-ANTLF'

IT_XD01-ANTLF.

perform bdc_dynpro using 'SAPMF02D' '1350'.

perform bdc_field using 'KNVI-TAXKD(01)'

it_xd01-taxkd.

perform bdc_field using 'KNVI-TAXKD(02)'

'0'.

perform bdc_field using 'KNVI-TAXKD(03)'

'0'.

perform bdc_field using 'KNVI-TAXKD(04)'

'0'.

perform bdc_transaction using 'XD01'.

endloop.

perform close_group.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

the LSMW sound a good option especially to investigate how to populate the batch input data.

From a code reading perspective, you may also look at function module DEBITOR_BDCDATA.

There you will see how to populate most of the screens and especially the one with table controls.

The main trouble with batch input and table control is that you cannot predict at which line a record will be located. Also there is the trouble with the visible and non visible lines.

From a general explanation, for each table control screen there is a popup screen.

The popup screen is used to select a record and put it at the first line of the table control.

Therefore you may process as many records as you want by implementing a simple loop.

  • loop

  • trigger the popup

  • fill the popup (with the key info of the record line to select)

  • validate the popup

==> the table control will receives the data at the first line

  • maintain the changes or creation at the first line of the table control

*endloop

In general for the customer master data, the popup screen number for the selection start with 1 and the rest is the table control screen number

eg: if the screen that contains the table control is 0361.

The selection screen is 1361.

Good luck

BR

Alain

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Sekhar,

In your code, you make assumption that there are 15 rows in the table control, but the rows in table control may vary, it depends on windows size.

You can try another way,

1. put cursor in first row.

2. push the "Insert row" button,

3. input data into the first row

4. repeat step 1 to 3 for other items.

One problem is the item sequence may opposite to source data, if then, you can reverse the sequence of source item data before.

Regards,

Brown

Former Member
0 Kudos

for this you can use simaple and best method is LSMW

Batch Program, Object is 0050(Customer master) and Method is 0002.