Declaring internal tables

why do we declare internal tables in this way
TYPES: BEGIN OF ty_t501t,
       END OF ty_t501t.
DATA: gt_list1 TYPE STANDARD TABLE OF ty_list1,
why not this
DATA: BEGIN OF ITAB OCCURS 0,
      END OF ITAB.

Hi,
Declaring internal table with a header line decreases performance.
Its better to have internal table without header line and a work area to work with it.
Its improves performance.
Also wen u work with internal table with header line it creates confusion that whether ur working with the header line or body of the internal table.
Also declaring internal table with header line is obsolete one.
LOOP AT ITAB----
>Working with header line.(Confusion whether ur referring header or body of internal table)
LOOP AT ITAB INTO WA------>Working with internal table widout header line and an work area
Regards,
Lakshman.
Edited by: Lakshman N on Aug 14, 2009 7:25 AM

Similar Messages

  • Simple command to refresh data of all declared internal tables & variables!

    Hi All,
    I have declared many internal tables & variables in my program in declaration include.
    Is there any Simple command which can refresh data of all declared internal tables & variables!
    Instead of clearing & refreshing each i.table & variable i want to use single command to refresh data.
    Is this possible!
    Thanks in advance.
    Thanks,
    Deep.

    CLEAR: lv_field1,
                 lv_field2,
                 lt_itab1[],
                 lt_itab2[].
    ONE simple command (CLEAR), can initialize fields, workareas, field-symbols,.... and internal tables.

  • How to declare internal table in SMARTFORM

    Hi experts,
    I have an Internal table in my program and I want to declare in the smartform as well. How and where can I declare? Should I use global definitions and tpyes tab? How can I pass the content of the internal table to the smartform?

    Click Global Defiitions
    In TYPES :
    TYPES : BEGIN OF gty_add,
             name1      TYPE ad_name1,                          " name1
             city1      TYPE ad_city1,  " City
             country    TYPE adrc-country, "Coutnry
             post_code1 TYPE ad_pstcd1, " post code
             street     TYPE ad_street, " street
             house_num1 TYPE ad_hsnm1,  " house number
             tel_number TYPE ad_tlnmbr1," tele number
            END OF gty_add.
    In Global DATA
    GT_ADD     TYPE TABLE OF     GTY_ADD ( Internal table)
    WA_ADD     TYPE     GTY_ADD ( work area)

  • HR abap :  how to declare internal table to fetch data from 0585 infotype

    Hi all ,
    I am able to fetch the data from pa0585 infotype for set of employee no , but the problem is as the fields in pa0585 (like Contr to ULIP , NSC , Medical Treatment,Contribution to Certain Pension Funds so on ..) will be changed dynamically and will be displayed based on the amount value in descending order iam not able to store the values of the fileds into internal table . I dont understand how to declare the internal table ..Please help in if u have solved this kind of problem.
    I shld get the output in this way ...
    Emp No     Name    Medical treatment       Contr to ULIP             ....... so on
    101          abc           10000                        150000                      .......so on
    102          xyz           12000                        150000                      .......so on
    My header shld be fixed and I shld display values in this way .... I can use write statement to display directly .
    Thanks ....

    Hi
    Decalre INFOTYPE
    Goto SE37 - Find FM -
    READINFOTYPE*

  • How to declare internal table in BADI with variable name beginning with 0..

    Gurus,
    How to declare an internal table within a BADI. I have to implement a BADI UC_TASK_CUSTOM for BCS to BW load and there i have to  declare an internal table like:
    TYPES:          BEGIN OF t_cube_data,
                    0cs_version       TYPE /bi0/oics_version,
                    0sem_cgcomp       TYPE /bi0/oisem_cgcomp,
                    bcs_vers          TYPE /bic/oibcs_vers,
                    bcs_lcus          TYPE /bic/oibcs_lcus,
                    bcs_ldch          TYPE /bic/oibcs_ldch,
                    bcs_invcom       TYPE /bi0/oibcs_invcom,
                    bcs_litem         TYPE /bic/oibcs_litem,
                    bcs_llob          TYPE /bic/oibcs_llob,
                    bcs_lmay          TYPE /bic/oibcs_lmay,
                    0move_type        TYPE /bi0/oimove_type,
                    pcompany         TYPE /bi0/oipcompany,
                    bcs_lprg          TYPE /bic/oibcs_lprg,
                    figlxref3         TYPE /bic/oifiglxref3,
                    fiscyear         TYPE /bi0/oifiscyear,
                    fiscper3         TYPE /bi0/oifiscper3,
                    fiscvarnt        TYPE /bi0/oifiscvarnt,
                    curkey_gc        TYPE /bi0/oicurkey_gc,
                    unit             TYPE /bi0/oiunit,
                    cs_trn_gc        TYPE /bi0/oics_trn_gc,
                    cs_trn_qty       TYPE /bi0/oics_trn_qty,
              END OF t_cube_data
    But with this declaration it gives a error saying that u cannot have a variable beginning with 0...like 0cs_version....
    but i have to do it for my functionality to wrk...
    Please help me do it....
    how can i declare a internal table that allows me to have variable names that start with 0....
    Please help....Its URGENT....
    Thanks
    Sam

    Murali,
    I need to have 0 before the variable name in the declaration of the internal table....how can i attain that....
    Please suggest...
    Thanks
    Sam

  • Declare Internal Table in Code or in Data Dictionary...Opinions needed?

    Is it better to define your internal table and all of its fields in a begin of/end of declaration stmt in your code's data definitions. Or, is it better to create a structure in the Data Dictionary, which means one line of code in your program? Why does one choose the method they prefer?
    I am thinking it is best to declare in Data Dictionary, especially since ABAP is now leaning towrds objects. However, I am seeing a lot of field by field definitions in programs. I am very interested in how most programmers accomplish this and why.    
                     Thank-You

    I would say that if the internal table is to be used in more than one program, then I would create a structure and/or table type in the ABAP dictionary.  If it is to be used in just one program, then I would define it locally.
    Regards,
    Rich Heilman

  • Structure of the context for declaring internal table

    Hi,
    Can we use the structure of the context for declaring the internal ?
    -Sid

    Hi Sid,
    You can use the above element_ & elements_ notation to define workarea & internal table similar to your context. But the disadvantage of this approach as how pointed out by Thomas in 1 of his earlier threads is that this coding would work fine only for that particular view. If you copy the same code from your view input_view and try to use it in another view say VIEW1 then it wouldn't work as the interface name would have changed from if_input_view to if_view1. So its suggested to use the below approach:
    DATA: lt_main TYPE wd_this->elements_node_vbak,  " Internal table
              wa_main TYPE wd_this->element_node_vbak.  " Work area
    Try go through this excellent [article|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60730016-dbba-2a10-8f96-9754a865b814]. It would help you understand what all you need to know about working with the context & its attributes.
    Regards,
    Uday

  • Problem in declaring internal table

    hai experts ,
    i am new to web dynpro abap .. my problem is i want to declare a internal table for a table using the web dynpro code wizard .. i found many threads regarding that .. but for mee its not working .. many of them posted that get_static_attributes_table method will solve the problem .. but i used the method in the wizard but it saying that method does not  exist ..pls solve the problem ..
    say where to enter the method in the wizard ..
    thanks & kind regards
    chinnaiya

    Hi Chinnaiya,
    Your post isnt that clear as to what you intend to do. Do you intend to just create an internal table declaration which would be able to hold your context nodes data or do you wish to use the get_static_attributes method to fetch all your tables data into this internal table?
    If you want to just declare an internal table which can hold the data then you would have to do it manually. You can't generate your internal table declaration using the code wizard. Suppose your context nodes name is SFLIGHT then you can use the below syntax to declare a table & work area respectively.
    DATA: lt_sflight TYPE wd_this->elements_sflight,  " Internal table
                wa_sflight TYPE wd_this->element_sflight.  " Work area
    For each node <node> of a controller context, a structure type element_<node> is implicitly generated in the interface IF_<ctrl>. The structure fields correspond to the attributes a node element consists of. Similarly for each node <node> of a controller context, a standard table type elements_<node> is implicitly generated in the interface IF_<ctrl>. The line type of this table is element_<node>. This constant can be used to
    type an internal table that can hold the attributes of multiple node elements. So as how said here you can even declare the work area and internal table like shown below in your MAIN view:
    DATA: lt_sflight TYPE if_main=>elements_sflight,  " internal table
               wa_sflight TYPE if_main=>element_sflight.  " work area
    But the disadvantage of this approach as how pointed out by Thomas in 1 of this earlier threads is that this coding works fine only for this particular view. If you copy the same code and try to use it in another view say VIEW1 then it wouldn't work as the interface name would have changed from if_main to if_view1. So its suggested to use the earlier approach.
    Regards,
    Uday

  • Declaring an internal table in smartform

    hi,
       can anyone tell how to declare   internal table in smartform.
       the internal table contains fields from 2 or more data dictionary tables(eg.kna1 
       and adrc). after this from the print program(internal table containing data in print
       program) internal table should be passed to the smartform.
    thanks.

    hi laxya,
    if u want to pass the data from internal table in print program to Smartform.. there is only way.. that is using form interface..
    1. goto se11, create a structure same as the itab in the print program.ex. <b>z_itab</b>
    2. create line type... se11>select radio button-DATA type><b>z_it_itab</b> >press create>then select>TABLE Type> then entrer some text--> in the line type Field in giveth Str name u have created in STEP 1. activate it.
    3. got SMARTFORMS-> form inteface>tables tabe--> give some name ex <b>IT_tab type z_it_itab</b>.
    then acivate it.. then in the driver progam pass this table data.
    Exapmpel
    CALL FUNCTION fp_v_fm_name
        EXPORTING
          archive_index      = toa_dara
          archive_parameters = arc_params
          control_parameters = fp_st_control_parameters
          user_settings      = space
          output_options     = fp_st_output_options
          wa_vbdkr           = fp_st_vbdkr
        IMPORTING
          job_output_info    = l_it_ssfcrescl
          job_output_options = l_it_ssfcresop
        TABLES
    <b>      IT_tab  = z_it_itab (or table in driver program)</b>
      EXCEPTIONS
          formatting_error   = 1
          internal_error     = 2
          send_error         = 3
          user_canceled      = 4
          OTHERS             = 5.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Another way is cteate a type in Globaldifination-->types tab..
    ex:
    types: begin of ty_itab,
       matnr type matnr,
       meins type meins
       vrkme  type vrkme,
    end of ty_itab,
    ty_it_itab type standard table of ty_itab.
    then GLOBAL DIFINATION>GLOBAL DATA TAB>IT)ITAB TYPE TY_IT_ITAB.
    BUT In this u can't pass the data from the print Program.. if u want to populate data in to this table... u have to write the Select query in the GLOBAL DIFINATIONS-->INITILIZATIONS TAB.
    Please Close this thread.. when u r problem is solved
    Reward if Helpful
    Regards
    Naresh Reddy K
    Message was edited by:
            Naresh Reddy

  • Internal table declaration

    What is the difference between 'OCCURS 0' addition and 'INITIAL SIZE' .
    CASE I :(Declaration With 'OCCURS 0' addition)
    DATA:BEGIN OF I_TAB OCCURS 0,
           NAME(5) TYPE C,
           AGE(2) TYPE C,
         END OF I_TAB.
    CASE II :(Declartion with inital size)
    TYPES:BEGIN OF T_TAB,
                 NAME(5) TYPE C,
                 AGE(2) TYPE C,
               END OF T_TAB.
    DATA:I_TAB TYPE STANDARD TABLE OF T_TAB INITIAL SIZE 0.
    In the above cases which case is efficient for declaring internal table ?
    Moderator message: please read ABAP documentation before posting.
    Edited by: Thomas Zloch on Jun 27, 2011 4:23 PM

    What is the difference between 'OCCURS 0' addition and 'INITIAL SIZE' .
    CASE I :(Declaration With 'OCCURS 0' addition)
    DATA:BEGIN OF I_TAB OCCURS 0,
           NAME(5) TYPE C,
           AGE(2) TYPE C,
         END OF I_TAB.
    CASE II :(Declartion with inital size)
    TYPES:BEGIN OF T_TAB,
                 NAME(5) TYPE C,
                 AGE(2) TYPE C,
               END OF T_TAB.
    DATA:I_TAB TYPE STANDARD TABLE OF T_TAB INITIAL SIZE 0.
    In the above cases which case is efficient for declaring internal table ?
    Moderator message: please read ABAP documentation before posting.
    Edited by: Thomas Zloch on Jun 27, 2011 4:23 PM

  • Internal table in bdc

    I am new to the bdc .
    i have gone to SHDB and created a new recording  for the some T-code .
    After that i have created a prog (transfer from recording ) .
    i got some values in the file in my presenation server.
    i got default code generated .
    I have to declare the internal table of some time .
    may i know of which type should i declare my internal table ??
    My code ****************************************************************
    report ZRAJESH_BDC
           no standard page heading line-size 255.
    include bdcrecx1.
    start-of-selection.
    perform open_group.
    *******loop
    perform bdc_dynpro      using 'SAPMF02K' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-D0110'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  '12345'.
    perform bdc_field       using 'RF02K-D0110'
                                  'X'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-TELF2'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=UPDA'.
    perform bdc_field       using 'LFA1-ANRED'
                                  'Mr.'.
    perform bdc_field       using 'LFA1-NAME1'
                                  'RAJESH'.
    perform bdc_field       using 'LFA1-SORTL'
                                  'Q'.
    perform bdc_field       using 'LFA1-LAND1'
                                  'US'.
    perform bdc_field       using 'LFA1-SPRAS'
                                  'EN'.
    perform bdc_field       using 'LFA1-TELF2'
                                  '9033558227'.
    perform bdc_transaction using 'XK02'.
    perform close_group.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> NODATA.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.

    Hi,
    I have one simple  BDC Program  .
    Just you have to do recording by using SHDB Transaction Code.
    and Copy that program and do some modification by following my Program and upload data to that perticular transaction.
    before that u have to prepare data in Text file by using TAB Space .
    Below is the Code(I have used MM01 transaction)
    ******************************************************************************************8
    report ZBDCTEST no standard page heading line-size 255.
    ***DECLARING TABLES.
    TABLES : MARA.
    **DECLARING INTERNAL TABLE.
    DATA : BEGIN OF ITAB OCCURS 0,
           MATNR LIKE MARA-MATNR,
           MEINS LIKE MARA-MEINS,
           MATKL LIKE MARA-MATKL,
           Maktx like makt-maktx,
           SPART LIKE MARA-SPART,
           END OF ITAB.
    DATA BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       CODEPAGE                      = 'IBM'
       FILENAME                      = 'C:\TEST.TXT'
       FILETYPE                      = 'DAT'
      HEADLEN                       = ' '
      LINE_EXIT                     = ' '
      TRUNCLEN                      = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      DAT_D_FORMAT                  = ' '
    IMPORTING
      FILELENGTH                    =
      TABLES
        DATA_TAB                      = ITAB
    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
      OTHERS                        = 10
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *include bdcrecx1.
    *start-of-selection.
    *perform open_group.
    LOOP AT ITAB.
      REFRESH BDCDATA.
      perform bdc_dynpro      using 'SAPLMGMM' '0060'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RMMG1_REF-MATNR'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=AUSW'.
      perform bdc_field       using 'RMMG1-MATNR'
                                    ITAB-MATNR.
      perform bdc_field       using 'RMMG1-MBRSH'
                                    'M'.
      perform bdc_field       using 'RMMG1-MTART'
                                    'FOOD'.
      perform bdc_dynpro      using 'SAPLMGMM' '0070'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MSICHTAUSW-DYTXT(02)'.
      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_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=SP02'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    'T1003'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-MATKL'.
      perform bdc_field       using 'MARA-MEINS'
                                    'BOX'.
      perform bdc_field       using 'MARA-MATKL'
                                     ITAB-MATKL.
      perform bdc_field       using 'MARA-SPART'
                                    ITAB-SPART.
      perform bdc_field       using 'MARA-MTPOS_MARA'
                                    'NORM'.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BU'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MAKT-MAKTX'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    'T1003'.
    *perform bdc_transaction using 'MM01'.
    *perform close_group.
      CALL TRANSACTION 'MM01' USING BDCDATA MODE 'A'. "A= all screens ,N= no screens
    ENDLOOP.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> SPACE.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.
    if you want further help let me know
    Regards,
    Jak

  • Internal table in ABAP Server Proxy

    Hi Experts,
        I have developed a JDBC to ABAP Proxy scenario.
    I have a problem. In my ABAP server proxy I have to import the values into an internal table and pass them to a BAPI for GR creation.
    I get an error like. OCCURS 0 is not allowed in OO concept.
    Can anyone give me examples on declaring internal table in an ABAP Proxy(OO Concept).
    Thanks
    AK

    Hi
    Check this out.
    http://help.sap.com/saphelp_nw70/helpdata/EN/fc/eb3660358411d1829f0000e829fbfe/frameset.htm
    Cheers

  • How to populate internal table field with text data?

    Hello Experts,
    I was able to load text file to a internal table but data is not populating each field. Can someone help me how to populate each field of internal table from text file?
    Here is the text file:
    io_name, io_type, io_txsht, io_txlng, io_datatype, io_length
    ZEA_IO1, CHA, IO Test,     IO Test 1, CHAR,       20
    ZEA_IO2, CHA, IO Test,     IO Test 2, CHAR,       20
    Here is the Code:
    *& Report  ZAS_BAPI_TEST                                               *
    *& InfoObject Creation through BAPI.
    *& Read the Text file, call a BAPI to create InfoObjects.              *
    *& Text file will hold the Info Object Structure. Text file will be    *
    *& located either work station or local PC.
    *& Step 1. Create internal table to hold InfoObject structure          *
    *& Step 2. Retrieve/Load text file into Internal Table structure       *
    *& Step 3. Call BAPI Function to Create IO                             *
    *& Step 4. Call BAPI Function to Activate IO                           *
    REPORT  ZAS_BAPI_TEST                           .
    Make data separator a comma
    CONSTANTS: gc_tab TYPE c VALUE ','.
          Declaring Internal table for creating InfoObject
    DATA: p_file TYPE string.
    DATA: BEGIN OF itab-bapi OCCURS 0,
            io_name like BAPI6108-infoobject,
            io_type like BAPI6108-type,
            io_txsht like BAPI6108-textshort,
            io_txlng like BAPI6108-textlong,
            io_datatype like BAPI6108-datatp,
            io_length like BAPI6108-intlen,
          END OF itab-bapi.
    DATA ibapi LIKE STANDARD TABLE OF itab-bapi.
    PARAMETERS: sel_file(1500) TYPE c default ' ' OBLIGATORY LOWER CASE.
          PUT THE TEXT FILE PATH TO P_FILE
    p_file = sel_file.
         Copy the file from the workstation to the server        ****
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                = p_file
                   FILETYPE                = 'ASC'
                   HAS_FIELD_SEPARATOR     = SPACE
                   HEADER_LENGTH           = 0
                   DAT_MODE                = SPACE
                   CODEPAGE                = SPACE
                   IGNORE_CERR             = ABAP_TRUE
                   REPLACEMENT             = '#'
                   READ_BY_LINE            = 'X'
                 IMPORTING
                   FILELENGTH              =
                   HEADER                  =
      TABLES
        data_tab                = itab-bapi[]
      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
        not_supported_by_gui    = 17
        error_no_gui            = 18
        OTHERS                  = 19.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      MESSAGE e012(zea_spms) WITH 'Method' 'GUI_UPLOAD' sy-subrc.
      &1 &2 issued return code &3
       ELSE.
         pit_data[] = lit_data[].
       ENDIF.
    ENDIF.
    loop at itab-bapi.
      write: /5 itab-bapi-io_name,
               20 itab-bapi-io_type,
               30 itab-bapi-io_txsht,
               50 itab-bapi-io_txlng,
               75 itab-bapi-io_datatype,
               85 itab-bapi-io_length.
    endloop.
          SELECT THE LOCATION FOR TEXT FILE
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR sel_file.
      CALL FUNCTION 'WS_FILENAME_GET'
        EXPORTING
          def_filename     = ''
          def_path         = 'C:\'
          mask             = ',Documentos de texto (*.txt), *.txt.'
          mode             = ''
        IMPORTING
          filename         = p_file
        EXCEPTIONS
          inv_winsys       = 1
          no_batch         = 2
          selection_cancel = 3
          selection_error  = 4
          OTHERS           = 5.
      find '.txt' IN p_file.
      if sy-subrc <> 0.
        concatenate p_file '.txt' into sel_file.
      else.
        sel_file = p_file.
      endif.
          Create InfoObject through BAPI Function
    *CALL FUNCTION 'BAPI_IOBJ_CREATE'.
    *IMPORTING
        VALUE(DETAILS) LIKE  BAPI6108 STRUCTURE  BAPI6108
    *EXPORTING
        VALUE(INFOOBJECT) LIKE  BAPI6108-INFOOBJECT
        VALUE(RETURN) LIKE  BAPIRET2 STRUCTURE  BAPIRET2
    TABLES
         COMPOUNDS STRUCTURE  BAPI6108CM OPTIONAL
         ATTRIBUTES STRUCTURE  BAPI6108AT OPTIONAL
         NAVIGATIONATTRIBUTES STRUCTURE  BAPI6108AN OPTIONAL
         ATRNAVINFOPROVIDER STRUCTURE  BAPI6108NP OPTIONAL
         HIERARCHYCHARACTERISTICS STRUCTURE  BAPI6108HC OPTIONAL
         ELIMINATION STRUCTURE  BAPI6108IE OPTIONAL
         RETURNTABLE STRUCTURE  BAPIRET2 OPTIONAL
          Activate InfoObject through BAPI Function
    CALL FUNCTION 'BAPI_IOBJ_ACTIVATE_MULTIPLE'
    *ENDFORM.                    " RETRIEVE_DATASET
    I appreciate your help.
    Regards,
    Mau

    I have used tab delimited file.
    Here are file contents
    io_name     io_type     io_txsht     io_txlng     io_datatype     io_length
    ZEA_IO1     CHA     IO Test     IO Test 1     CHAR     20
    ZEA_IO2     CHA     IO Test     IO Test 2     CHAR     20
    And here is program used
    *& Report ZAS_BAPI_TEST *
    *& InfoObject Creation through BAPI.
    *& Read the Text file, call a BAPI to create InfoObjects. *
    *& Text file will hold the Info Object Structure. Text file will be *
    *& located either work station or local PC.
    *& Step 1. Create internal table to hold InfoObject structure *
    *& Step 2. Retrieve/Load text file into Internal Table structure *
    *& Step 3. Call BAPI Function to Create IO *
    *& Step 4. Call BAPI Function to Activate IO *
    REPORT ZAS_BAPI_TEST .
    Make data separator a comma
    CONSTANTS: gc_tab TYPE c VALUE ','.
    Declaring Internal table for creating InfoObject
    DATA: p_file TYPE string.
    DATA: BEGIN OF itab-bapi OCCURS 0,
    io_name like BAPI6108-infoobject,
    io_type like BAPI6108-type,
    io_txsht like BAPI6108-textshort,
    io_txlng like BAPI6108-textlong,
    io_datatype like BAPI6108-datatp,
    io_length like BAPI6108-intlen,
    END OF itab-bapi.
    DATA ibapi LIKE STANDARD TABLE OF itab-bapi.
    PARAMETERS: sel_file(1500) TYPE c default ' ' OBLIGATORY LOWER CASE.
    PUT THE TEXT FILE PATH TO P_FILE
    p_file = sel_file.
    Copy the file from the workstation to the server ****
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = p_file
    <b>FILETYPE = 'ASC'
    HAS_FIELD_SEPARATOR = 'X'</b>
    TABLES
    data_tab = itab-bapi[]
    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
    not_supported_by_gui = 17
    error_no_gui = 18
    OTHERS = 19.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    MESSAGE e012(zea_spms) WITH 'Method' 'GUI_UPLOAD' sy-subrc.
    &1 &2 issued return code &3
    ELSE.
    pit_data[] = lit_data[].
    ENDIF.
    ENDIF.
    loop at itab-bapi.
    write: /5 itab-bapi-io_name,
    20 itab-bapi-io_type,
    30 itab-bapi-io_txsht,
    50 itab-bapi-io_txlng,
    75 itab-bapi-io_datatype,
    85 itab-bapi-io_length.
    endloop.
    SELECT THE LOCATION FOR TEXT FILE
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR sel_file.
    CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
    def_filename = ''
    def_path = 'C:\'
    mask = ',Documentos de texto (*.txt), *.txt.'
    mode = ''
    IMPORTING
    filename = p_file
    EXCEPTIONS
    inv_winsys = 1
    no_batch = 2
    selection_cancel = 3
    selection_error = 4
    OTHERS = 5.
    find '.txt' IN p_file.
    if sy-subrc <> 0.
    concatenate p_file '.txt' into sel_file.
    else.
    sel_file = p_file.
    endif.
    Create InfoObject through BAPI Function
    *CALL FUNCTION 'BAPI_IOBJ_CREATE'.
    *IMPORTING
    VALUE(DETAILS) LIKE BAPI6108 STRUCTURE BAPI6108
    *EXPORTING
    VALUE(INFOOBJECT) LIKE BAPI6108-INFOOBJECT
    VALUE(RETURN) LIKE BAPIRET2 STRUCTURE BAPIRET2
    TABLES
    COMPOUNDS STRUCTURE BAPI6108CM OPTIONAL
    ATTRIBUTES STRUCTURE BAPI6108AT OPTIONAL
    NAVIGATIONATTRIBUTES STRUCTURE BAPI6108AN OPTIONAL
    ATRNAVINFOPROVIDER STRUCTURE BAPI6108NP OPTIONAL
    HIERARCHYCHARACTERISTICS STRUCTURE BAPI6108HC OPTIONAL
    ELIMINATION STRUCTURE BAPI6108IE OPTIONAL
    RETURNTABLE STRUCTURE BAPIRET2 OPTIONAL
    Activate InfoObject through BAPI Function
    CALL FUNCTION 'BAPI_IOBJ_ACTIVATE_MULTIPLE'
    *ENDFORM. " RETRIEVE_DATASET
    This program is working fine. You can test it.
    Only problem is as the column headings are big for some columns, they are getting truncated which you can always change by changing the column width in declaration
    Please let me know if this helps.
    ashish

  • Issue with internal table in object oriented ABAP.

    Hello Gurus,
    I am having trouble defining internal table in Object oriented ABAP. for following:
    DATA: BEGIN OF IT_TAB OCCURS 0.
            INCLUDE STRUCTURE ZCUSTOM.
    DATA    tot_sum   TYPE char40.
    DATA END OF IT_TAB.
    Can someone help ?
    Regards,
    Jainam.
    Edited by: Jainam Shah on Feb 5, 2010 8:33 PM
    Edited by: Jainam Shah on Feb 5, 2010 8:33 PM
    Moderator message - Please post in the correct forum. You can easily find out for yourself by looking at SAP help for internal tables using OOP - thread locked
    Edited by: Rob Burbank on Feb 5, 2010 2:49 PM

    No, you can not declare internal table with header line in OO context. You have to declare the work are/header line separately
    Example:
    TYPES: BEGIN OF ty_it_tab.
            INCLUDE STRUCTURE mara.
    TYPES:  tot_sum TYPE char40.
    TYPES: END OF ty_it_tab.
    DATA: it_tab TYPE STANDARD TABLE  OF ty_it_tab.
    DATA: wk_tab TYPE ty_it_tab.
    LOOP AT it_tab INTO wk_tab.
    ENDLOOP.
    Edited by: Dean Q on Feb 5, 2010 8:50 PM

  • Internal table in badi

    Hello friends,
    I am working with Badi's and my requirement is i need to fetch the data from database in badi method and have to use that data in my abap program.
    So, is there any way i can declare internal table as export parameter of badi method or else if I declare internal table in my abap program and export that while calling badi method then how to declare internal table as import parameter in badi method.

    Some things are not clear here..
    1 - You have a ABAP Program that trigger's a process that calls a BADI and then return to your ABAP Program
    OR
    2 - You have implemented a BADI in a process that runs separately from the ABAP Program, and you need to grab data from the BADI into your Program?
    I`d suggest:
    1 -  Try to use a static method or a static class with a method that would "hold the data" from the badi into you memory. You could use methods like SET_INT_TABLE in BADI and then GET_INT_TABLE in your ABAP Prog.
    2 - Not sure why you want to do this, but use a Z table.
    Regards
    Edited by: Mauricio Roberto Cruz on Feb 11, 2011 2:26 PM

Maybe you are looking for

  • Both itunes and quicktime wont open!

    so its been a few days and my itunes has not opened. a message keeps popping up that says:: itunes has encountered an needs to close...send//dont send error report.on some topics i read that the problem may be quicktime-related, so i tried opening up

  • Screen shots not showing up in WebHelp (RH7)

    Hello: I'm having an issue where screenshots (all are .png) aren't showing up in WebHelp. I'm not sure what happened! I have added and edited tons of screenshots since I started my project, but I have no idea if that would affect WebHelp. Basically,

  • PGI error related to Posting Period issue

    While delivering, when I do the PGI, it is not allowing ...it says "Posting only possible in periods 2009/02 and 2009/01 in company code 0430"... I closed earler posting periods using Tcode MMPV and opened the current period and fiscal in SPRO IMG. B

  • Help on Configuration Scenario

    Hi all,    I was doing a configuration and I noticed one thing. If I assign a business system in a configuration scenario. I cannot use the same business system in anothe configuration scenario. Any ideas why SAP does this? I am a SAP newbie so don't

  • Personnel Cost Plannling for Vacant Position, ECC 6

    I am implementing Personnel cost planning and simulation ECC 6, based on Payroll results and Projected pay for vacant position only, no issue in payroll results but i am not clear about the projected pay, vacant position based on wage element from IT