Application Development 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: 

in BDC'S how to handle Table control

Former Member
0 Kudos

Hi,

I want to know the concept and code for BDC's in Table control steps(MM01,VA01) and coding.Please its very Urgent.

5 REPLIES 5

Former Member
0 Kudos

hi raghavendra,

Welcome to SDN. go thro this link.

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

Regards...

Arun.

Reward points if useful.

Former Member
0 Kudos

hi Raghavendra,

In most of the screens where Table controls are used, there will be a button to

add next record (mostly, a button with icon + sign) or there will be a button to

scroll to next record (a button with icon down arrow).

When you record the transaction, enter one record, then click the next record

button, enter next record, click the next record button ..etc...so that this event

will be captured and that you will require to enter only in the 1st row, always

while executing the BDC.

Hope this helps,

Sajan Joseph.

Former Member
0 Kudos

Hi Raghavendra,

Go through this program mm01.

rePORT ymmbdcmm01

NO STANDARD PAGE HEADING LINE-SIZE 255.

&----


*& Table Declarations *

&----


TABLES:rmmg1,makt,mara,mvke, marc,mbew,t100.

TYPE-POOLS: truxs.

DATA: it_raw TYPE truxs_t_text_data.

&----


*& Data Declarations *

&----


DATA:

BEGIN OF t_data OCCURS 0,

data TYPE string,

END OF t_data.

DATA:BEGIN OF it_mess OCCURS 0,

msgtyp(5),

lms(200),

msgv1(50),

END OF it_mess.

DATA: BEGIN OF it_itab OCCURS 0,

matnr TYPE rmmg1-matnr,

mbrsh TYPE rmmg1-mbrsh,

mtart TYPE rmmg1-mtart,

werks TYPE rmmg1-werks,

lgort TYPE rmmg1-lgort,

vkorg TYPE rmmg1-vkorg,

vtweg TYPE rmmg1-vtweg,

maktx TYPE makt-maktx,

meins TYPE mara-meins,

matkl TYPE mara-matkl,

spart TYPE mara-spart,

  • GEWEI TYPE MARA-GEWEI,

dwerk TYPE mvke-dwerk,

versg TYPE mvke-versg,

mtpos TYPE mvke-mtpos,

mtvfp TYPE marc-mtvfp,

tragr TYPE mara-tragr,

ladgr TYPE marc-ladgr,

sernp TYPE marc-sernp,

txline(25), "added

  • kordb ,

mprof TYPE mara-mprof,

ekgrp TYPE marc-ekgrp,

dismm TYPE marc-dismm,

dispo TYPE marc-dispo,

disls TYPE marc-disls,

mabst(13) TYPE c,

beskz TYPE marc-beskz,

sobsl TYPE marc-sobsl,

lgpro TYPE marc-lgpro,

dzeit TYPE c,

plifz(3) TYPE c,

webaz TYPE c,

fhori TYPE marc-fhori,

eisbe TYPE c,

strgr(2) TYPE c,

vrmod TYPE c,

vint1(3),

vint2(3),

wzeit(3),

sbdkz TYPE marc-sbdkz,

bklas TYPE mbew-bklas,

  • vprsv TYPE mbew-vprsv,

verpr(11),

  • peinh TYPE c,

ekalr TYPE mbew-ekalr,

losgr TYPE c,

RGEKZ(1),

fevor(3),

END OF it_itab.

----


*decl of internal table of table control for BDCDATA & BDCMSGCOLL

----


DATA : BEGIN OF bdcdata OCCURS 0.

INCLUDE STRUCTURE bdcdata.

DATA: END OF bdcdata.

DATA:it_msgtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE,

it_msgtab1 TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.

DATA : fld(50) TYPE c,

cnt(2) TYPE n,

l_mstring(150).

START-OF-SELECTION.

&----


*& File uploading from xlsheet to sap *

&----


CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

  • I_FIELD_SEPERATOR =

i_line_header = 'X'

i_tab_raw_data = it_raw

i_filename = 'C:\Documents and Settings\sapthamm\Desktop\mm02.xls'

TABLES

i_tab_converted_data = it_itab

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.

&----


*& Splitting the Internal Table *

&----


LOOP AT t_data.

