Assign internal table name passed through routines

Dear experts,
How can i pass the name of P_TAB in from fieldcat_init ?.
i call the method of an object(ob) of class .
If i call debugger on p_tab in form fieldcat_init ,i can see the data.
But how to assign it
  wa_fieldcat-tabname      =  P_TAB.
I tried this but gives me dump.
CALL METHOD OB->printalv( exporting alv_data = t_excel ).
method printalv.
perform printing tables alv_data.
endmethod.
form printing tables p_tab like t_excel.
#  PERFORM fieldcat_init tables p_tab USING gt_fieldcat .
  PERFORM eventtab_build USING gt_events[].
  PERFORM comment_build  USING gt_list_top_of_page[].
  PERFORM disp_rep tables p_tab.
endform.
FORM fieldcat_init tables p_tab USING  p_gt_fieldcat .
  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname    = 'MATNR'.
  wa_fieldcat-tabname      =  P_TAB.
  wa_fieldcat-seltext_m    = text-001  .
  wa_fieldcat-outputlen = 18.
  wa_fieldcat-emphasize    = 'C410'.
  APPEND wa_fieldcat TO it_fieldcat.
ENDFORM.
Line with # needs clarification.
Edited by: aditya  sharma on Jul 22, 2010 9:49 AM

Hi Aditya,
You described your "p_tab" in TABLES section
describe your form like that :
FORM fieldcat_init  USING  p_tab  p_gt_fieldcat .
ENDFORM.
and give the name of your table to this subroutine
not the table itself :
PERFORM fieldcat_init USING 'ITAB' p_gt_fieldcat.
wrong :  PERFORM fieldcat_init USING ITAB p_gt_fieldcat.
I hope it helps.

