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

Former Member
0 Likes
843

hi experts

how to upload data through table control containig transactions. plese give me brief code.

thanks in advance

radhakrishna.

3 REPLIES 3
Read only

Former Member
0 Likes
667

hi,

check this code....

REPORT ZISU_BP_CREATE.

TYPES: BEGIN OF TY_DATA,

CREATION_GROUP TYPE BU_GROUP,

CREATION_NUM TYPE PARTNER,

TITLE_MEDI TYPE AD_TITLE_T,

NAME_FIRST TYPE BU_NAMEP_F,

NAME_LAST TYPE BU_NAMEP_L,

NAME1_TEXT TYPE BU_NAME1TX,

NAMCOUNTRY TYPE AD_NAMCTRY,

BU_SORT1_TXT TYPE BU_SORT1,

BU_SORT2_TXT TYPE BU_SORT2,

STREET TYPE AD_STREET,

HOUSE_NUM1 TYPE AD_HSNM1,

POST_CODE1 TYPE AD_PSTCD1,

CITY1 TYPE AD_CITY1,

STR_SUPPL1 TYPE AD_STRSPP1,

STR_SUPPL2 TYPE AD_STRSPP2,

STR_SUPPL3 TYPE AD_STRSPP3,

LOCATION TYPE AD_LCTN,

COUNTR TYPE LAND1,

REGION TYPE REGIO,

TIME_ZONE TYPE AD_TZONE,

REGIOGROUP TYPE REGIOGROUP,

TEL_NUMBER TYPE AD_TLNMBR,

TEL_EXTENS TYPE AD_TLXTNS,

MOB_NUMBER TYPE AD_TLNMBR,

FAX_NUMBER1 TYPE AD_FXNMBR,

FAX_NUMBER2 TYPE AD_FXXTNS,

SMTP_ADDR TYPE AD_SMTPADR,

ADDR_VALID_FROM TYPE CHAR10, "BU_DATFROM,

ADDR_VALID_TO TYPE CHAR10, "BU_DATTO,

XSEXM TYPE BU_XSEXM,

XSEXF TYPE BU_XSEXF,

NATI0 TYPE BU_NATIO,

MARST TYPE BU_MARST,

JOBGR TYPE BU_JOBGR,

BIRTHDT TYPE BU_BIRTHDT,

BIRTHPL TYPE BU_BIRTHPL,

ITYPE TYPE BU_ID_TYPE,

IDNUMBER TYPE BU_ID_NUMBER,

MUSTER_KUN TYPE MUSTER_KUN,

WAKLASS TYPE WAKLASS,

PLACE_EMPL TYPE PLACE_EMPL,

VIP TYPE E_VIP,

BPKIND TYPE BU_BPKIND,

AUGRP TYPE BU_AUGRP,

SOURCE1 TYPE BU_SOURCE,

CONTACT TYPE BU_CONTACT,

END OF TY_DATA.

DATA: RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.

DATA: FILENAME TYPE STRING.

DATA: W_A TYPE C VALUE 'E'.

DATA: A TYPE CHAR2,

B TYPE CHAR2,

C TYPE CHAR4.

DATA: WA_PDATA TYPE BAPIISUBPD,

WA_PDATAX TYPE BAPIISUBPDX.

DATA: IT_ADATA TYPE STANDARD TABLE OF BAPIISUBPA WITH HEADER LINE,

IT_ADATAX TYPE STANDARD TABLE OF BAPIISUBPAX WITH HEADER LINE.

DATA: IT_PHONE TYPE STANDARD TABLE OF BAPIADTEL WITH HEADER LINE,

IT_EMAIL TYPE STANDARD TABLE OF BAPIADSMTP WITH HEADER LINE.

DATA: IT_DATA TYPE STANDARD TABLE OF TY_DATA,

WA_DATA TYPE TY_DATA.

DATA: MESSTAB TYPE STANDARD TABLE OF BDCMSGCOLL.

DATA: BDCDATA TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.

DATA: PARTNER TYPE BU_PARTNER.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.

PARAMETERS P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

PROGRAM_NAME = SYST-REPID

DYNPRO_NUMBER = SYST-DYNNR

CHANGING

FILE_NAME = P_FILE

EXCEPTIONS