SPLIT t_data-data AT cl_abap_char_utilities=>horizontal_tab INTO

it_itab-matnr

it_itab-mbrsh

it_itab-mtart

it_itab-werks

it_itab-lgort

it_itab-vkorg

it_itab-vtweg

it_itab-maktx

it_itab-meins

it_itab-matkl

it_itab-spart

  • it_itab-GEWEI

it_itab-dwerk

it_itab-versg

it_itab-mtpos

it_itab-mtvfp

it_itab-tragr

it_itab-ladgr

it_itab-sernp

it_itab-mprof

it_itab-ekgrp

it_itab-dismm

it_itab-dispo

it_itab-disls

it_itab-mabst

it_itab-beskz

it_itab-sobsl

it_itab-lgpro

it_itab-dzeit

it_itab-plifz

it_itab-webaz

it_itab-fhori

it_itab-eisbe

it_itab-strgr

it_itab-vrmod

it_itab-vint1

it_itab-vint2

it_itab-wzeit

it_itab-sbdkz

it_itab-bklas

  • it_itab-vprsv

  • it_itab-peinh

it_itab-ekalr

it_itab-losgr

.

APPEND it_itab.

CLEAR: it_itab,

t_data-data.

ENDLOOP.

*perform open_dataset using dataset.

*perform open_group.

*

*do.

*

*read dataset dataset into it_itab.

*if sy-subrc <> 0. exit. endif.

&----


*& it_itabing of Material Type-HALB *

&----


LOOP AT it_itab.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RMMG1-MATNR'

it_itab-matnr.

PERFORM bdc_field USING 'RMMG1-MBRSH'

it_itab-mbrsh.

PERFORM bdc_field USING 'RMMG1-MTART'

it_itab-mtart.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(12)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(13)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(14)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(15)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(17)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(09)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-VTWEG'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'RMMG1-WERKS'

it_itab-werks.

PERFORM bdc_field USING 'RMMG1-LGORT'

it_itab-lgort.

PERFORM bdc_field USING 'RMMG1-VKORG'

it_itab-vkorg.

PERFORM bdc_field USING 'RMMG1-VTWEG'

it_itab-vtweg.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-SPART'.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'MARA-GEWEI'

'kg'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'MVKE-DWERK'

it_itab-dwerk.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MVKE-SKTOF'

'X'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MG03STEUER-TAXKM(02)'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(01)'

'0'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(02)'

'1'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4200'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

*perform bdc_field using 'MAKT-MAKTX'

  • it_itab-MAKTX_040.

*perform bdc_field using 'BDC_CURSOR'

  • 'MG03STEUER-TAXKM(05)'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(03)'

'1'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(04)'

'1'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(05)'

'0'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'MVKE-DWERK'

it_itab-dwerk.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MVKE-SKTOF'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MVKE-MTPOS'.

PERFORM bdc_field USING 'MVKE-VERSG'

it_itab-versg.

PERFORM bdc_field USING 'MVKE-MTPOS'

it_itab-mtpos.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-GEWEI'

'KG'.

PERFORM bdc_field USING 'MARC-MTVFP'

it_itab-mtvfp.

PERFORM bdc_field USING 'MARA-TRAGR'

it_itab-tragr.

PERFORM bdc_field USING 'MARC-LADGR'

it_itab-ladgr.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SERNP'.

PERFORM bdc_field USING 'MARC-SERNP'