Similar Messages

  • How to export internal table and pass the internal table to another screen?

    Hi,
    I have a sql SELECT statement that select data from table into internal table. I would like to export out the internal table and pass to another screen and display the data in ALV list. How to export it out? I try but the error given was " The type of "OUT_SELECT_ITAB" cannot be converted to the type of  "itab_result".
    Another question is, how to pass the internal table that i export out from the function module to another screen?
    Here is the code
    ==============================================================
    FUNCTION ZNEW_SELECT_ZSTUD00.
    ""Local Interface:
    *"  IMPORTING
    *"     REFERENCE(IN_SELECT_YEAR) TYPE  ZSTUD00-EYEAR
    *"  EXPORTING
    *"     REFERENCE(OUT_RESULT) TYPE  CHAR9
    *"     REFERENCE(OUT_SELECT_ITAB) TYPE  ZSTUD00
    *& Global Declarations
    DATA: itab TYPE ZSTUD00,
          itab_result TYPE TABLE OF ZSTUD00.
    *& Processing Blocks called by the Runtime Environment
    itab-eyear = IN_SELECT_YEAR.
    SELECT *
    FROM ZSTUD00
    INTO TABLE itab_result
    WHERE eyear = IN_SELECT_YEAR.
    IF sy-subrc = 0.
      out_result = 'Success'.
      OUT_SELECT_ITAB = itab_result.
    ELSE.
      out_result = 'Fail'.
    ENDIF.
    ENDFUNCTION.
    ===============================================================
    Please advise. Thanks
    Regards,
    Rayden

    Hi Nagaraj,
    I try to change it in Tables tab page but it state that TABLES parameters are obsolete. when i "Enter". I try to "Enter" again. it seem to be ok but it stil give me the same error.
    ================================================================
    FUNCTION ZNEW_SELECT_ZSTUD00.
    ""Local Interface:
    *"  IMPORTING
    *"     REFERENCE(IN_SELECT_YEAR) TYPE  ZSTUD00-EYEAR
    *"  EXPORTING
    *"     REFERENCE(OUT_RESULT) TYPE  CHAR9
    *"  TABLES
    *"      OUT_SELECT_ITAB STRUCTURE  ZSTUD00
    *& Global Declarations
    DATA: itab TYPE ZSTUD00,
          itab_result TYPE TABLE OF ZSTUD00.
    *& Processing Blocks called by the Runtime Environment
    itab-eyear = IN_SELECT_YEAR.
    SELECT *
    FROM ZSTUD00
    INTO TABLE itab_result
    WHERE eyear = IN_SELECT_YEAR.
    IF sy-subrc = 0.
      out_result = 'Success'.
      OUT_SELECT_ITAB = itab_result.
    ELSE.
      out_result = 'Fail'.
    ENDIF.
    ENDFUNCTION.
    ===============================================================
    regards,
    Rayden

  • Internal table in a form routine

    Hi,
    I have a problem when I try to use an internal table to pass it into a form/Perform subroutine.
    Here is my code :
      DATA: BEGIN OF i_table_exple OCCURS 0,
        ncont TYPE char18,
        cdmvt TYPE char1,
       END OF i_table_exple.
    perform test_form using i_table_exple.
    form test_form using i_table like i_table_exple.
      loop at i_table.
        write : / i_table-ncont.
        write : / i_table-cdmvt.
      endloop.
    endform.
    when I try to activate it, I have an error : "i_table" is neither specified under "tables" nor is it defined as an internal table
    I think the way I pass my table to the form is not correct, but I don't know how to deal with it.

    Try the following code:
    TYPES:  BEGIN OF t_table_exple ,
    ncont TYPE char18,
    cdmvt TYPE char1,
    END OF t_table_exple.
    DATA : i_table_exple TYPE t_table_exple OCCURS 0 WITH HEADER LINE.
    perform test_form tables i_table_exple.
    form test_form table i_table like i_table_exple.
    loop at i_table.
    write : / i_table-ncont.
    write : / i_table-cdmvt.
    endloop.
    endform.

  • Internal table name which hide statement uses

    Hi,
    To hide several variables, use chain HIDE statement.
    As soon as the user selects a line for which you stored HIDE fields, the system fills the variables in the program with the values stored.  A line can be selected.
    ¨      By an interactive event.
    For each interactive event, the HIDE fields of the line on which the cursor is positioned during the event are filled with the stored values.
    The HIDE area is a table, in which the system stores the names and values of all HIDE fields for each list and line number.  As soon as they are needed, the system reads the values from the table. 
    I want to know how can we find the name of that internal table.
    Regards,
    maqsood

    Hi,
    i think it is system defined.
    The HIDE Technique
    You use the HIDE technique while creating a list level to store line-specific information for later use. To do so, use the HIDE statement as follows:
    HIDE <f>.
    This statement places the contents of the variable <f> for the current output line (system field SY-LINNO) into the HIDE area. The variable <f> must not necessarily appear on the current line.
    To make your program more readable, always place the HIDE statement directly after the output statement for the variable <f> or after the last output statement for the current line.
    As soon as the user selects a line for which you stored HIDE fields, the system fills the variables in the program with the values stored. A line can be selected
    by an interactive event.
    For each interactive event, the HIDE fields of the line on which the cursor is positioned during the event are filled with the stored values.
    by the READ LINE statement.
    <b>You can think of the HIDE area as a table, in which the system stores the names and values of all HIDE fields for each list and line number. As soon as they are needed, the system reads the values from the table.</b>
    Thanks&Regards,
    Ruthra.R

  • Define variable a ROWTYPE based on a table name passed as a parameter

    I am trying to write a procedure that processes rows for tables of differing structures. Table_name is passed as an IN parameter to the procedure. I define a cursor within the function that is defined by a SELECT * FROM table_name. I also need to define two variables, l_this_row and l_prev_row. I need to define them as table_name%ROWTYPE. Of course, table_name is a VARCHAR2 that contains the name of a table, whereas Oracle is expecting an actual table name in the declaration. How can I define these variables to make something like the code shown below compile and work properly? I am using Oracle 10gR2.
    DEFINE PROCEDURE foo(table_name IN VARCHAR2) IS
    l_this_row table_name%ROWTYPE;
    l_prev_row table_name%ROWTYPE;
    l_cursor SYSREFCURSOR;
    BEGIN
    OPEN l_cursor FOR
    'SELECT * FROM '
    || table_name
    || ' ORDER BY '
    || get_pk_col_name_for_table(table_name)
    || ', version_num'; --version_num is guaranteed to be a valid column name in every table, although the other column names vary in name, quantity, and type per table.
    LOOP
    FETCH l_cursor INTO l_this_record;
    EXIT WHEN l_cursor%NOTFOUND;
    -- dynamic comparison of l_this_record and l_prev_record and conditional processing based on the comparison occurs here
    l_prev_record := l_this_record;
    END LOOP;
    END;

    Billy  Verreynne  wrote:
    Well, one method is to keep the SQL projection consistent across the number of dynamic SQLs being dealt with. With the projection being consistent, your code does not need to guess what the row structure the column returns.Unfortunately, what I need to compare is almost everything except the primary keys. So one table might contain addresses and another might contain invoice headers. There's no way to get them into the same structure.
    Billy  Verreynne  wrote:
    This approach can also be done in a generic fashion - dealing with an arbitrary number of columns per row. This dynamic structure is more flexible, but also increases the complexity of the code that has to deal with this. For example:
    create or replace type TStrings is table of varchar2(4000);Now SQLs can be created to pass any number of columns to the code to process:
    select TStrings( empid, ename, jobid, date_employed, date_of_birth ) from emp order by empidThe code then uses the Count method of the TStrings type to determine the number of columns passed and processes that.Then the problem becomes having to specify all the column names. I need to figure them out dynamically, as in "SELECT column_name FROM user_tab_cols WHERE column_name NOT IN ('ID', 'PREV_ID', 'NEXT_ID')". It would, of course, be best if I didn't have to populate each array element with an individual SELECT in its own EXECUTE IMMEDIATE statement. That would certainly slow things down. If I were trying to write this using ADO.NET, I could reference something like table_name(row_index).columns(ix) without having to know any of the column names, and I could exclude columns by name using a reference like table_name.columns(column_index).name. (I don't recall the exact syntax, but it is something reasonably close to that.) But PL/SQL doesn't seem to have anything close to this.
    Ideally, I want to get it to where I can do something like this in a private function:
    FOR ix IN 1..TStrings.Count LOOP
       IF this_row(ix) <> last_row(ix) THEN
          RETURN FALSE;
       END IF;
    END LOOP;
    RETURN TRUE;
    Billy  Verreynne  wrote:Last comment. I have to echo what the others said. This is not optimal. Dealing with variant/dynamic structures and processing rows using PL/SQL (in a slow-by-slow fashion) does not scale well. Scalability and performance comes from processing data sets using SQL.I completely understand. I'm a big fan of replacing a lot of code with one SQL statement, but that just won't work for this problem.

  • Retrieve data from oracle table, table name passed in runtime into JSP

    Hello All,
    I am new to JSP, i have a requirement,
    I need to retrieve data from oracle table, here table is passed at random. how to get the data displayed in JSP page.
    can any one help me in that
    thanks

    1) Learn SQL.
    2) Learn Java.
    3) Learn JDBC.
    4) Learn DAO.
    5) Learn HTTP.
    6) Learn HTML.
    7) Learn JSP/Servlet.
    8) Learn JSTL.
    9) Apply learned things and develop.
    Whenever you stucks, please come back and post the specific coding/technical problem here.

  • Table name passed in as a parameter

    Is it possible to determine a tablename for a query dynamically?
    For instance:
    Select *
    From :parameter

    Yes. How you construct the statement depends on where you are using the statement. Is this a sql script, procedure, What?
    Is it possible to determine a tablename for a query dynamically?
    For instance:
    Select *
    From :parameter

  • How to assign an internal table record to a field symbol

    I am working in an exit and I can see the following internal table while in debug mode. SAP has saved it to memory prior to the exit being called. It is not passed to the func module.  I can see the values in the table in Debug mode by accessing that particular itab name but I cannot find a way to access a specific field value ?
    Internal table name
    (SAPMV50A)XLIPS
    I can assign (SAPMV50A)XLIPS  ..
    but not this .,,,(SAPMV50A)XLIPS[1]  which is what I want to do..??
    any ideas
    ,,BAR

    Hi bar,
    1. Do like this , and it will work.
    2. I just tried now.
    3. In mycase, the program name, and table name is different,
    so accordingly, change your code.
    4. t001 is the record 1 i want to read.
    *--- IMPORTANT VARIABLES
      <b>data : t001 like t001.</b>
      <b>field-symbols : <F> type table.</b>
      <b>data : varname(35) type c.</b>
      BREAK-POINT.
    ASSIGNMENT - NOTE []
      varname = '(ZAM_TEMP00)T001[]'.
      assign (varname) to <F>.
    READ RECORD 1 - WE CAN READ ANY
      read table <F> into t001 index 1.
    regards,
    amit m.

  • How to pass the internal table defined in program to ALV

    Hi Friends,
    I have a doubt regaring the ALV's,
    How can we pass the internal table defined in the program to ALV by not filling the attribute (I_STRUCTURE_NAME) in the REUSE_ALV_LIST_DISPLAY.
    I have tried many ways but unable to pass the structure of the internal table. I am getting the error message "Field Catalog Not Specified......" and its terminating and when i am giving the I_STRUCTURE_NAME = 'INTERNAL-TABLE-NAME' then its displaying a blank screen with all the tool-bars and icons...(No output of internal table data is seen on the screen) .
    and when i am passing the DDIC table or structure ( for eg. LFA1) to I_STRUCTURE_NAME then its displaying with any error.
    Plaese help in resolving this problem....
    Regards
    Pradeep Goli

    Hi,
    Check this thread which gives example of ALV. This will give you an idea.
    Interactive ALV
    ashish

  • GUI_DOWNLOAD with Internal table column names

    Hi!
    I am using FM 'GUI_DOWNLOAD' to download internal table to excel sheet. But, I am finding internal tables values only into excel sheet. I want Internal Table's column name as well. Please help me. and guide me.
    Thanks in advance.
    -Rupesh kayasth.

    Hi Rupesh,
        You have two tables in the Tables parameter. One is DATA_TAB where you have to provide the internal table name which data you want to download. Second one is Field Names where you can provide the column names for the internal table fields. Concatenate the column names in a string and pass it to Fields names table.
    Regards,
      Jayaram...
    Message was edited by:
            Jayarama Sarma Mudda

  • How to assign table name for select query in loop.

    Hi friends my requirement is count the no of records of all the database table which comes into an internal table ."Check the below coding". Iam  fetching the tables from dd03l table into an internal table .plz give me a sujjesion how to assign a table name in select query  in a loop.
      SELECT tabname FROM dd09l
                INTO TABLE i_dd09l
                WHERE protokoll = 'X'.
      IF sy-subrc = 0.
        SORT i_dd09l BY tabname.
      ENDIF.
      LOOP AT i_dd09l.
        SELECT COUNT(*) INTO val FROM i_dd09l-tabname.
        IF sy-subrc = 0.
          i_dd09l-count = val.
        ENDIF.
        MODIFY i_dd09l INDEX sy-index.
        CLEAR val.
      ENDLOOP.
    error : 'I_DD09L-TABNAME' is not defined in the abap dictionary as a table.

    data: dy_table type ref to data,
          dy_line type ref to data,
          xfc type lvc_s_fcat,
          ifc type lvc_t_fcat,
          dy_field type ref to data.
    LOOP AT i_dd09l.
    perform get_structure using i_dd09l-tabname .
    CREATE DATA dy_table TYPE TABLE OF (_dd09l-tab_name).
        UNASSIGN <dyn_table>.
        ASSIGN dy_table->* TO <dyn_table>.
    SELECT COUNT(*) INTO val FROM <dyn_table>.
    IF sy-subrc = 0.
    i_dd09l-count = val.
    ENDIF.
    MODIFY i_dd09l INDEX sy-index.
    CLEAR val.
    ENDLOOP.
    form get_structure using p_table.
      data : idetails type abap_compdescr_tab,
      xdetails type abap_compdescr.
      data : ref_table_des type ref to cl_abap_structdescr.
    Get the structure of the table.
      ref_table_des ?=
      cl_abap_typedescr=>describe_by_name( p_table ).
      idetails = ref_table_des->components.
      loop at idetails into xdetails.
        clear xfc.
        xfc-fieldname = xdetails-name .
        xfc-datatype = xdetails-type_kind.
        xfc-inttype = xdetails-type_kind.
        xfc-intlen = xdetails-length.
        xfc-decimals = xdetails-decimals.
        append xfc to ifc.
      endloop.
    endform.                    "get_structure
    Try like this hope it will work.
    Regards,
    madan.

  • Problem in Passing internal table Function module

    Hi experts,
    I am new to creating function module and needed certain suggestions.
    I have created a type inside the FM
    types: begin of T1
    field A
    field  B
    end of T1.
    Now, i have populated the internal table of this type but how to send it through the tables tab of my FM.
    IN the parameter, i can write my internal table name but what should be associated type ...
    Please give some suggestions

    Hi,
      Not required.
    Table parameter will behave like type table of Z_sturcture. So just define the structure and use it in the TABLE parameter.It will convert that into internal table..
    Example :
    Parameter name         Typing                Associated type
    T_RETURN                  LIKE                   your Z_structure
    If you want to give table in the import parameter, then you need to create the table type for the structure.....

  • [Function] Declare a internal table with structure name (entry parameter)

    Hi all,
    I'm explaining my problem :
    I want to create a function with two parameters in entry :
    (IMPORT)  - structure_name with type DD02L-TABNAME
    (TABLES) - t_outtab with empty type
    t_outtab will be in structure_name type.
    Now, in my source function, I want to retrieve all contain of t_outtab in another internal table or field-symbol. I don't know in advance the used structures in my function entries.
    I don't manage to get this contain, cause I can't do :
    DATA : internal_table TYPE structure_name*
    OR
    DATA : internal_table TYPE (structure_name)
    OR used field-symbol
    DATA : internal_table TYPE <fs>*  where <fs> had structure name value.
    To do more later :
    *DATA : line LIKE LINE OF internal_table. *
    *internal_table][ = t_outtab][. *
    And work with this table.
    _ I tried different solutions like : _
    Get the structure of the table.
      ref_table_des ?= cl_abap_typedescr=>describe_by_name( I_STRUCTURE_NAME ).
      idetails[] = ref_table_des->components[].
    Get the first structure table of result table
    LOOP AT idetails INTO xdetails.
        CLEAR: xfc.
        xfc-fieldname = xdetails-name .
        xfc-datatype = xdetails-type_kind.
        xfc-inttype = xdetails-type_kind.
        xfc-intlen = xdetails-length.
        xfc-decimals = xdetails-decimals.
        APPEND xfc TO ifc.
    ENDLOOP.
    Create dynamic internal table and assign to FS
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = ifc
        IMPORTING
          ep_table        = dy_table.
      ASSIGN dy_table->* TO <dyn_table>.
    Create dynamic work area and assign to FS
      CREATE DATA dy_line LIKE LINE OF <dyn_table>.
      ASSIGN dy_line->* TO <dyn_wa>.
    and retrieve to <dyn_table>[] = t_outtab[].
    the but I don't try the solution. If someone have an idea.
    Thanks and regards.
    Romain
    Edited by: Romain L on May 14, 2009 11:35 AM

    Hi,
    We can acheive this using dynamic internal tables.
    Please find sample below.
    *Creating Dynamic internal table 
      PARAMETERS : p_table(10) TYPE C.
      DATA: w_tabname TYPE w_tabname,            
            w_dref TYPE REF TO data,             
            w_grid TYPE REF TO cl_gui_alv_grid. 
      FIELD-SYMBOLS: <t_itab> TYPE ANY TABLE. 
      w_tabname = p_table. 
      CREATE DATA w_dref TYPE TABLE OF (w_tabname).
      ASSIGN w_dref->* TO <t_itab>.
    * Populating Dynamic internal table 
      SELECT *
        FROM (w_tabname) UP TO 20 ROWS
        INTO TABLE <t_itab>.
    * Displaying dynamic internal table using Grid. 
      CREATE OBJECT w_grid
        EXPORTING i_parent = cl_gui_container=>screen0. 
      CALL METHOD w_grid->set_table_for_first_display
        EXPORTING
          i_structure_name = w_tabname
        CHANGING
          it_outtab        = <t_itab>. 
      CALL SCREEN 100.
    * Scenario 2: 
    *Create a dynamic internal table with the specified number of columns. 
    * Creating Dynamic internal table
    TYPE-POOLS: slis.
    FIELD-SYMBOLS: <t_dyntable> TYPE STANDARD TABLE,  u201C Dynamic internal table name
                   <fs_dyntable>,                     u201C Field symbol to create work area
                   <fs_fldval> type any.              u201C Field symbol to assign values 
    PARAMETERS: p_cols(5) TYPE c.                     u201C Input number of columns
    DATA:   t_newtable TYPE REF TO data,
            t_newline  TYPE REF TO data,
            t_fldcat   TYPE slis_t_fldcat_alv,
            t_fldcat   TYPE lvc_t_fcat,
            wa_it_fldcat TYPE lvc_s_fcat,
            wa_colno(2) TYPE n,
            wa_flname(5) TYPE c. 
    * Create fields .
      DO p_cols TIMES.
        CLEAR wa_it_fldcat.
        move sy-index to wa_colno.
        concatenate 'COL'
                    wa_colno
               into wa_flname.
        wa_it_fldcat-fieldname = wa_flname.
        wa_it_fldcat-datatype = 'CHAR'.
        wa_it_fldcat-intlen = 10.
        APPEND wa_it_fldcat TO t_fldcat.
      ENDDO. 
    * Create dynamic internal table and assign to FS
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = t_fldcat
        IMPORTING
          ep_table        = t_newtable. 
      ASSIGN t_newtable->* TO <t_dyntable>. 
    * Create dynamic work area and assign to FS
      CREATE DATA t_newline LIKE LINE OF <t_dyntable>.
      ASSIGN t_newline->* TO <fs_dyntable>.
    *Populating Dynamic internal table 
      DATA: fieldname(20) TYPE c.
      DATA: fieldvalue(10) TYPE c.
      DATA: index(3) TYPE c. 
      DO p_cols TIMES. 
        index = sy-index.
        MOVE sy-index TO wa_colno.
        CONCATENATE 'COL'
                    wa_colno
               INTO wa_flname. 
    * Set up fieldvalue
        CONCATENATE 'VALUE' index INTO
                    fieldvalue.
        CONDENSE    fieldvalue NO-GAPS. 
        ASSIGN COMPONENT  wa_flname
            OF STRUCTURE <fs_dyntable> TO <fs_fldval>.
        <fs_fldval> =  fieldvalue. 
      ENDDO. 
    * Append to the dynamic internal table
      APPEND <fs_dyntable> TO <t_dyntable>.
    * Displaying dynamic internal table using Grid. 
    DATA: wa_cat LIKE LINE OF fs_fldcat. 
      DO p_cols TIMES.
        CLEAR wa_cat.
        MOVE sy-index TO wa_colno.
        CONCATENATE 'COL'
                    wa_colno
               INTO wa_flname. 
        wa_cat-fieldname = wa_flname.
        wa_cat-seltext_s = wa_flname.
        wa_cat-outputlen = '10'.
        APPEND wa_cat TO fs_fldcat.
      ENDDO. 
    * Call ABAP List Viewer (ALV)
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat = fs_fldcat
        TABLES
          t_outtab    = <t_dyntable>.
    Thanks,
    Jyothi
    Edited by: Jyothi on May 14, 2009 11:42 AM
    Edited by: Jyothi on May 14, 2009 11:43 AM

  • Passing a internal table from method

    Hi All,
       I am using Object Oriented Programming in my program.
       I want to pass a Internal Table from a method calling statement written in a start-of-selection.
       Can any one give me the syntax for
    1. Declaring a method with importing parameter as internal table.
    2. Syntax for Method Implementation
    3. Syntax for calling the method from start-of-selection.
    helpful answers are rewarded.
    Regards,
    Azaz Ali.

    Hi,
      Calling Method is similar to calling function Module.
    CALL METHOD cl_gui_frontend_services=>gui_download
       exporting
          filename    =
    IMPORTING
       FILELENGTH                =
      changing
        data_tab                  = <b>( this is ur internal table name )</b>*  EXCEPTIONS
       FILE_WRITE_ERROR          = 1.
    <b>In OO ABAP u avoid creating table with header line</b>
    Best way to call method is to use <b>PATTERN</b> Button  
    1) Click Pattern Button
    2) Select Abap Object Pattern
    3) Enter
    4) Select Call Method
    5) Enter instance name ( i. e  used for create object ) ( No need for static method like gui_download )
    6) Enter Class / Interface name
    7) Enter Method Name
    done.
    <b>passing value to method is similar to FM.
    Creating internal table for Method
    any TYPE ........SAY  TY_Intern
    Then Syntax Should Be
    DATA : OO_INTERNAL_TABLe type table of TY_Intern.
    pass this to the Method.
    Hope This will solve ur problem.
    Please Mark Helpful Answers</b>
    Message was edited by: Manoj Gupta

  • Error in passing internal table as returning parameter

    Hi
    Im new to ABAP OO.
    I declared a parameter ret_kna1 Returning Type KNA1.
    Inside the method, I am retrieving data from table KNA1 into internal table and then I want return the interal table value.
    But Im not able to assing the internal table for eg : code
    method READ_CUSTOMER_LIST.
    data: lt_kna1 type TABLE OF kna1,
          wa_kna1 LIKE LINE OF lt_kna1.
    data: lv_kunnr type kna1-kunnr,
          lv_land1 type kna1-LAND1.
    SELECT * FROM kna1
    INTO TABLE lt_kna1
    WHERE land1 eq lv_land1.
    insert LINES OF lt_kna1 INTO TABLE ret_kna1.
    endmethod.
    when I try to activate the error says 'ret_kna1 is not an internal table  "OCCURS n" specification is missing.
    but I can not declare the internal table 'ret_kna1' once again in the code, as it already defined in the parameter as type KNA1.
    please help me how to assign internal table values to the returing structur.

    Are you passing it as an EXPORT parameter?
    use and define it in the TABLES section of your function module as so:
    *"  IMPORTING
    *"     VALUE(INCLUDE_X_LEVELS) TYPE  CHAR1 OPTIONAL
    *"  TABLES
    *"      I_SELECTED_OU STRUCTURE  HRROOTOB
    *"      I_SELECTED_EE STRUCTURE  OBJEC
    *"      E_VIP_EPM_DISTR STRUCTURE  ZHR_VIP_EPM_DISTR
    *"      E_RETURN STRUCTURE  BAPIRET1
    That way you can pass value in the table (if needed) and then pass the table with your values based on your own logic

Maybe you are looking for