MASK_TOO_LONG = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

MESSAGE E999(PP) WITH 'INVALID FILENAME!!!'.

ENDIF.

START-OF-SELECTION.

FILENAME = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FILENAME

  • FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

TABLES

DATA_TAB = IT_DATA

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 E999(PP) WITH 'ERROR IN UPLOADING FILE'.

ENDIF.

LOOP AT IT_DATA INTO WA_DATA.

CLEAR WA_PDATA.

CLEAR WA_PDATAX.

REFRESH IT_ADATA.

REFRESH IT_ADATAX.

REFRESH IT_PHONE.

REFRESH IT_EMAIL.

REFRESH BDCDATA.

CLEAR MESSTAB.

SPLIT WA_DATA-ADDR_VALID_FROM AT '.' INTO A B C.

CONCATENATE C B A INTO WA_DATA-ADDR_VALID_FROM.

SPLIT WA_DATA-ADDR_VALID_TO AT '.' INTO A B C.

CONCATENATE C B A INTO WA_DATA-ADDR_VALID_TO.

WA_PDATA-BPKIND = WA_DATA-BPKIND.

WA_PDATA-AUTH_GROUP = WA_DATA-AUGRP.

WA_PDATA-TITLE = WA_DATA-TITLE_MEDI.

WA_PDATA-NAME_FIRST = WA_DATA-NAME_FIRST.

WA_PDATA-NAME_LAST = WA_DATA-NAME_LAST.

WA_PDATA-NAME1_TEXT = WA_DATA-NAME1_TEXT.

WA_PDATA-NAMCOUNTRY = WA_DATA-NAMCOUNTRY.

WA_PDATA-BU_SORT1 = WA_DATA-BU_SORT1_TXT.

WA_PDATA-BU_SORT2 = WA_DATA-BU_SORT2_TXT.

WA_PDATA-SEX_M = WA_DATA-XSEXM.

WA_PDATA-SEX_F = WA_DATA-XSEXF.

WA_PDATA-NATIO = WA_DATA-NATI0.

WA_PDATA-MARRIAGE_STATE = WA_DATA-MARST.

WA_PDATA-JOB_GROUP = WA_DATA-JOBGR.

WA_PDATA-BIRTHDATE = WA_DATA-BIRTHDT.

WA_PDATA-BIRTH_PLACE = WA_DATA-BIRTHPL.

WA_PDATA-EMPL_CLASS = WA_DATA-WAKLASS.

WA_PDATA-PLACE_EMPL = WA_DATA-PLACE_EMPL.

WA_PDATA-VIP = WA_DATA-VIP.

WA_PDATA-SOURCE = WA_DATA-SOURCE1.

WA_PDATA-CONTACTALLOWANCE = WA_DATA-CONTACT.

WA_PDATAX-TITLE = 'X'.

WA_PDATAX-NAME_FIRST = 'X'.

WA_PDATAX-NAME_LAST = 'X'.

WA_PDATAX-NAME1_TEXT = 'X'.

WA_PDATAX-NAMCOUNTRY = 'X'.

WA_PDATAX-BU_SORT1 = 'X'.

WA_PDATAX-BU_SORT2 = 'X'.

WA_PDATAX-SEX_M = 'X'.

WA_PDATAX-SEX_F = 'X'.

WA_PDATAX-NATIO = 'X'.

WA_PDATAX-MARRIAGE_STATE = 'X'.

WA_PDATAX-JOB_GROUP = 'X'.

WA_PDATAX-BIRTHDATE = 'X'.

WA_PDATAX-BIRTH_PLACE = 'X'.

WA_PDATAX-EMPL_CLASS = 'X'.

WA_PDATAX-PLACE_EMPL = 'X'.

WA_PDATAX-VIP = 'X'.

WA_PDATAX-SOURCE = 'X'.

WA_PDATAX-CONTACTALLOWANCE = 'X'.

IT_ADATA-STREET = WA_DATA-STREET.

IT_ADATA-HOUSE_NUM1 = WA_DATA-HOUSE_NUM1.

IT_ADATA-POST_CODE1 = WA_DATA-POST_CODE1.

IT_ADATA-CITY1 = WA_DATA-CITY1.

IT_ADATA-STR_SUPPL1 = WA_DATA-STR_SUPPL1.

