Dynamic tables derived from ddic tables

I'm trying to create an internal table, which contains a lot of components of existing tables, but not all.
So i tried to get the type description of the existing table, delete the not needed fields and create a new table by RTTS.
Here is my code:
REPORT  ZCA_SW_DYNAMIC_TYPES.
data:
  dref          type ref to data,
  desc_table    type ref to cl_abap_tabledescr,
  desc_struc    type ref to cl_abap_structdescr,
   it_components type abap_component_tab,
   wa_components type abap_componentdescr.
FIELD-SYMBOLS:
  <it_out>      type STANDARD TABLE.
START-OF-SELECTION.
    desc_struc ?= cl_abap_typedescr=>describe_by_name( 'T001' ).
    it_components = desc_struc->get_components( ).
    delete it_components WHERE name = 'MANDT'.
    desc_struc = cl_abap_structdescr=>create( it_components ).
    desc_table = cl_abap_tabledescr=>create( desc_struc ).
    create data dref type HANDLE desc_table.
    assign dref->* to <it_out>.
    select *
    from t001
    into CORRESPONDING FIELDS OF TABLE <it_out>.
    write:/ 'Done'.
This works fine, but now i'm stucked. The reason is that it_components does not contain all compoents by name, T001 has an include and an append, and these are not resolved in the table it_components. If i want to delete the component BUKRS_GLOB i cant do that cause its in an include.
How can i get it_componets filled so that only elementary compoents are given and resulting includes are resolved?

Hi
Try to manage every single field (field by field) in order to create the internal table:
.PARAMETERS: P_TAB TYPE DDOBJNAME.
DATA: T_FIELDS TYPE TABLE OF DFIES.
DATA: _LEN           TYPE I,
      _DEC           TYPE I.
DATA: LR_VALUE_DESCR  TYPE REF TO CL_ABAP_ELEMDESCR.
DATA:
  DREF          TYPE REF TO DATA,
  DESC_TABLE    TYPE REF TO CL_ABAP_TABLEDESCR,
  DESC_STRUC    TYPE REF TO CL_ABAP_STRUCTDESCR,
   IT_COMPONENTS TYPE ABAP_COMPONENT_TAB,
   WA_COMPONENTS TYPE ABAP_COMPONENTDESCR.
FIELD-SYMBOLS:
  <IT_OUT>      TYPE STANDARD TABLE.
START-OF-SELECTION.
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      TABNAME   = P_TAB
    TABLES
      DFIES_TAB = T_FIELDS.
  LOOP AT T_FIELDS INTO DFIES WHERE FIELDNAME NE 'MANDT'.
    WA_COMPONENTS-NAME = DFIES-FIELDNAME.
    MOVE DFIES-LENG     TO _LEN.
    MOVE DFIES-DECIMALS TO _DEC.
    CASE DFIES-DATATYPE.
      WHEN 'CHAR' OR 'LANG' OR 'CUKY'.
        MOVE CL_ABAP_ELEMDESCR=>GET_C( P_LENGTH = _LEN )
                                                      TO LR_VALUE_DESCR.
      WHEN 'NUMC'.
        MOVE CL_ABAP_ELEMDESCR=>GET_N( P_LENGTH = _LEN )
                                                      TO LR_VALUE_DESCR.
      WHEN 'INT1' OR 'INT2' OR 'INT4'.
        MOVE CL_ABAP_ELEMDESCR=>GET_I( ) TO LR_VALUE_DESCR.
      WHEN 'DATS'.
        MOVE CL_ABAP_ELEMDESCR=>GET_D( ) TO LR_VALUE_DESCR.
      WHEN 'DEC' OR 'CURR'.
        MOVE CL_ABAP_ELEMDESCR=>GET_P( P_LENGTH   = _LEN
                                       P_DECIMALS = _DEC )
                                                      TO LR_VALUE_DESCR.
      WHEN 'TIMS'.
        MOVE  CL_ABAP_ELEMDESCR=>GET_T( ) TO LR_VALUE_DESCR.
      WHEN OTHERS'.
        CONTINUE.
    ENDCASE.
    WA_COMPONENTS-TYPE = LR_VALUE_DESCR.
    INSERT WA_COMPONENTS INTO TABLE IT_COMPONENTS.
  ENDLOOP.
  DESC_STRUC = CL_ABAP_STRUCTDESCR=>CREATE( IT_COMPONENTS ).
  DESC_TABLE = CL_ABAP_TABLEDESCR=>CREATE( DESC_STRUC ).
  CREATE DATA DREF TYPE HANDLE DESC_TABLE.
  ASSIGN DREF->* TO <IT_OUT>.
  SELECT *
  FROM (P_TAB)
  INTO CORRESPONDING FIELDS OF TABLE <IT_OUT>.
  WRITE:/ 'Done'.
