Passing tables with PERFORM statement

Hi all,
There is a table returned by a function module ZCDAPO_MATNR_CHECK_FOR_QUOTA .
I want to use the table returned by this FM  in a subroutine.
So i pass this table thru FORM statement.
within  PERFORM  and ENDFORM i want to use the data in this table
and do some manipulation.
but i am getting an error saying for typing TABLES parameter only table types should be used
can anyone tell me where i am going wrong or please tell me how use tables in this PERFORM statement.for reference i will paste the code below,
TYPES  : BEGIN OF x_quota     ,
               trpid type ztrpid    ,
               quota TYPE decv1_3   , 
               END OF x_quota       .
DATA :  it_qheader TYPE TABLE OF zapo_trqtah,
             wa_it_qheader LIKE LINE OF it_qheader.
DATA:    it_qitem TYPE TABLE OF zapo_trqtap,
             wa_it_qitem LIKE LINE OF it_qitem.
DATA   : it_quotavalue      TYPE TABLE OF x_quota                    ,
              wa_it_quotavalue   LIKE LINE  OF it_quotavalue              .
CALL FUNCTION 'ZCDAPO_MATNR_CHECK_FOR_QUOTA'
      EXPORTING
        i_matnr            = 'AATESTQUOTA2'
        i_werks            = '5034'
      IMPORTING
        e_quota_exist_flag = lv_flag
      TABLES
        t_zapo_trqtap      = it_qitem
        t_zapo_trqtah      = it_qheader
      EXCEPTIONS
        invalid_input      = 1
        OTHERS             = 2.
perform f_loadquota_apo TABLES it_qitem.
form f_loadquota_apo tables it_qitem type zapo_trqtap.
                 LOOP AT it_qitem INTO wa_it_qitem.
                 wa_it_quotavalue-trpid = wa_it_qitem-ztrpid.
                 wa_it_quotavalue-quota = wa_it_qitem-zquota / lv_sum.
                 append wa_it_quotavalue to it_quotavalue.
                 endloop.
endform.

Hi..
Using TABLES is like obselete.
So change your code like this:
Call the Subroutine like this:
<b>perform f_loadquota_apo using it_qitem[].</b>
You can change the Definition of Form like this:
<b>form f_loadquota_apo USING  it_qitem LIKE zapo_trqtap[].</b>
LOOP AT it_qitem INTO wa_it_qitem.
wa_it_quotavalue-trpid = wa_it_qitem-ztrpid.
wa_it_quotavalue-quota = wa_it_qitem-zquota / lv_sum.
append wa_it_quotavalue to it_quotavalue.
endloop.
endform.
<b>Reward if Helpful</b>