IT_ADATA-STR_SUPPL2 = WA_DATA-STR_SUPPL2.

IT_ADATA-STR_SUPPL3 = WA_DATA-STR_SUPPL3.

IT_ADATA-LOCATION = WA_DATA-LOCATION.

IT_ADATA-COUNTRY = WA_DATA-COUNTR.

IT_ADATA-REGION = WA_DATA-REGION.

IT_ADATA-TIME_ZONE = WA_DATA-TIME_ZONE.

IT_ADATA-REGIOGROUP = WA_DATA-REGIOGROUP.

IT_ADATA-VALIDFROMDATE = WA_DATA-ADDR_VALID_FROM.

IT_ADATA-VALIDTODATE = WA_DATA-ADDR_VALID_TO.

IT_ADATA-TEL_NUMBER = WA_DATA-TEL_NUMBER.

IT_ADATA-TEL_EXTENS = WA_DATA-TEL_EXTENS.

IT_ADATA-FAX_NUMBER = WA_DATA-FAX_NUMBER1.

IT_ADATA-FAX_EXTENS = WA_DATA-FAX_NUMBER2.

IT_ADATA-VALIDFROMDATE = WA_DATA-ADDR_VALID_FROM.

IT_ADATA-VALIDTODATE = WA_DATA-ADDR_VALID_TO.

APPEND IT_ADATA.

IT_ADATAX-STREET = 'X'.

IT_ADATAX-HOUSE_NUM1 = 'X'.

IT_ADATAX-POST_CODE1 = 'X'.

IT_ADATAX-CITY1 = 'X'.

IT_ADATAX-STR_SUPPL1 = 'X'.

IT_ADATAX-STR_SUPPL2 = 'X'.

IT_ADATAX-STR_SUPPL3 = 'X'.

IT_ADATAX-LOCATION = 'X'.

IT_ADATAX-COUNTRY = 'X'.

IT_ADATAX-REGION = 'X'.

IT_ADATAX-TIME_ZONE = 'X'.

IT_ADATAX-REGIOGROUP = 'X'.

IT_ADATAX-VALIDFROMDATE = 'X'.

IT_ADATAX-VALIDTODATE = 'X'.

IT_ADATAX-TEL_NUMBER = 'X'.

IT_ADATAX-TEL_EXTENS = 'X'.

IT_ADATAX-FAX_NUMBER = 'X'.

IT_ADATAX-FAX_EXTENS = 'X'.

IT_ADATAX-VALIDFROMDATE = 'X'.

IT_ADATAX-VALIDTODATE = 'X'.

APPEND IT_ADATAX.

  • IT_PHONE-TELEPHONE = WA_DATA-TEL_NUMBER.

  • IT_PHONE-EXTENSION = WA_DATA-TEL_EXTENS.

  • IT_PHONE-VALID_FROM = WA_DATA-ADDR_VALID_FROM.

  • IT_PHONE-VALID_TO = WA_DATA-ADDR_VALID_TO.

*

  • APPEND IT_PHONE.

IT_EMAIL-E_MAIL = WA_DATA-SMTP_ADDR.

IT_EMAIL-VALID_FROM = WA_DATA-ADDR_VALID_FROM.

IT_EMAIL-VALID_TO = WA_DATA-ADDR_VALID_TO.

APPEND IT_EMAIL.

CALL FUNCTION 'BAPI_ISUPARTNER_CREATEFROMDATA'

EXPORTING

TYPE = '1'

GROUP = WA_DATA-CREATION_GROUP

REFCUSTOMER = WA_DATA-MUSTER_KUN

PARTNERDATA = WA_PDATA

PARTNERDATAX = WA_PDATAX

ACCEPT_ERROR = 'X'

IMPORTING

RETURN = RETURN

NEW_PARTNER = PARTNER

TABLES

TADDRESS = IT_ADATA

TADDRESSX = IT_ADATAX

TELEFONDATANONADDRESS = IT_PHONE

E_MAILDATANONADDRESS = IT_EMAIL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

  • CALLING BDC

IF PARTNER IS NOT INITIAL.

PERFORM BDC_DYNPRO USING 'SAPLBUS_LOCATOR' '3000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SCREEN_1100_TAB_01'.