Max

Similar Messages

  • Defining table from DDIC-structure dynamically

    Hi folks!
    Does anybody know whether it is possible to build an internal table from DDIC-structures dynamically?
    I have a deep structured itab_upload(whose structure is defined in the DDIC), which contains 2 fields(Number Name) and a third field which contains  itab_desc.
    This itab_desc can contain either 2 fields(Number Name) and a third field which contains another itab_desc  <b>or</b>  3 fields for numbers(without any other itab).If itab_desc contains another itab_desc, the second itab_desc contains only 3 fields for numbers and names...
    help will be very appreciated and points will be rewarded!
    Felix

    Hi Felix,
    Please find below the material which will help you to solve your problem :-
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/b332e090-0201-0010-bdbd-b735e96fe0ae
    Please reward points if helpful.
    Regards.
    Srikanta Gope.
    [email protected]

  • HR Logical database PNP. OO to fill table dynamic table  from PNP  ?

    Hi all
    I want to get some stuff from the HR logical database into a dynamic table
    Here's a real simple example that writes info out to a normal list.
    (report is based on using Logical DB PNP)
    tables: pernr.
    INFOTYPES: 0001,                     "Organizational Assignment
               0002.                     "Personal Data
    SELECT-OPTIONS: language FOR p0002-sprsl.
    INITIALIZATION.
      pnptimed = 'D'.
    GET pernr.
      PROVIDE * FROM p0002 BETWEEN pn-begda AND pn-endda.
        CHECK language.
        WRITE: / p0002-pernr,
                 sy-vline,
                 p0001-ename,
                 sy-vline,
                 p0002-sprsl,
                 sy-vline,
                 p0002-gbdat.
      ENDPROVIDE.
    endform.
    Now what I want to do is replace the write stuff by appending the entries into a dynamic table which I will display as an ALV Grid.
    so I add my structure in the data declarations
    types:  begin of s_elements,
       pernr  type  p0002-pernr,
       ename  type p0001-ename,
       sprsl  type p0002-sprsl,
       gbdat   type p0002-gbdat.
      drop_down_handle  type int4.
    types: end of    s_elements.
    include zz_jimbo_incl.
    build the dynamic table
    create data dref type s_elements.
      assign dref->* to <fs>.
      i_routine = 'POPULATE_DYNAMIC_ITAB'.*
    i_names   = 'NAME_COLUMNS'.
      i_gridtitle = 'HR  TEST'.
    invoker = sy-repid.
    i_zebra = 'X '.
    i_edit = '  '.
    call function 'ZZ_CALL_SCREEN'
         exporting
              invoker     = invoker
              my_line     = <fs>
              i_gridtitle = i_gridtitle
              i_edit      = i_edit
              i_zebra     = i_zebra
              i_names     = i_names
              i_routine   = i_routine
         importing
              z_object    = z_object
              dy_table    = dy_table.
    Now to populate the dynamic Itab the routine below is entered.
    form populate_dynamic_itab changing dy_table.
      assign dy_table->* to <dyn_table>.
      create data dy_line like line of <dyn_table>.
      assign dy_line->* to <dyn_wa>.
    However I can't use GET / PROVIDE / ENDPROVIDE in a Form.
    Anyway round this ---seems HR has an aversion to OO.
    Cheers
    jimbo

    Hi,
    well, GET_PERNR is a so called event_statement. It has nothing to do with ABAP 00.
    Normally it will be like this:
    START-OF-SELECTION.
    GET_PERNR.
    PROVIDE ....
    END-OF-SELECTION.
    -> and here the CALL SCREEN NNNN for ALV-Display.
    Provide-statements you can use in forms of course, and as many times you want during GET and END-OF-SELECTION.
    But as I understood : you just want to save the write-statements?
    I always develop a DDIC-Structure, declarate the data objects in the programm, read the data via Provide into the infotypes, and then make a move-corresponding to my structure. and display it.
    Normally no problem.
    kind regards
    maik

  • How to get metadata option list values derived from a table/view using SOAP

    I am writing an ASP.NET application that replicates some of the features of the SCS search interface. I have looked at the GET_DOC_METADATA_INFO service and its SOAP output. It has a few missing pieces of information, like the option list values for a field if that fields values are derived from a separate table/view. Some of the fields I am dealing with also make use of Dynamic Control Lists (DCL). Is there a way to get the DCL info using SOAP? I did notice that the dOptionListKey element contains the name of the view from which the option list values will be derived. However, I cannot find a service that takes the view name as a parameter to return the option list values. I have looked in the services reference manual, but I have not had any luck finding what I am looking for.
    TIA
    - Tyson
    Message was edited by: Add the word 'get' to the subject.
    Tyson

    Hello,
    What error you are getting? You code seems to be ok. I have tested below code and working fine
    XPathNavigator rTable = MainDataSource.CreateNavigator();
    String ddlSectionSelectedValue = Convert.ToString(rTable.SelectSingleNode("/my:myFields/my:ddlSection", NamespaceManager).Value);
    One think you can check that keep dropdown value display name and id same.
    Hemendra:Yesterday is just a memory,Tomorrow we may never see<br/> Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • How to create a structure which can hold a dynamic table as a field in DDIC

    Hi ,
           I am designing a solution for a problem and have a unique requirement.  I need to create a structure which can hold a field where dynamic table data can be stored.  Let me illustrate with an example :
    My structure  ( say  Z_output_struc ) will have the fields
    Table_name  Table_Data
    My function module will have a table type of the above structure, so in effect ,my output can have multiple table names and related to each of them, there will be table data of that table name. The issue is how do I configure this in DDIC ?
    I tried creating table_data as "Type ref to Data"  but was stuck  inside the func module when I tried to transfer data to this.
    Any pointers as to how to think about this differently ? 
    Best Regards,
    Girish

    Hi Girish,
    you start directly from the ref to data. You assign it to a field symbol and cast this to the type of the destination of your select. So you can directly add the reference to the cache:
    I hope this example helps a bit (I took a form instead of a function module as it is easier to add here and used an hr table as kna1 is empty on my test system):
    REPORT  z_rwe_99_dyn_tab_cache.
    * type definition
    TYPES:
      BEGIN OF _s_cache,
        table TYPE        tabname16,
        cache TYPE REF TO data,
      END   OF _s_cache,
      _t_cache TYPE STANDARD TABLE OF _s_cache.
    * data declaration
    DATA:
      lv_table     TYPE tabname16,
      lv_condition TYPE string,
      lt_cache     TYPE _t_cache.
    * define table and condition
    lv_table     = 'HRP1000'.
    lv_condition = 'plvar = ''01'' and otype = ''S'' and objid = ''50000016'''.
    * get the result of a single table into the cache
    PERFORM get_dyn_table USING
                            lv_table
                            lv_condition
                          CHANGING
                            lt_cache.
    * form to read a single table
    FORM get_dyn_table USING
                         iv_table     TYPE tabname16
                         iv_condition TYPE string
                       CHANGING
                         ct_cache     TYPE _t_cache.
      FIELD-SYMBOLS:
        <lt_table> TYPE ANY TABLE.
      DATA:
        ls_cache TYPE        _s_cache,
        lr_data  TYPE REF TO data.
      CREATE DATA lr_data TYPE STANDARD TABLE OF (iv_table).
      ASSIGN lr_data->* TO <lt_table>.
      SELECT * FROM (iv_table) INTO TABLE <lt_table>
        WHERE
          (iv_condition).
      ls_cache-table = lv_table.
      ls_cache-cache = lr_data.
      APPEND ls_cache TO ct_cache.
    ENDFORM.                    "get_dyn_table
    If you have more questions just give another post.
    Best Regards
    Roman

  • Layout issue: sql report region and items derived from a different table

    Hi all,
    I have a report region whose source is a sql query. I am trying to display other items in the same region(These I added manually on the page and they come from another table in the schema). It works fine, except the items that I added manually in the region always appear at the top of the items that are derived from the query. I want the other way around if possible, where I want the items from report query to appear first and then the other items to appear below them. Can this be done? If so how?
    Thanks in advance
    sr

    sr,
    on the definition page of your region, set the property "Display Point" to "Page Template Body (1. items below region content).
    I think that's what you are looking for.
    Patrick
    *** New *** Oracle APEX Essentials *** http://essentials.oracleapex.info/
    My Blog, APEX Builder Plugin, ApexLib Framework: http://www.oracleapex.info/

  • Dynamic data select from table is giving dump

    Hello Experts,
       Below statement is giving Dump after it move all the data in my dynamic table.
    When i see in debug. All my recored are avilable in <T_TAB> Table.
    SELECT * FROM (pa_tab) INTO CORRESPONDING FIELDS OF TABLE <T_TAB>.
    > IF SY-SUBRC = 0.
    Information on where terminated
    The termination occurred in the ABAP program "ZFIR_ZTABLE_UPLOAD" in
    "F_DOWNLOAD".
    The main program was "ZFIR_ZTABLE_UPLOAD ".
    The termination occurred in line 403 of the source code of the (Include)
    program "ZFIR_ZTABLE_UPLOAD"
    of the source code of program "ZFIR_ZTABLE_UPLOAD" (when calling the editor
    4030).
    Processing was terminated because the exception "CX_SY_OPEN_SQL_DB" occurred in
    the
    procedure "F_DOWNLOAD" "(FORM)" but was not handled locally, not declared in
    the
    RAISING clause of the procedure.
    The procedure is in the program "ZFIR_ZTABLE_UPLOAD ". Its source code starts
    in line 399
    of the (Include) program "ZFIR_ZTABLE_UPLOAD ".
    please help me.
    Regards,
    Amit
    Message was edited by:
            Amit Gupta

    Hi Amit,
    Check if you are doing the following in your program
    FIELD-SYMBOLS <T_TAB> TYPE STANDARD TABLE.
    DATA: g_tabref type ref to data.   "Reference to your table structure
    CREATE DATA g_tabref type standard table of (pa_tab).
    ASSIGN g_tabref->* to <T_TAB>.
    SELECT * FROM (PA_TAB) INTO TABLE <T_TAB>.
    Hope this solves your problem.
    Let me know if you require any further info.
    Enjoy SAP. Reward points of useful
    Rajasekhar

  • Dynamic table pulled from SQL database, Need to Search

    My table results are not static, they are pulled into a
    dynamic table from a SQL database. Each table displays 10 records
    with an option at the bottom to display additional records
    (next/previous), for my query. I also have an option set up to
    allow users to click for a detail view of a record in the table. If
    the table data was static, I would be able to set up a search
    option and a results page for it, but I'm dealing with dynamic data
    on an .ASP page. I'd like to set up a search box to limit the
    records displayed in the table. I haven't found any code samples
    that are designed for dynamic data.
    Here is a copy of the code from my table.

    Hi,
    I think the code on this URL will get you the solution
    http://www.asp.happycodings.com/Array/code3.html
    Cheers,
    ~Maneet

  • How  to delete(remove) one row(record) from a dynamic table

    Hi,
    I have adynamically created table.
    I want to delete 1 record(Row) from that Dynamic table.
    Say if my dynamic table contains 5 records(rows);after deletion of 1 record(1 complete row)from that dynamic table,the number of records(rows) should be 4 .
    Please suggest me how to proceed.
    Please provide me some sample code.Its not working
    I tried with these code:-Its not working-->
    IPrivateExportexView.IEt_WriteoffNode node=wdContext.nodeEt_Writeoff();
    IPrivateExportexView.IEt_WriteoffElement nodeEle= node.createEt_WriteoffElement(new Zfrm_Writeoff_P());
    node.removeElement(nodeEle);
    Please suggest
    Thanks
    -Sandip

    Hi,
    *int n=wdContext.nodeTable().getLeadSelection();*
    *wdContext.nodeTable().removeElement(wdContext.nodeTable().getTableElementAt(n));*   
    Further more , an example is given below for better understanding , do modifications according to your need.
    node :
           value node - Table (cardinality - 0..n , selection 0..1)
                              no    ( value attribute - string  )
                              name (value attribute - string )
       // create node elements 
         for(int i=0;i<5;i++)
        IPrivateClearnodeElements.ITableNode node = wdContext.nodeTable();
        IPrivateClearnodeElements.ITableElement ele = node.createTableElement();
        ele.setNo((101i)"");
        ele.setName("name :"(i1));
        node.addElement(ele);
    // Apply template Table -- select -- table node  or
    // create a table UI element and set the property Datasource - Table ( of the context)  
                             Insert Colum , in that column, next insert celleditor , of type text view  , bind the property text -- to "name " of Table node of the context
               Insert Colum , in that column, next insert celleditor , of type text view  , bind the property text -- to "no " of Table node of the context
    // create a action "removeElement"
    // create a button "Remove Element "  --> Event action -- removeElement
    // under the action write down the code :
    public void onActionremoveElement(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionremoveElement(ServerEvent)
        // before removing display elements
        wdComponentAPI.getMessageManager().reportSuccess("Before  deletion :");
         for(int i=0;i<wdContext.nodeTable().size();i++)
             wdComponentAPI.getMessageManager().reportSuccess(wdContext.nodeTable().getTableElementAt(i).getNo()) ;
         wdComponentAPI.getMessageManager().reportSuccess(wdContext.nodeTable().getTableElementAt(i).getName()) ;
        int n=wdContext.nodeTable().getLeadSelection();
        wdContext.nodeTable().removeElement(wdContext.nodeTable().getTableElementAt(n));
       // After deletion
        wdComponentAPI.getMessageManager().reportSuccess("After deletion :");
             for(int i=0;i<wdContext.nodeTable().size();i++)
                   wdComponentAPI.getMessageManager().reportSuccess(wdContext.nodeTable().getTableElementAt(i).getNo()) ;
                   wdComponentAPI.getMessageManager().reportSuccess(wdContext.nodeTable().getTableElementAt(i).getName()) ;
        //@@end
    If helpful , give points .
    Let me know if any problem u face .
    Thanks,
    Srini

  • Powerpivot chart derived from Powerpivot table/field list

    Hi
    Is there a way to create a Powerpivot chart where it values are derived from a Powerpivot table?
    When I am in Powerpivot, there are options to create charts, tables and both charts and tables together.
    However, the chart has a separate field list than the table. Is there a way to make the chart and the table from one field list?
    Paul

    Hey Paul,
    afaik there is no possibility. The field list cannot be configured like slicers to have an effect on this or that pivot-table / pivot-chart.
    Nevertheless I don't want to disappoint you :)
    You could build one pivot-table and duplicate these values to some hidden sheet on which you build on your chart. If you then change the attribute on the rows the chart should adapt (but right now I'm not sure. Imagine you change the product subcategory
    (5 items) with the product (1000 items). How does the chart react?)
    Does this work (for you)? :)
    Kind regards
    Please mark helpful posts and answers! :)

  • Creating and selecting from a dynamic table

    Hi,
    Iam trying to create a table dynamically and selecting from it in same plsql block, but am getting "table doesnot exist" error. however if i just create a table dynamically and then do a select on it seperately it works..
    below is sample code for the same,
    working
    Line: -----
    DECLARE
    loc VARCHAR2(20):='bglr';
    l_cnt pls_integer;
    BEGIN
    -- create an employee information table
    EXECUTE IMMEDIATE
    'CREATE TABLE ' || 'emp_bglr' ||
    empno NUMBER(4) NOT NULL,
    ename VARCHAR2(10),
    job VARCHAR2(9),
    sal NUMBER(7,2),
    deptno NUMBER(2)
    end;
    select count(*) from emp_bglr ...works and return me 0 rows
    Line: -----
    but when i include select in plsql block ..it throws "Table does not exists" error...(iam running below plsql block after dropping the created table)
    not working
    Line: -----
    DECLARE
    loc VARCHAR2(20):='bglr';
    l_cnt pls_integer;
    BEGIN
    -- create an employee information table
    EXECUTE IMMEDIATE
    'CREATE TABLE ' || 'emp_bglr' ||
    empno NUMBER(4) NOT NULL,
    ename VARCHAR2(10),
    job VARCHAR2(9),
    sal NUMBER(7,2),
    deptno NUMBER(2)
    --COMMIT;
    END;
    Select count(*) into l_cnt from emp_bglr;
    dbms_output.put_line('cnt is '||l_cnt);
    end;
    Line: -----

    Becuase your code is first checked for syntax/object existance during compilation and throws an error saying the table does not exist.
    Try this:
    SQL> ed
    Wrote file afiedt.buf
      1   DECLARE
      2   loc VARCHAR2(20):='bglr';
      3   l_cnt pls_integer;
      4   BEGIN
      5   -- create an employee information table
      6   EXECUTE IMMEDIATE 'CREATE TABLE emp_bglr(
      7   empno NUMBER(4) NOT NULL,
      8   ename VARCHAR2(10),
      9   job VARCHAR2(9),
    10   sal NUMBER(7,2),
    11   deptno NUMBER(2)
    12   )';
    14  Select count(*) into l_cnt from all_objects where object_name = 'EMP_BGLR';
    15  dbms_output.put_line('tab cnt is '||l_cnt);
    16  IF (l_cnt = 1) THEN
    17  l_cnt := 0;
    18  EXECUTE IMMEDIATE 'SELECT count(*) from apps.emp_bglr' into l_cnt;
    19  dbms_output.put_line('data cnt is '||l_cnt);
    20  END IF;
    21* end;
    SQL> /
    tab cnt is 1
    data cnt is 0
    PL/SQL procedure successfully completed.
    SQL> Edited by: AP on Aug 5, 2010 5:51 AM
    Edited by: AP on Aug 5, 2010 5:52 AM

  • Dynamic table name from Arguments in cfquery /

    I'm trying to use dynamic table names in a cfc but seem to
    have hit upon a wall as my calling methods from flash keep hitting
    my _error methods - Code attached to show what I'm trying to
    achieve; if anyone can give me some pointers it would be a great
    help. I've seen numerous by using the Form with the arguments but
    this is coming into a gateway used by a flash component and doesn't
    work no matter how much I fiddle the code.
    Thanks in advance

    There was a time when I needed a dynamic query such as this.
    BUT, it is very dangerous, which is why I took a few steps to make
    it more secure.
    1. Always use cfqueryparam and strict datatyping
    2. Use listFindNoCase for known table names in the database
    e.g
    <cfset variables.tableNames =
    "items,products,categories,blog" />
    <cfif
    listContainsNoCase(variables.tableNames,lCase(trim(arguments.tableName)),",")>
    query here
    <cfelse>
    Error: Unknown table requested
    </cfif>
    Mikey

  • Read fields from dynamic table

    Hello everyone,
    I'm a BW-guy with some ABAP background, but it has been a while since I've used field symbos. I'm writing an enhancement for a BI-extractor using a badi. This is the situation:
    I have a dynamic table <t_data> over which I need to loop to change data. The fields I need to change are in another table, t_fields. I've written the following code, but in <fieldname>, I get the value of temp instead of the value in <s_data>-fieldname.
        LOOP AT <t_data> INTO <s_data>.
          LOOP AT t_fields INTO s_fields.
            concatenate '<s_data>-' s_fields-fieldname into temp.
            ASSIGN temp TO <fieldname>.
          ENDLOOP.
        ENDLOOP.
    for example a possible result is:
    <fieldname> =  '<s_data>-calday' in stead of '01.01.2009'
    Can anyone tell me what I've been doing wrong? Your help is greatly appreciated.

    Hi,
    Please let me know if I am clear on this.
    You have two internal tables, itab1 and itab2. You would like to change the value of field (say fld1) in itab1. This fld1 value is available from fld in itab2.
    If this is the situation, following is the code.
    FIELD-SYMBOLS: <w_tab1> TYPE ty_tab1.
    DATA:                   w_tab2     TYPE  ty_tab2.
    LOOP AT itab1 ASSIGNING <w_tab1>.
      READ TABLE itab2 into w_tab2 WITH KEY
                                   fldkey = <w_tab1>-fldkey.
      IF sy-subrc EQ 0.
        <w_tab1>-fld1 = w_tab2-fld.
      ENDIF.
    ENDLOOP.
    This is it. Table itab1 will be changed.
    Let me know if this works or if your issue is different.
    Regards,
    Sourav
    Edited by: Sourav1233 on Jul 8, 2009 2:15 PM

  • Retreival of Dynamic Table Datas from Adobe to WebDynpro- ABAP

    Dear Friends,
    I have Developed an application in Webdynpro-ABAP, where i have integrated Adobe form in the webdynpro.
    In the adobe form, dynamic table is there where we can add and delete the rows at runtime.
    I am trying to retreive the table datas at runtime from the adobe.
    I can able to retreive only the first record from the table, even if the table contain more than one rows.
    As per the below code i have retreived the count, where it is showing the count as 1.
    using the method get_static_attributes_table i am trying to fetch all the records, but i can able to retreive only the first record.
    lo_nd_zsm_fm_transport_tra = wd_context->get_child_node( name = wd_this->wdctx_zsm_fm_transport_tra ).
      lo_nd_tr_details_i = lo_nd_zsm_fm_transport_tra->get_child_node( name = wd_this->wdctx_tr_details_i ).
    count = lo_nd_tr_details_i->GET_ELEMENT_COUNT( ).
    elems_bank_table = lo_nd_tr_details_i->get_elements( ).
    lo_nd_tr_details_i->get_static_attributes_table(
      importing
        table = ls_tr_details_i ).
    Even Cardinality i have maintained as 1.N for the node.
    Kindly provide me the solution.
    Thanks and Regards,
    Sathish,,

    Hi, I have solution for read data from dynamic table and add these added row to WD4A context (and then save them to DB) (in ONACTIONPROCESS_SUBMIT event):
    DATA: l_fp TYPE REF TO if_fp.
    l_fp = cl_fp=>get_reference( ).
    DATA: l_pdfobj TYPE REF TO if_fp_pdf_object.
    l_pdfobj = l_fp->create_pdf_object( ).
    l_pdfobj->set_document( pdfdata = lv_pdfsource ).
    l_pdfobj->set_extractdata( ).
    l_pdfobj->execute( ).
    DATA: pdf_form_data TYPE xstring.
    l_pdfobj->get_data( IMPORTING formdata = pdf_form_data ).
    DATA: converter TYPE REF TO cl_abap_conv_in_ce, formxml TYPE string.
    Converter = cl_abap_conv_in_ce=>create( input = pdf_form_data ).
    Converter->read( IMPORTING data = formxml ).
    TYPE-POOLS: ixml.
    DATA: l_ixml TYPE REF TO if_ixml.
    l_ixml = cl_ixml=>create( ).
    DATA: streamfactory TYPE REF TO if_ixml_stream_factory,
    istream TYPE REF TO if_ixml_istream.
    streamfactory = l_ixml->create_stream_factory( ).
    istream = streamfactory->create_istream_string( formxml ).
    DATA: document TYPE REF TO if_ixml_document.
    Document = l_ixml->create_document( ).
    DATA: parser TYPE REF TO if_ixml_parser.
    parser = l_ixml->create_parser( stream_factory = streamfactory
                                               istream = istream
                                               document = document ).
    Parser->parse( ).
    the code above allows you to read xml data from pdf file, then you need only to read xml and adding rows to your context:
    data : item type string.  DATA: nodechild TYPE REF TO if_ixml_node,
            Childschild TYPE REF TO if_ixml_node.
        data: num_of_children type i,
              x type i,
              y type i,
              num_of_attribute.
    node = document->find_from_name('ZAM_PROTSTROJF').
    num_of_children = node->num_children( ).
    nodechild = node->get_first_child( ).
    data: wa_strojdetail type ZAM_PROTSTROJF,
          wa_strojdetail_tab TYPE TABLE OF ZAM_PROTSTROJF.
    wa_strojdetail-docnum = ls_zam_protstroj-docnum.
    wa_strojdetail-bukrs = 'VVS'.
    wa_strojdetail-mandt = sy-mandt.
    y = 1.
    do Num_of_children times.
           num_of_attribute = nodechild->num_children( ).  " Childschild->num_children( )." Getting the number of attributes
           Childschild = nodechild->get_first_child( ).
           wa_strojdetail-itemnum  = y.
           x = 1.
           do num_of_attribute times.
              item = Childschild->GET_value( ).
              CASE x.
                WHEN 4.
                  wa_strojdetail-anln1 = item.
                WHEN 5.
                  wa_strojdetail-anln2 = item.
                WHEN 6.
                  wa_strojdetail-bubtr = item.
                WHEN 7.
                  wa_strojdetail-belnr = item.
              ENDCASE.
              Childschild = Childschild->get_next( ).
              x = x + 1.
          enddo.
          y = y + 1.
          APPEND wa_strojdetail to wa_strojdetail_tab.
          nodechild = nodechild->get_next( ).
    enddo.
    This is complete solution for adding rows in interactive forms and working with them in WD4A!
    Regards Jiri
    Edited by: Jiri Neuzil on Jun 10, 2009 8:13 AM
    Sorry for formatting, but I don't know, how to format text correctly on this site in plain text I have all text correctly formatted, but in preview....

  • Populate dynamic table fields from internal table

    Hi,
    Im trying to populate an dynamic table , but it's giving me a few errors witch i can't solve ...
    Basically i have an internal table with te following types :
    DATA: BEGIN OF tab_docs41 OCCURS 0,
          conta TYPE bsis-hkont,
          banco TYPE t012t-text1,
          ano_3 TYPE i,
          ano_2 TYPE i,
          ano_1 TYPE i,
          jan TYPE  i,
          fev TYPE  i,
          mar TYPE  i,
          abr TYPE  i,
          mai TYPE  i,
          jun TYPE  i,
          jul TYPE  i,
          ago TYPE  i,
          set TYPE  i,
          out TYPE  i,
          nov TYPE  i,
          dez TYPE  i,
          total TYPE i,
          montante TYPE betrag11,
    END OF tab_docs41.
    and the following fieldcatalog , for the dynamic table :
    DATA : ls_fieldcat TYPE lvc_s_fcat.
      DATA: lv_period TYPE i.
      DATA str_period TYPE string.
      SUBTRACT 3 FROM ano.
      MOVE ano TO str_period.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname = 'CONTA'.
      ls_fieldcat-seltext = 'Conta do Razão'.
      ls_fieldcat-datatype = 'HKONT'.
    *  ls_fieldcat-intlen = '10'.
      APPEND ls_fieldcat TO p_fieldcat.
    Since the internal table, tab_docs41 it's allready filled how can i pass the tab_docs41 values to the corresponding fields of the dynamic table (the move-corresponding it's not working..)
      ASSIGN fs_data->* TO <fs_1>.
      CREATE DATA new_line LIKE LINE OF <fs_1>.
    *  ASSIGN new_line->*  TO <fs_2>.
    *** Next step is to create a work area for our dynamic internal table.
      LOOP AT tab_docs41.
       ASSIGN COMPONENT 'CONTA' OF STRUCTURE  tab_docs41 TO <fs2>.
    But this last step it's not working ...
    Can anyone help me please ?
    Point's will be rewarded
    Best Regards
    Thanks in advance
    João Martins

    Looks like you have used the method CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE to create the dynamic internal table.
    You have to change the last part of the code:
    FIELD-SYMBOLS:
    <itab> TYPE STANDARD TABLE,
    <wa> TYPE ANY,
    <val> TYPE ANY .
    ASSIGN fs_data->* TO <itab>.
    CREATE DATA new_line LIKE LINE OF <itab>.
    ASSIGN new_line->*  TO <wa>.
    LOOP AT tab_docs41.
      ASSIGN COMPONENT 'CONTA' OF STRUCTURE <wa> TO <val>.
      <val> = tab_docs41-conta.
      ASSIGN COMPONENT 'BANCO' OF STRUCTURE <wa> TO <val>.
      <val> = tab_docs41-banco.
      APPEND <wa> to <itab>.
    ENDLOOP.
    BR,
    Suhas

Maybe you are looking for

  • DOFD on my fixing report?

    Thank you

  • Error while starting up OEM

    Hi all, When I try to start OEM on linux with oracle 10g, I get the following error ./emctl TZ set to US/Pacific EM Configuration issue. /u01/app/oracle/product/10.2.0/db_1/$hostname_xxdb not found. Any pointers or any logs to look at. _Pete         

  • XP Mode in Windows7 Professional Drops Network connectivity

    Ok - I've seen and followed several (5+) discussions on this problem dating back 4 years through Vista, but no one seems to have posted a definitive question.  I've been rolling out Windows 7 for over a year now and have been following the same proce

  • Trying to download Msecer from app store keep getting error code(4) disabled growl

    trying to download Msecer from app store keep getting error code(4) disabled growl & enabled gatekeeper to allow download from app store but still cant down load app to mini mac. Anyone have any solutions i havent tryed?

  • Near in-audible sounds with HW support &

    Hello again. I've got a sort of...'problem'. i'll just state all I know and see what you guys think... Basically every single game i've tried that supports EAX returns sounds that are near impossible to hear when EAX is turned on (i'm using an Audigy