Similar Messages

  • Tables with locked stats

    Hi: I am on 10.2.0.3.
    Anybody know a view which shows thw tables with locked stats?
    Thanks,
    Greg

    You can find table lock details from dba_tables / all_tables check table_lock column
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2.htm#i1592091

  • Left outer join 3 tables with where-statement

    Hi folks,
    I hope you can understand (and maybe solve) my problem.
    Generally I try to left outer join three tables. The third table is used for a WHERE-statement.
    The three table structures are the following:
    table 1 (user)   
    user1 | key
    table 2 (detail)  
    key | ID
    table 3 (header)
    ID | user2                 
    ...and I want to achieve the following structure (as example filled with data):
    user | key | ID
    |-----|----
    xy    | a    | 001
    xy    | b    | #
    z     | b     | #
    The clue ist the usage of the third table. I need the table to set user1 and user2 equal (WHERE) but there are two problems:
    1) Obviously I can't left outer join two tables with each other. In this case I already used the 'key' of table 1 to join it with the 'key' of table 2. So I can't left outer join the 'ID' of table 2 with the 'ID' of table 3. Error message that I can only left outer join a table once. Any proposals?
    2) I have to include a WHERE to equal user1 with user2. But I am not allowed to use the user2 from table 3 because of the left outer join.
    I tried this coding:
    SELECT auser1 akey b~id INTO TABLE itab FROM ( table1 AS a
      LEFT OUTER JOIN table2 AS b ON akey = bkey )
      LEFT OUTER JOIN table3 AS c ON bID = cID )
      WHERE auser1 = cuser2.
    I would really appreciate your help.
    Regards
    MrclSpdl

    IF you want to join a DB table with an internal table, you need to use the 'FOR ALL ENTRIES' statement.
    select dbfields
    into table itab2
    from dbtab
    for all entries in itab
    where dbfield1 = itab-field1.
    This will get you a second internal table with all the corresponding data for the first selection.  You can then join them with a loop through the first table and a read table on the second table (for 1 - 1 relation) or a nested loop statement on both tables (for 1 - N relation).  Make itab a hashed table when using read table with key, use a sorted table if you need to loop without key access.
    Regards,
    Freek

  • Problem with perform statement

    Hi All,
        I 'm in PAI event. i'm writing code for a check box. there
              CASE SY-UCOMM.
                  when 'FC'.
                 here i need to write a select statement like
         select field from database into itab where field1 = itab1-field1.
                    This itab1 data is in the following form.
    FORM user_comm USING r_ucomm LIKE sy-ucomm
                                      rs_selfield TYPE slis_selfield.
    so how can i use this form in my PAI?
    can anybody help me.
    thanks
    g.s.naidu

    Hi can anybody tell me how can i write a perform statement for a form statement.
    i want to write a perform statement for this
    " FORM user_double_click_on_sumry USING r_ucomm LIKE sy-ucomm
                                      rs_selfield TYPE slis_selfield.
    this is from alv grid function module   when we try to move to next screen we pass this parameter.
                i_callback_user_command = 'user_double_click_on_sumry'.
    now i want to use this form statement some where else. so can anybody tell me how can i write the perform for the above form statement.
    thanks
    g.s.naidu

  • How to insert a table with ref statement?

    the script:
    CREATE OR REPLACE TYPE B_T AS OBJECT (
    type varchar(6),
    value number(2));
    create table Bo of B_T;
    insert into Bo values('a',0);
    insert into Bo values('b',1);
    create or replace type try_T AS OBJECT(
    iii number(10),
    aaa ref B_T);
    create table try of try_T
    (scope for (aaa) is Bo);
    how to insert into the "try" table?
    the statement:
    insert into try values(4,B_T('a'))
    or :
    insert into try values(4, ref(t) from bo t where bo.type='a');
    both are erro.
    help me please.

    Hi,
    Right click the mouse->create->table
    If you want 5 columns, you need to declare 5 cells in one line type of the table
    Click on Table -> Details, then do the following
    Line Type 1 2 3 4 5
    L1 2mm 3mm etc
    Here specify the width of the columns as many as you want..
    then in the header/main area of the table, click create Table Line, Rowtype is L1, automatically 5 cells will come,In each cell create a text element, display the variable to be printed there.

  • Check the range of values of an internal table with the statement IN

    Hi,
    I'd like to know how to check if the current contents of a field are in the set described by an internal table.
    I know I have to use the statement <b>IN</b>, but I don't know exactly how to define the internal table. In my case, I have a single field (<i>tipo_doc</i>) in my internal table which stores 4 different values: C, I, K, L.
    I want to use the statement <b>IN</b> as shown next:
    SELECT * FROM VBFA APPENDING CORRESPONDING FIELDS OF TABLE it_flujo_docs WHERE ( VBELN = it_total_fact-vbeln )
                          AND ( VBTYP_V <b>IN</b> itab).
    Then I'd like to know how the internal table <i>itab</i> should be defined. It should be something like this I think, but it doesn't work:
    DATA: BEGIN OF itab OCCURS 0,
            tipo_doc LIKE zpedidos-tipo_doc,
            tipo_doc-sign = 'I',
            tipo_doc-option = 'EQ',
            tipo_doc-low = C,
            tipo_doc-high = L,
        END OF it_tipo_doc_ped.
    I'd appreciate if someone could tell me the proper way to define it.
    Thanks in advance,
    Gerard

    Hi,
    Please follow this.
    RANGES R_VBTYP FOR VBFA-VBTYP_V.
    R_VBTYP-SIGN = 'I'.
    R_VBTYP-OPTION = 'EQ'.
    R_VBTYP-LOW = 'C'.
    CLEAR R_VBTYP-HIGH.
    APPEND R_VBTYP.
    Do the same for value 'I', 'K' and 'L'.
    Now in the SELECT statement replace the following
    VBTYP_V IN itab
    with
    VBTYP_V IN R_VBTYP.
    Thanks
    Vinod

  • Join table with additional state

    I have two entities:
    A: @Id String acronym;
    B: @Id String name;
    and I need to create a relationship between these tables adding a new attribute:
    @Entity
    @SecondaryTables( {
              @SecondaryTable(name = "A", pkJoinColumns = @PrimaryKeyJoinColumn(name = "A_ACRONYM", referencedColumnName = "acronym")),
              @SecondaryTable(name = "B", pkJoinColumns = @PrimaryKeyJoinColumn(name = "B_NAME", referencedColumnName = "name")) })
    public class C implements Serializable {
         private static final long serialVersionUID = PujAbstractEntity.serialVersionUID;
         @Id
         @Column(name="acronym")
         private String acronym;
         @Id
         @Column(name="name")
         private String name;
    ERROR:
    [exec] Exception Description: An incomplete @PrimaryKeyJoinColumns was specified on the annotated element [class com.kenai.puj.arena.model.entity.PujInstitutionRoles]. When specifying @PrimaryKeyJoinColumns for an entity that has a composite primary key, a @PrimaryKeyJoinColumn must be specified for each primary key join column using the @PrimaryKeyJoinColumns. Both the name and the referencedColumnName elements must be specified in each such @PrimaryKeyJoinColumn.
    ????? any tip ?

    Thanks but I am still facing problems...
    --------- PujInstitutionEntity:
    @Entity
    public class PujInstitutionEntity extends PujAbstractRootEntity {
         @Id
         @Column(length = 20)
         private String acronym;
    --------- PujCompetitionEntity:
    @Entity
    public class PujCompetitionEntity extends PujAbstractRootEntity {
         @Id
         @Column(length = 12)
         private String name;
    --------- PujInstitutionRoles (the mapping):
    @Entity
    @IdClass(PujInstitution_Roles_ID.class)
    public class PujInstitutionRoles extends PujAbstractEntity {
         @ManyToOne
         @PrimaryKeyJoinColumn(name = "INSTITUTION_ACRONYM", referencedColumnName = "acronym")
         private PujInstitutionEntity institution;
         @ManyToOne
         @PrimaryKeyJoinColumn(name = "COMPETITION_NAME", referencedColumnName = "name")
         private PujCompetitionEntity competition;
    ---------- The deployment failure:
    [exec] Exception Description: Predeployment of PersistenceUnit [arenapuj] failed.
    [exec] Internal Exception: Exception [EclipseLink-7150] (Eclipse Persistence Services - 2.0.0.v20091009-r5515): org.eclipse.persistence.exceptions.ValidationException
    [exec] Exception Description: Invalid composite primary key specification. The names of the primary key fields or properties in the primary key class [com.kenai.puj.arena.model.entity.PujInstitution_Roles_ID] and those of the entity bean class [class com.kenai.puj.arena.model.entity.PujInstitutionRoles] must correspond and their types must be the same. Also, ensure that you have specified ID elements for the corresponding attributes in XML and/or an @Id on the corresponding fields or properties of the entity class.

  • Question about reading generic tables with keys

    Hello
    I'm wondering if it's possible to read a generic table with key statement:
    FIELD-SYMBOLS:
        <lv_key>         TYPE zconf_key,
        <lt_data_bi>     TYPE INDEX TABLE,
        <lt_data_ai>     TYPE INDEX TABLE,
        <ls_data_bi>     TYPE any,
        <ls_data_ai>     TYPE any.
    * create data types
      CREATE DATA lt_data_bi TYPE (ls_node-data_table_type).
      ASSIGN lt_data_bi->* TO <lt_data_bi>.
      CREATE DATA lt_data_ai TYPE (ls_node-data_table_type).
      ASSIGN lt_data_ai->* TO <lt_data_ai>.
    * do check
      LOOP AT <lt_data_ai> ASSIGNING <ls_data_ai>.
        ASSIGN COMPONENT 'KEY' OF STRUCTURE <ls_data_ai> TO <lv_key>.
        READ TABLE <lt_data_bi> WITH KEY key = <lv_key>
        ASSIGNING <ls_data_bi> BINARY SEARCH.
    I receive the message: "The specified type has no structure and therefore no component called KEY" in the read statement above.
    Does anyone has an idea what I can do here?
    Regards,
      Mathias

    Mathias Glockner wrote:
    >     READ TABLE <lt_data_bi> WITH KEY key = <lv_key>
    In your structure ls_data_bi there is no field called KEY . please check whether you have field KEY in structure
    a®s

  • Passing itab in a perform statement

    Hi Experts,
    In a Fucn Module, I need to write a perform statement and the corresponding FORM lies in an include. I need to pass an internal table(itab) & workarea(wa_itab) in perform as below :
    Declaration of itab:
    types: BEGIN OF ty_out1,
             f1(16) TYPE c,
             f2 TYPE wrbtr,
           END OF ty_out1.
    data : itab type standard table of ty_out1,
              wa_itab type ty_out1,
    PERFORM <form name> tables itab
      USING wa_itab
      test1.
    Dbl click on above perform takes us to an include prog and the form is declared as below -
    what should be the syntax of the FORM in INCLUDE statement.
    Note: I should not use the top include of the main prog for any declarations.
    form search_slash tables ptab2 like itab
                   using wa2_itab like wa_itab
                   test2 .
    Now what should be the syntax of the form above? Is the above right?
    Please suggest
    Thanks
    Dan

    Hi,
    If you want to pass only the internal table with header line,
    then use tables ptab2 structure wa2_itab
    For internal table with header line use:
    tables ptab2 like wa2_itab
    or
    tables ptab2[ ] like wa2_itab.
    Hope this helps.
    Reward if helpful.
    Regards,
    Sipra

  • Pass table name as parameter in prepared Statement

    Can I pass table name as parameter in prepared Statement
    for example
    select * from ? where name =?
    when i use setString method for passing parameters this method append single colon before and after of this parameter but table name should be send with out colon as SQL Spec.
    I have another way to make sql query in programing but i have a case where i have limitation of that thing so please tell me is it possible with prepared Statment SetXXx methods or not ?
    Thanks
    Haroon Idrees.

    haroonob wrote:
    I know ? is use for data only my question is this way to pass table name as parameterI assume you mean "how can I do it?" As I have already answered "is this the way?" with no.
    Well, I would say (ugly as it is) String concatenation, or stored procedures.

  • Query performance on same table with many DML operations

    Hi all,
    I am having one table with 100 rows of data. After that, i inserted, deleted, modified data so many times.
    The select statement after DML operations is taking so much of time compare with before DML operations (There is no much difference in data).
    If i created same table again newly with same data and fire the same select statement, it is taking less time.
    My question is, is there any command like compress or re-indexing or something like that to improve the performance without creating new table again.
    Thanks in advance,
    Pal

    Try searching "rebuilding indexes" on http://asktom.oracle.com. You will get lots of hits and many lively discussions. Certainly Tom's opinion is that re-build are very rarley required.
    As far as I know, Oracle has always re-used deleted rows in indexes as long as the new row belongs in that place in the index. The only situation I am aware of where deleted rows do not get re-used is where you have a monotonically increasing key (e.g one generated by a seqence), and most, but not all, of the older rows are deleted over time.
    For example if you had a table like this where seq_no is populated by a sequence and indexed
    seq_no         NUMBER
    processed_flag VARCHAR2(1)
    trans_date     DATEand then did deletes like:
    DELETE FROM t
    WHERE processed_flag = 'Y' and
          trans_date <= ADD_MONTHS(sysdate, -24);that deleted the 99% of the rows in the time period that were processed, leaving only a few. Then, the index leaf blocks would be very sparsely populated (i.e. lots of deleted rows in them), but since the current seq_no values are much larger than those old ones remaining, the space could not be re-used. Any leaf block that had all of its rows deleted would be reused in another part of the index.
    HTH
    John

  • Issue when passing table parameter to perform...

    Hello,
    I have a table parameter (S_KOSTL) defined as RSRANGE in a function module.
    Now when I am passing the table to an perform staeement as follows:
    PERFORM get_cost_center_info USING s_kostl
                                       CHANGING lt_output.
    Inside the form routine I am using following:
    FORM get_cost_center_info USING S_KOSTL TYPE RSRANGE
                                            CHANGING ct_output TYPE tt_output.
    LOOP AT it_ausp INTO ls_ausp WHERE atwrt IN s_kostl.
    ENDLOOP.
    But it says relational operator 'IN' not supported even if I defined S_KOSTL LIKE RSRANGE in function module tbale parameter.
    Please help.
    Regards,
    Rajesh.

    Since you are passing the Range which is a Table you have to pass it with the TABLES addition instead of the Using.
    Try like this:
    PERFORM get_cost_center_info TABLES s_kostl
    CHANGING lt_output.
    Inside the form routine I am using following:
    FORM get_cost_center_info TABLES S_KOSTL TYPE RSRANGE
    CHANGING ct_output TYPE tt_output.
    LOOP AT it_ausp INTO ls_ausp WHERE atwrt IN s_kostl.
    ENDLOOP.
    Regards,
    Naimesh Patel

  • Passing diff internaltables in single perform statement

    hi all,
    hw can v pass diff internal tables to a single form.
    4 internal tables with diff structures
    each time i have to pass 1 internal table to that form.... hw can it possible, can anybody explian me with example.....
    <REMOVED BY MODERATOR>
    thanks
    Edited by: Alvaro Tejada Galindo on Jan 29, 2008 9:59 AM

    hi all,
    thanx for reply... but i did not understand hw to pass internal tables,
    for expample i have 4 internal tables with diff structures.
    it_mara
    it_mard
    it_vbrp
    it_vbrk
    1)in perform routine using it_mara.
    in form routine it_mara type <table name>
    endform.
    2nd time in perform using it_mard.
    in perfrom v cna change table but hw can v change in form.
    kindly reply if u know the solution
    thanks

  • Oracle 11.2 - Perform parallel DML on a non partitioned table with LOB column

    Hi,
    Since I wanted to demonstrate new Oracle 12c enhancements on SecureFiles, I tried to use PDML statements on a non partitioned table with LOB column, in both Oracle 11g and Oracle 12c releases. The Oracle 11.2 SecureFiles and Large Objects Developer's Guide of January 2013 clearly says:
    Parallel execution of the following DML operations on tables with LOB columns is supported. These operations run in parallel execution mode only when performed on a partitioned table. DML statements on non-partitioned tables with LOB columns continue to execute in serial execution mode.
    INSERT AS SELECT
    CREATE TABLE AS SELECT
    DELETE
    UPDATE
    MERGE (conditional UPDATE and INSERT)
    Multi-table INSERT
    So I created and populated a simple table with a BLOB column:
    SQL> CREATE TABLE T1 (A BLOB);
    Table created.
    Then, I tried to see the execution plan of a parallel DELETE:
    SQL> EXPLAIN PLAN FOR
      2  delete /*+parallel (t1,8) */ from t1;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 3718066193
    | Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | DELETE STATEMENT      |          |  2048 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  DELETE               | T1       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 |  2048 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR |          |  2048 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL| T1       |  2048 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    PLAN_TABLE_OUTPUT
    Note
       - dynamic sampling used for this statement (level=2)
    And I finished by executing the statement.
    SQL> commit;
    Commit complete.
    SQL> alter session enable parallel dml;
    Session altered.
    SQL> delete /*+parallel (t1,8) */ from t1;
    2048 rows deleted.
    As we can see, the statement has been run as parallel:
    SQL> select * from v$pq_sesstat;
    STATISTIC                      LAST_QUERY SESSION_TOTAL
    Queries Parallelized                    1             1
    DML Parallelized                        0             0
    DDL Parallelized                        0             0
    DFO Trees                               1             1
    Server Threads                          5             0
    Allocation Height                       5             0
    Allocation Width                        1             0
    Local Msgs Sent                        55            55
    Distr Msgs Sent                         0             0
    Local Msgs Recv'd                      55            55
    Distr Msgs Recv'd                       0             0
    11 rows selected.
    Is it normal ? It is not supposed to be supported on Oracle 11g with non-partitioned table containing LOB column....
    Thank you for your help.
    Michael

    Yes I did it. I tried with force parallel dml, and that is the results on my 12c DB, with the non partitionned and SecureFiles LOB column.
    SQL> explain plan for delete from t1;
    Explained.
    | Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | DELETE STATEMENT      |          |     4 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  DELETE               | T1       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 |     4 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR |          |     4 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL| T1       |     4 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    The DELETE is not performed in Parallel.
    I tried with another statement :
    SQL> explain plan for
    2        insert into t1 select * from t1;
    Here are the results:
    11g
    | Id  | Operation                | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | INSERT STATEMENT         |          |     4 |  8008 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  LOAD TABLE CONVENTIONAL | T1       |       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR         |          |       |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)   | :TQ10000 |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR    |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL   | T1       |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    12c
    | Id  | Operation                          | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | INSERT STATEMENT                   |          |     4 |  8008 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  PX COORDINATOR                    |          |       |       |            |          |        |      |            |
    |   2 |   PX SEND QC (RANDOM)              | :TQ10000 |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   3 |    LOAD AS SELECT                  | T1       |       |       |            |          |  Q1,00 | PCWP |            |
    |   4 |     OPTIMIZER STATISTICS GATHERING |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    |   5 |      PX BLOCK ITERATOR             |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    It seems that the DELETE statement has problems but not the INSERT AS SELECT !

  • Pass the internal table with different structures to the class module

    Hi ,
    I have created a class method to fill up the data in XML format. the method can be called from various programs with internal table with different structures. I want to pass it as dynamic How can I do that.
    I tried to declare that as type any.
    but not working.
    regards,
    Madhuri

    Hi,
    You could work with data reference.
    Use GET REFERENCE OF itab INTO data_ref for passing the internal table to your method, and dereference it within the method with ASSIGN statement...
    DATA: lr_data TYPE REF TO data.
    GET REFERENCE OF itab INTO lr_data.
    CALL METHOD meth EXPORTING pr_data = lr_data.
    METHOD meth.
      FIELD-SYMBOLS <fs> TYPE ANY TABLE
      ASSIGN pr_data->* TO <fs>.
    ENDMETHOD.
    Kr,
    Manu.

Maybe you are looking for