PERFORM BDC_FIELD USING 'BUS_LOCA_SRCH01-SEARCH_TYPE'

'2'.

PERFORM BDC_FIELD USING 'BUS_LOCA_SRCH01-SEARCH_ID'

'1'.

PERFORM BDC_FIELD USING 'BUS_JOEL_SEARCH-PARTNER_NUMBER'

PARTNER.

PERFORM BDC_FIELD USING 'BUS_JOEL_MAIN-PARTNER_ROLE'

'MKK'.

PERFORM BDC_FIELD USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'

'000001'.

PERFORM BDC_DYNPRO USING 'SAPLBUS_LOCATOR' '3000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SCREEN_1100_TAB_03'.

PERFORM BDC_FIELD USING 'BUS_LOCA_SRCH01-SEARCH_TYPE'

'2'.

PERFORM BDC_FIELD USING 'BUS_LOCA_SRCH01-SEARCH_ID'

'1'.

PERFORM BDC_FIELD USING 'BUS_JOEL_SEARCH-PARTNER_NUMBER'

PARTNER.

PERFORM BDC_FIELD USING 'BUS_JOEL_MAIN-PARTNER_ROLE'

'MKK'.

PERFORM BDC_FIELD USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'

'000001'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'SZA7_D0400-MOB_NUMBER'.

PERFORM BDC_FIELD USING 'SZA7_D0400-MOB_NUMBER'

WA_DATA-MOB_NUMBER.

PERFORM BDC_DYNPRO USING 'SAPLBUS_LOCATOR' '3000'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=BUS_MAIN_SAVE'. " Here the code for tabel control changed....if u want to jump on next page define +p value to bdc_okcode.

Use p++ for last page

PERFORM BDC_FIELD USING 'BUS_LOCA_SRCH01-SEARCH_TYPE'

'2'.

PERFORM BDC_FIELD USING 'BUS_LOCA_SRCH01-SEARCH_ID'

'1'.

PERFORM BDC_FIELD USING 'BUS_JOEL_SEARCH-PARTNER_NUMBER'

PARTNER.

PERFORM BDC_FIELD USING 'BUS_JOEL_MAIN-PARTNER_ROLE'

'MKK'.

PERFORM BDC_FIELD USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'

'000001'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'GT_BUT0ID-IDNUMBER(01)'.

PERFORM BDC_FIELD USING 'GT_BUT0ID-TYPE(01)'

WA_DATA-ITYPE.

PERFORM BDC_FIELD USING 'GT_BUT0ID-IDNUMBER(01)'

WA_DATA-IDNUMBER.

CALL TRANSACTION 'FPP2' USING BDCDATA

MODE W_A UPDATE 'S' MESSAGES INTO MESSTAB.

WRITE:/ PARTNER , 'CREATED FOR ' , WA_DATA-NAME1_TEXT .

ELSE.

WRITE:/ WA_DATA-NAME1_TEXT , 'IS NOT CREATED !!!'.

READ TABLE RETURN WITH KEY TYPE = 'E'.

IF SY-SUBRC = 0.

WRITE:/ RETURN-MESSAGE.

ENDIF.

ENDIF.

CLEAR WA_DATA.

ENDLOOP.

END-OF-SELECTION.

LEAVE TO LIST-PROCESSING.

&----


*& 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 IS NOT INITIAL.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM. "BDC_FIELD

Rewards points

Read only

Former Member
0 Likes
667

hi,

Create Table Control

• Step 1 (Create new structure for table control)

Type is name of structure (ZTC_EKKO) and press create

• Step 2 (Create Program)

Goto transaction SE80(Object Navigator) -> Repository Browser -> Program.

Enter your program name, please ensure that is begins with SAPMZ…… as this is a module pool (dialog program).

Press enter to create, and press yes!

Ensure that you create a top include, and press Enter.

Accept the name created for the top include.

Press Enter.

Press Save

• Step 3 (Create TOP include)

Double click on the top include and enter following ABAP code:

Tables: ZTC_EKKO.

controls: tc100 type tableview using screen 100.

data: ok_code type sy-ucomm.

data: it_ekko type standard

table of ZTC_EKKO initial size 0,

wa_ekko type ZTC_EKKO.