it_itab-sernp.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=LTEX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSTXT-TXLINE(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=TXVB'.

PERFORM bdc_field USING 'RSTXT-TXLINE(02)'

'pcb assembly'.

PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSTXT-TXLINE(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=TXBA'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SP09'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARC-EKGRP'

it_itab-ekgrp.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MARC-KORDB'

'X'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-MPROF'.

PERFORM bdc_field USING 'MARA-MPROF'

it_itab-mprof.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARC-EKGRP'

it_itab-ekgrp.

PERFORM bdc_field USING 'MARC-DISMM'

it_itab-dismm.

PERFORM bdc_field USING 'MARC-DISPO'

it_itab-dispo.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-MABST'.

PERFORM bdc_field USING 'MARC-DISLS'

it_itab-disls.

PERFORM bdc_field USING 'MARC-MABST'

it_itab-mabst.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARC-BESKZ'

it_itab-beskz.

PERFORM bdc_field USING 'MARC-SOBSL'

it_itab-sobsl.

PERFORM bdc_field USING 'MARC-LGPRO'

it_itab-lgpro.

if it_itab-sernp = 'TJSL'.

PERFORM bdc_field USING 'MARC-RGEKZ'

''.

ELSE.

PERFORM bdc_field USING 'MARC-RGEKZ'

'1'.

ENDIF.

PERFORM bdc_field USING 'MARC-DZEIT'

it_itab-dzeit.

PERFORM bdc_field USING 'MARC-PLIFZ'

it_itab-plifz.

PERFORM bdc_field USING 'MARC-WEBAZ'

it_itab-webaz.

PERFORM bdc_field USING 'MARC-FHORI'

it_itab-fhori.

PERFORM bdc_field USING 'MARC-EISBE'

it_itab-eisbe.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARC-PERKZ'

'M'.

PERFORM bdc_field USING 'MARC-STRGR'

it_itab-strgr.

PERFORM bdc_field USING 'MARC-VRMOD'

it_itab-vrmod.

PERFORM bdc_field USING 'MARC-VINT1'

it_itab-vint1.

PERFORM bdc_field USING 'MARC-VINT2'

it_itab-vint2.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-WZEIT'.

PERFORM bdc_field USING 'MARC-MTVFP'

it_itab-mtvfp.

PERFORM bdc_field USING 'MARC-WZEIT'

it_itab-wzeit.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SBDKZ'.

PERFORM bdc_field USING 'MARC-SBDKZ'

it_itab-sbdkz.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARC-FEVOR'

'001'.

PERFORM bdc_field USING 'MARC-LGPRO'

it_itab-lgpro.

PERFORM bdc_field USING 'MARC-SERNP'

it_itab-sernp.

PERFORM bdc_field USING 'MARC-DZEIT'

it_itab-dzeit.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

*perform bdc_field using 'MARA-IPRKZ'

  • it_itab-IPRKZ.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-GEWEI'

'KG'.

PERFORM bdc_field USING 'MARC-SERNP'

it_itab-sernp.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-VPRSV'.

PERFORM bdc_field USING 'MBEW-BKLAS'

it_itab-bklas.

*perform bdc_field using 'MBEW-EKLAS'

  • it_itab-EKLAS.

PERFORM bdc_field USING 'MBEW-VPRSV'

'v'.

PERFORM bdc_field USING 'MBEW-PEINH'

'1'.

perform bdc_field using 'MBEW-VERPR'

it_itab-VERPR.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MBEW-EKALR'

'X'.

PERFORM bdc_field USING 'MARC-AWSLS'

'000001'.

PERFORM bdc_field USING 'MARC-LOSGR'

'1'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-ZPLPR'.

*perform bdc_field using 'MBEW-ZPLPR'

  • '6000'.

PERFORM bdc_field USING 'MBEW-BKLAS'

it_itab-bklas.

PERFORM bdc_field USING 'MBEW-VPRSV'

'V'.

PERFORM bdc_field USING 'MBEW-PEINH'

'1'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

CALL TRANSACTION 'MM01' USING bdcdata MODE 'A'

UPDATE 'S'

MESSAGES INTO it_msgtab.

CLEAR bdcdata[].

CLEAR it_itab.

PERFORM error.

ENDLOOP.

&----


*& Declaration of Error Handling *

&----


  • i

  • it_msgtab1-msgv1 = it_msgtab-msgv1.

  • it_msgtab1-msgv2 = it_msgtab-msgv2.

  • it_msgtab1-msgv3 = it_msgtab-msgv3.

  • APPEND it_msgtab1.

  • ENDLOOP.

----


download error message to a file by using function module

----


CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

filename = 'C:\Documents and Settings\sapthamm\Desktop\error.xls'

filetype = 'ASC'

  • APPEND = ' '

write_field_separator = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • WRITE_EOL = ABAP_TRUE

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = it_mess

  • FIELDNAMES =

  • EXCEPTIONS

  • FILE_WRITE_ERROR = 1

  • NO_BATCH = 2

  • GUI_REFUSE_FILETRANSFER = 3

  • INVALID_TYPE = 4

  • NO_AUTHORITY = 5

  • UNKNOWN_ERROR = 6

  • HEADER_NOT_ALLOWED = 7

  • SEPARATOR_NOT_ALLOWED = 8

  • FILESIZE_NOT_ALLOWED = 9

  • HEADER_TOO_LONG = 10

  • DP_ERROR_CREATE = 11

  • DP_ERROR_SEND = 12

  • DP_ERROR_WRITE = 13

  • UNKNOWN_DP_ERROR = 14

  • ACCESS_DENIED = 15

  • DP_OUT_OF_MEMORY = 16

  • DISK_FULL = 17

  • DP_TIMEOUT = 18

  • FILE_NOT_FOUND = 19

  • DATAPROVIDER_EXCEPTION = 20

  • CONTROL_FLUSH_ERROR = 21

  • OTHERS = 22

.

IF sy-subrc <> 0.

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

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

ENDIF.

&----


*& Form BDC_DYNPRO

&----


  • text

----


  • -->PROGRAM text

  • -->DYNPRO text

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM bdc_field USING fnam fval.

  • IF FVAL <> .

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

  • ENDIF.

ENDFORM. "BDC_FIELD

form error.

LOOP AT it_msgtab.

IF it_msgtab-msgtyp = 'E'.

SELECT SINGLE * FROM t100 WHERE sprsl = it_msgtab-msgspra

AND arbgb = it_msgtab-msgid

AND msgnr = it_msgtab-msgnr.

IF sy-subrc = 0.

l_mstring = t100-text.

IF l_mstring CS '&1'.

REPLACE '&1' WITH it_msgtab-msgv1 INTO l_mstring.

REPLACE '&2' WITH it_msgtab-msgv2 INTO l_mstring.

REPLACE '&3' WITH it_msgtab-msgv3 INTO l_mstring.

REPLACE '&4' WITH it_msgtab-msgv4 INTO l_mstring.

ELSE.

REPLACE '&' WITH it_msgtab-msgv1 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv2 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv3 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv4 INTO l_mstring.

ENDIF.

CONDENSE l_mstring.

it_mess-msgtyp = it_msgtab-msgtyp.

it_mess-lms = l_mstring.

it_mess-msgv1 = it_msgtab-msgv1.

APPEND it_mess.

  • WRITE: / it_msgtab-msgtyp, l_mstring(150).

ELSE.

  • WRITE: / it_msgtab.

it_mess-msgtyp = it_msgtab-msgtyp.

it_mess-lms = l_mstring.

it_mess-msgv1 = it_msgtab-msgv1.

APPEND it_mess.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM.

  • LOOP AT it_msgtab.

Rewords some points.

rgds,

P.Naganjana reddy

Former Member
0 Kudos

check below example which handles table control in BDC...

REPORT Y730_BDC5 .

*HANDLING TABLE CONTROL IN BDC

DATA : BEGIN OF IT_DUMMY OCCURS 0,

DUMMY(100) TYPE C,

END OF IT_DUMMY.

DATA : BEGIN OF IT_XK01 OCCURS 0,

LIFNR(10) TYPE C,

BUKRS(4) TYPE C,

EKORG(4) TYPE C,

KTOKK(4) TYPE C,

NAME1(30) TYPE C,

SORTL(10) TYPE C,

LAND1(3) TYPE C,

SPRAS(2) TYPE C,

AKONT(6) TYPE C,

FDGRV(2) TYPE C,

WAERS(3) TYPE C,

END OF IT_XK01,

BEGIN OF IT_BANK OCCURS 0,

BANKS(3) TYPE C,

BANKL(10) TYPE C,

BANKN(10) TYPE C,

KOINH(30) TYPE C,

LIFNR(10) TYPE C,

END OF IT_BANK.

DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,

IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

FILENAME = 'C:\VENDOR.TXT'

FILETYPE = 'ASC'

TABLES

DATA_TAB = IT_DUMMY.

LOOP AT IT_DUMMY.

IF IT_DUMMY-DUMMY+0(2) = '11'.

IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).

IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).

IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).

IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).

IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).

IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).

IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).

IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).

IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).

IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).

IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).

APPEND IT_XK01.

ELSE.

IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).

IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).

IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).

IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).

IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).

APPEND IT_BANK.

ENDIF.

ENDLOOP.

LOOP AT IT_XK01.

REFRESH IT_BDCDATA.

perform bdc_dynpro using 'SAPMF02K' '0100'.

perform bdc_field using 'BDC_CURSOR'

'RF02K-REF_LIFNR'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02K-LIFNR'

IT_XK01-LIFNR.

perform bdc_field using 'RF02K-BUKRS'

IT_XK01-BUKRS.

perform bdc_field using 'RF02K-EKORG'

IT_XK01-EKORG.

perform bdc_field using 'RF02K-KTOKK'

IT_XK01-KTOKK.

perform bdc_dynpro using 'SAPMF02K' '0110'.

perform bdc_field using 'BDC_CURSOR'

'LFA1-TELX1'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'LFA1-NAME1'

IT_XK01-NAME1.

perform bdc_field using 'LFA1-SORTL'

IT_XK01-SORTL.

perform bdc_field using 'LFA1-LAND1'

IT_XK01-LAND1.

perform bdc_field using 'LFA1-SPRAS'

IT_XK01-SPRAS.

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-KOINH(02)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

