‎2007 Aug 24 1:21 PM
hi experts
how to upload data through table control containig transactions. plese give me brief code.
thanks in advance
radhakrishna.
‎2007 Aug 24 1:26 PM
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
‎2007 Aug 24 1:30 PM
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
‎2007 Aug 24 1:37 PM
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.