data: ok_code type sy-ucomm.

Press Save and Activate

• Step 4 (Create screen)

Right click the program to create a screen 100 for the dialog. Enter Short description, set screen type to Normal and enter 0 or blank into Next screen. Then move to Element List tab and enter the OK code as OK_CODE (i.e. the same as what you declared in the top include with data: ok_code type sy-ucomm).

• Step 5 (Create table control)

Press the Layout button to bring up the screen painter editor.

Press table control button and drag it on to the screen, enter the name of table control created in TOP include (TC100). Now press the yellow button for attributes and set the table control as below options

• Step 6 (Populate table control )

Press the orange button (Fields). On the next screen enter ZTC_EKKO and press the ‘Get from Dict’ button. Select the fields you want (all) and press enter. Now drag them onto your Table Control.

Below is the result, there will been syntax errors if we check now! So Save and go back into the flow logic tab.

• Step 7 (Create flow control )

Within the flow logic of screen 100 and create two modules, one to select the data from the database and the other to move the selected fields into the table control. Also insert the two loop statements to populate and retrieve the lines of the table control.

PROCESS BEFORE OUTPUT.

  • MODULE STATUS_0100.

module data_retrieval.

loop at it_ekko into wa_ekko with control TC100.

module populate_screen.

endloop.

*

PROCESS AFTER INPUT.

loop at it_ekko.

endloop.

  • MODULE USER_COMMAND_0100.

Double click the module data_retrieval to create and click yes to get past the popup. Ensure that a new include is created to hold all the PBO modules (default). Press enter.

Select 10 rows of data from the EKKO table and load into the internal table it_ekko. Go back to the flow logic to load this data into the Table Control.

check this one

REPORT ZCALL_TRANS_TAB1 .

TABLES: LFA1,LFBK,lfb1.

data: BEGIN OF it_vendor occurs 0,

LIFNR LIKE LFA1-LIFNR,

bukrs like lfb1-bukrs,

END OF it_vendor.

DATA: BEGIN OF IT_BANK occurs 0,

LIFNR LIKE LFA1-LIFNR,

BANKS LIKE LFBK-BANKS,

BANKL LIKE LFBK-BANKL,

BANKN LIKE LFBK-BANKN,

koinh like lfbk-koinh,

END OF IT_BANK.

data: it_bdcdata like bdcdata occurs 0 with header line.

data: it_messages like bdcmsgcoll occurs 0 with header line.

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

*selection screen.

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

selection-screen: begin of block b1 with frame.

parameters: p_file like rlgrap-filename default 'c:/vendor.txt'

obligatory.

parameters: p_file1 like rlgrap-filename default 'c:/xyz.txt'

obligatory.

selection-screen: end of block b1.

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

*at selection screen.

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

at selection-screen on value-request for p_file.

perform f4_help using p_file.

at selection-screen on value-request for p_file1.

perform f4_help1 using p_file1.

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

*start of selection

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

start-of-selection.

*******uploading file

perform upload_file using p_file P_FILE1.

******open session.

perform populate_data.

&----


*& Form f4_help

&----


form f4_help using p_p_file.

data: l_file type ibipparms-path.

call function 'F4_FILENAME'

importing

file_name = l_file.

p_file = l_file.

endform. " f4_help

&----


*& Form POPULATE_DATA

&----


form populate_data .

DATA: L_STRING TYPE STRing.

DATA: L_COUNTER(2) TYPE n.

loop at it_vendor.

perform bdc_dynpro using 'SAPMF02K' '0106'.

perform bdc_field using 'BDC_CURSOR'

'RF02K-D0130'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02K-LIFNR'

it_vendor-lifnr.

perform bdc_field using 'RF02K-BUKRS'

it_vendor-bukrs.

perform bdc_field using 'RF02K-D0130'

'X'.

perform bdc_dynpro using 'SAPMF02K' '0130'.

perform bdc_field using 'BDC_CURSOR'

'LFBK-bankn(03)'.

perform bdc_field using 'BDC_OKCODE'

'=UPDA'.

*********bank details

CLEAR l_COUNTER.

LOOP AT IT_BANK WHERE LIFNR = IT_VENDOR-LIFNR.

l_COUNTER = l_COUNTER + 1.

clear l_string.