DATA : FNAM(20) TYPE C,

IDX TYPE C.

MOVE 1 TO IDX.

LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.

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

perform bdc_field using FNAM

IT_BANK-BANKS.

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

perform bdc_field using FNAM

IT_BANK-BANKL.

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

perform bdc_field using FNAM

IT_BANK-BANKN.

CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.

perform bdc_field using FNAM

IT_BANK-KOINH.

IDX = IDX + 1.

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'

IT_XK01-AKONT.

perform bdc_field using 'LFB1-FDGRV'

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

IT_XK01-WAERS.

perform bdc_dynpro using 'SAPMF02K' '0320'.

perform bdc_field using 'BDC_CURSOR'

'WYT3-PARVW(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

CALL TRANSACTION 'XK01' USING IT_BDCDATA

MODE 'A'

UPDATE 'S'

MESSAGES INTO IT_BDCMSGCOLL.

ENDLOOP.

FORM BDC_DYNPRO USING PROG SCR.

CLEAR IT_BDCDATA.

IT_BDCDATA-PROGRAM = PROG.

IT_BDCDATA-DYNPRO = SCR.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.

CLEAR IT_BDCDATA.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

ENDFORM.

Former Member
0 Kudos

Hi Ragha vendra,

syntax:

CONTROLS 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

perform open_group.

loop at it_record.

refresh bdcdata.

refresh: it_knvk1,it_knvk2,it_knvk3,it_knvk4,it_knvk5.

split it_record-anred at ',' into table it_knvk1.

split it_record-name1 at ',' into table it_knvk2.

split it_record-namev at ',' into table it_knvk3.

split it_record-telf1 at ',' into table it_knvk4.

split it_record-abtnr at ',' into table it_knvk5.

screen 101

perform bdc_dynpro using 'SAPMF02D' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-D0360'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

it_record-kunnr.

perform bdc_field using 'RF02D-D0360'

it_record-d0360.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-ABTNR(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

*perform bdc_field using 'KNVK-ANRED(01)'

  • record-ANRED_01_003.

*perform bdc_field using 'KNVK-NAMEV(01)'

  • record-NAMEV_01_004.

*perform bdc_field using 'KNVK-NAME1(01)'

  • record-NAME1_01_005.

*perform bdc_field using 'KNVK-TELF1(01)'

  • record-TELF1_01_006.

*perform bdc_field using 'KNVK-ABTNR(01)'

  • record-ABTNR_01_007.

move 1 to cnt.

loop at it_knvk1 .

concatenate 'knvk-anred( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk1-anred.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk2 .

concatenate 'knvk-name1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk2-name1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk3 .

concatenate 'knvk-namev( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk3-namev.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk4 .

concatenate 'knvk-telf1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk4-telf1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk5 .

concatenate 'knvk-abtnr( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk5-abtnr.

cnt = cnt + 1.

endloop.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_transaction using 'XD02'.

endloop.

perform close_group.

Hope this resolves your query.

Reward all the helpful answers.

Regards