CONCATENATE 'lfbk-banks(' l_counter ')' into l_string.

perform bdc_field using l_string

it_bank-banks.

clear l_string.

CONCATENATE 'lfbk-bankl(' l_counter ')' into l_string.

perform bdc_field using l_string

it_bank-bankl.

clear l_string.

CONCATENATE 'lfbk-bankn(' l_counter ')' into l_string.

perform bdc_field using l_string

it_bank-bankn.

endloop.

******CALL TRANSACTION.

call transaction 'FK02' using it_bdcdata mode 'A'

messages into it_messages.

write:/ sy-subrc.

perform format_messages.

clear it_bdcdata.

refresh it_bdcdata.

endloop.

endform. " POPULATE_DATA

&----


*& Form FORMAT_MESSAGES

&----


form format_messages .

data: l_msg(100).

loop at it_messages.

call function 'FORMAT_MESSAGE'

exporting

id = it_messages-msgid

lang = sy-langu

no = it_messages-msgnr

v1 = it_messages-msgv1

v2 = it_messages-msgv2

v3 = it_messages-msgv3

v4 = it_messages-msgv4

importing

msg = l_msg

exceptions

not_found = 1

others = 2

.

write:/ l_msg.

endloop.

endform. " FORMAT_MESSAGES

&----


*& Form bdc_dynpro

&----


form bdc_dynpro using value(p_program)

value(p_screen).

it_bdcdata-program = p_program.

it_bdcdata-dynpro = p_screen.

it_bdcdata-dynbegin = 'X'.

append it_bdcdata.

clear it_bdcdata.

endform. " bdc_dynpro

&----


*& Form bdc_field

&----


form bdc_field using value(p_fnam)

value(p_fval).

it_bdcdata-fnam = p_fnam.

it_bdcdata-fval = p_fval.

append it_bdcdata.

clear it_bdcdata.

endform. " bdc_field

&----


*& Form upload_file

&----


form upload_file using p_p_file

p_p_file1.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = P_P_FILE

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = IT_VENDOR

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • FILE_OPEN_ERROR = 2

  • FILE_READ_ERROR = 3

  • INVALID_TYPE = 4

  • NO_BATCH = 5

  • UNKNOWN_ERROR = 6

  • INVALID_TABLE_WIDTH = 7

  • GUI_REFUSE_FILETRANSFER = 8

  • CUSTOMER_ERROR = 9

  • NO_AUTHORITY = 10

  • OTHERS = 11

.

IF sy-subrc <> 0.

MESSAGE I000(ZZ) WITH 'UNABLE TO UPLOAD'.

STOP.

ENDIF.

*******UPLOADING BANK DETAILS

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = P_P_FILE1

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = IT_BANK

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

NO_AUTHORITY = 10

OTHERS = 11

.

IF sy-subrc <> 0.

MESSAGE I000(ZZ) WITH 'UNABLE TO UPLOAD'.

STOP.

ENDIF.

endform. " upload_file

&----


*& Form f4_help1

  • -->P_P_FILE1 text

----


form f4_help1 using p_p_file1.

data:l_file1 type ibipparms-path.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

FILE_NAME = l_file1.

p_file1 = l_file1.

endform. " f4_help1

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

Regards,

Sankar

Read only

Former Member
0 Likes
667

HI,

see this code.

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 INTO ITAB-SUPERFIELD ITAB-EKORG ITAB-EKGRP

ITAB-BUKRS.

JTAB-N = JTAB-N + 1.

APPEND 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 BDCTAB.

BDCTAB-PROGRAM = PROGRAM.

BDCTAB-DYNPRO = DYNPRO.

BDCTAB-DYNBEGIN = 'X'.

APPEND BDCTAB.

ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.

CLEAR BDCTAB.

BDCTAB-FNAM = FNAM.

BDCTAB-FVAL = FVAL.

APPEND BDCTAB.

ENDFORM.

FLAT FILE:

H1171611000001*1000

ICPU116000*1000

ILEY BOARD1010000*1000

IMOUSE66000*1000

H1171711000001*1000

ICPU580000*1000

H1171701000001*1000

IMOUSE33000*1000

ILEY BOARD1010000*1000

<b>reward if helpful</b>

rgds,

bharat.