Dynamic table error

*& Purpose : Daily Godown dispatches with condition valu details       *
REPORT ZDLYDSPH NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 30(10)
MESSAGE-ID SK .
TYPE-POOLS: SLIS,ABAP.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
TABLES : VBRK,     "Billing document header detail
         VBRP,     "Billing document item details
         MAKT,     "Material Description
         BHDGD,
         MARA,     "Material Master
         KNA1,     "Customer Master Table
         TSPA,
        J_1IEXCHDR.
DATA: TAB TYPE REF TO CL_ABAP_STRUCTDESCR,
      WA_TAB TYPE REF TO CL_ABAP_STRUCTDESCR,
      I_TAB TYPE REF TO CL_ABAP_TABLEDESCR,
      I_TABLE TYPE REF TO DATA.
DATA: L_PROGRAM_NAME   TYPE SYREPID VALUE SY-REPID,
      L_STRUCTURE_NAME TYPE TABNAME,
      L_I_CT_FIELDCAT  TYPE SLIS_T_FIELDCAT_ALV.
DATA: BEGIN OF FIELDTAB OCCURS 50,
        FELDNAME LIKE DYNPREAD-FIELDNAME,
        FIELDTEXT LIKE DNTAB-FIELDTEXT,
      END OF FIELDTAB.
DATA: BEGIN OF CHOICE_TAB_IN OCCURS 50,
        FIELDTEXT LIKE DNTAB-FIELDTEXT,                     "Position 1
        FIELDNAME LIKE DYNPREAD-FIELDNAME,
        TABNAME   LIKE DNTAB-TABNAME,
        FIELD     LIKE DNTAB-FIELDNAME,
      END OF CHOICE_TAB_IN.
FIELD-SYMBOLS: <DATAIN> TYPE ANY,
               <HEADER> TYPE ANY,
               <F> TYPE ANY.
FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
               <DYN_WA>,
               <DYN_FIELD>.
DATA: DY_TABLE TYPE REF TO DATA,
      DY_LINE  TYPE REF TO DATA,
      XFC TYPE LVC_S_FCAT,
      IFC TYPE LVC_T_FCAT,
      DYN_TABLE TYPE STANDARD TABLE OF KOMG WITH HEADER LINE.
DATA: DATA_TAB LIKE ZHRDATATAB OCCURS 20 WITH HEADER LINE.
DATA: BEGIN OF DATEN OCCURS 100,
        ZEILE TYPE I,
        STELLE TYPE I,
        DATEN LIKE HRDATATAB-LANGTEXT1,
      END OF DATEN.
DATA: BEGIN OF TITEL OCCURS 20,
         STELLE TYPE I,
         FELDNAME LIKE DYNPREAD-FIELDNAME,
         LANGTEXT LIKE HRDATATAB-LANGTEXT1,
         TABNAME   LIKE DNTAB-TABNAME,
         FIELD     LIKE DNTAB-FIELDNAME,
       END OF TITEL.
DATA :   STELLE TYPE I.
DATA: ZEILE TYPE I.
*vibhuti
DATA: IT_COLOR TYPE LVC_S_SCOL." with header line.
DATA: MY_TABIX LIKE SY-TABIX.
DATA: I_VBRK LIKE VBRK OCCURS 0 WITH HEADER LINE.
DATA: G_CL_TEXT            TYPE REF TO CL_HR_TEXT_IDENTIFIER,
      G_T_TEXTINFO_INFTY   TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
      G_T_TEXTINFO_ALL     TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
      G_T_TEXTFIELDS_INFTY TYPE TTFIELDNAME,
      G_T_TEXTS_INFTY      TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
      G_T_TEXTS_ALL        TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
      G_S_TEXTINFO         TYPE TXID_S_TEXT_IDENTIFIER_RESULT,
      G_S_TEXT             TYPE TXID_S_TEXT_IDENTIFIER_RESULT,
      G_T_SPECIALS         TYPE TFIELDVAL,
      G_S_SPECIALS         TYPE SFIELDVAL.
DATA :      G_T_TEXTFIELDS TYPE TTFIELDNAME.
Selection Screen Started
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK B_1 WITH FRAME TITLE TEXT-010.
SELECT-OPTIONS : S_FKDAT FOR VBRK-FKDAT OBLIGATORY,
                 S_SPART FOR VBRK-SPART OBLIGATORY,
                 S_VBELN FOR VBRK-VBELN,
                 S_KUNAG FOR VBRK-KUNAG,
                 S_FKART FOR VBRK-FKART,
                 S_WERKS FOR VBRP-WERKS," obligatory,
                   S_VKBUR FOR VBRP-VKBUR,
                 S_VKORG FOR VBRK-VKORG OBLIGATORY,
                    S_VKGRP FOR VBRP-VKGRP, " sales group
                 S_RFBSK FOR VBRK-RFBSK OBLIGATORY DEFAULT 'C'.
SELECTION-SCREEN END OF BLOCK B_1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK B_2 WITH FRAME TITLE TEXT-011.
PARAMETERS : P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK B_2.
START-OF-SELECTION.
  PERFORM GET_FIELDS.
  PERFORM NEW_DYNAMIC_TABLE.
  PERFORM GENERATE_OUTPUT.
*&      Form  NEW_DYNAMIC_TABLE
      text
-->  p1        text
<--  p2        text
FORM NEW_DYNAMIC_TABLE .
  SORT CHOICE_TAB_IN BY FIELDTEXT AS TEXT ASCENDING.
  DESCRIBE TABLE CHOICE_TAB_IN LINES SY-TFILL.
  LOOP AT CHOICE_TAB_IN.
    MY_TABIX = SY-TABIX.
    TITEL-FELDNAME = CHOICE_TAB_IN-FIELDNAME.
    TITEL-LANGTEXT = CHOICE_TAB_IN-FIELDTEXT.
    TITEL-TABNAME  = CHOICE_TAB_IN-TABNAME.
    TITEL-FIELD    = CHOICE_TAB_IN-FIELD.
    TITEL-STELLE = STELLE.
    APPEND TITEL.
    STELLE = STELLE + 1.
  ENDLOOP.
  LOOP AT TITEL.
    APPEND TITEL-FIELD TO G_T_TEXTFIELDS.
  ENDLOOP.
  LOOP AT TITEL.
    MOVE-CORRESPONDING TITEL TO DATEN.
    CLEAR DATEN-DATEN.
    ASSIGN (TITEL-FELDNAME) TO <DATAIN>.
    PERFORM GET_BILLING_HEADER.
  ENDLOOP.
  data : IFC TYPE LVC_T_FCAT.
      APPEND titel TO IFC.
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>.
PERFORM ASSIGN_VALUES-SELECTED.
ENDFORM.                    " NEW_DYNAMIC_TABLE
*&      Form  GET_FIELDS
      text
-->  p1        text
<--  p2        text
FORM GET_FIELDS .
  FIELDTAB-FELDNAME = 'VBRK-VBELN'.
  FIELDTAB-FIELDTEXT = 'Billing Doc.'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'VBELN'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-FKART'.
  FIELDTAB-FIELDTEXT = 'Billing Type'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'FKART'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-VBTYP'.
  FIELDTAB-FIELDTEXT = 'Doc. Type'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'VBTYP'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-KNUMV'.
  FIELDTAB-FIELDTEXT = 'Doc. Condition'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'KNUMV'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-FKDAT'.
  FIELDTAB-FIELDTEXT = 'Billing Date'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'FKDAT'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-KUNRG'.
  FIELDTAB-FIELDTEXT = 'Payer'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'KUNRG'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-KUNAG'.
  FIELDTAB-FIELDTEXT = 'Sold-to party'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'KUNAG'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-SFAKN'.
  FIELDTAB-FIELDTEXT = 'Cancel Billing Doc.'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'SFAKN'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRK-FKSTO'.
  FIELDTAB-FIELDTEXT = 'Billing Doc. Cust No.'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRK'.
  CHOICE_TAB_IN-FIELD     = 'FKSTO'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'VBRP-MATNR'.
  FIELDTAB-FIELDTEXT = 'Material No.'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'VBRP'.
  CHOICE_TAB_IN-FIELD     = 'MATNR'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'J_1IEXCDTL-EXNUM'.
  FIELDTAB-FIELDTEXT = 'Excise Invoice'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'J_1IEXCDTL'.
  CHOICE_TAB_IN-FIELD     = 'EXNUM'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'KONV-KSCHL'.
  FIELDTAB-FIELDTEXT = 'TAX'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'KONV'.
  CHOICE_TAB_IN-FIELD     = 'KSCHL'.
  APPEND CHOICE_TAB_IN.
  FIELDTAB-FELDNAME = 'KONV-KWERT'.
  FIELDTAB-FIELDTEXT = 'PRICE'.
  APPEND FIELDTAB.
  CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
  CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
  CHOICE_TAB_IN-TABNAME   = 'KONV'.
  CHOICE_TAB_IN-FIELD     = 'KWERT'.
  APPEND CHOICE_TAB_IN.
ENDFORM.                    " GET_FIELDS
*&      Form  GENERATE_OUTPUT
      text
-->  p1        text
<--  p2        text
FORM GENERATE_OUTPUT .
ENDFORM.                    " GENERATE_OUTPUT
*&      Form  GET_BILLING_HEADER
      text
-->  p1        text
<--  p2        text
FORM GET_BILLING_HEADER .
  SELECT * INTO CORRESPONDING FIELDS OF TABLE i_VBRK
    FROM VBRK
     WHERE VBELN IN S_VBELN
       AND FKART IN S_FKART
       AND VKORG IN S_VKORG
       AND FKDAT IN S_FKDAT
       AND RFBSK IN S_RFBSK
       AND KUNAG IN S_KUNAG
       AND SPART IN S_SPART ORDER BY FKDAT.
  LOOP AT VBRK.
    ASSIGN I_VBRK TO <HEADER>.
    ASSIGN I_VBRK TO <F>.
    CASE TITEL-FELDNAME.
      WHEN OTHERS.
       READ TABLE G_T_TEXTS_ALL
     WITH KEY TABNAME   = TITEL-TABNAME
              FIELDNAME = TITEL-FIELD
     INTO G_S_TEXT.
       DATEN-DATEN = <HEADER>.
       DATEN-DATEN = <DATAIN>.
        MOVE-CORRESPONDING TITEL TO DATEN.
        CLEAR DATEN-DATEN.
        ASSIGN (TITEL-FELDNAME) TO <HEADER>.
        DATEN-DATEN = <HEADER>.
    ENDCASE.
    DATEN-ZEILE = ZEILE.
    APPEND DATEN.
  ENDLOOP.
ENDFORM.                    " GET_BILLING_HEADER
This is not properly working.Culd u suggest wht can be the reason

LOOP AT i_VBRK.
    ASSIGN I_VBRK TO <HEADER>.
    CASE TITEL-FELDNAME.
      WHEN OTHERS.
        MOVE-CORRESPONDING TITEL TO DATEN.
        CLEAR DATEN-DATEN.
        ASSIGN (TITEL-FELDNAME) TO <HEADER>.
        DATEN-DATEN = <HEADER>.
    ENDCASE.
    DATEN-ZEILE = ZEILE.
    APPEND DATEN.
  ENDLOOP.
WHEN I'M ASSIGING VALUES TO MY <HEADER> VALUES ARE COMING BLANK.
how to assign values

Similar Messages

  • CREATE DYNAMIC TABLE ERROR (CACHE PROBLEM ?)

    Hi,
    i have to create dynamic table. The Report is running. But i get Problem by next Programstart. It's showing the Message : This Table is ready exist! Can anyone help me?
    Thanks!
    CLEAR gt_fieldcatalog.
    CLEAR gz_tab.
      lv_index = 1.
      gs_fieldcatalog-tabname = 'test'.
      gs_fieldcatalog-fieldname = 'field_0'.
      gs_fieldcatalog-reptext = 'field_0'.
      gs_fieldcatalog-col_pos = lv_index.
      gs_fieldcatalog-outputlen = 10.
      APPEND gs_fieldcatalog TO gt_fieldcatalog.
      lv_index = 2.
      gs_fieldcatalog-tabname = 'test'.
      gs_fieldcatalog-fieldname = 'TEXT'.
      gs_fieldcatalog-reptext = 'TEXT'.
      gs_fieldcatalog-col_pos = lv_index.
      gs_fieldcatalog-outputlen = 50.
      APPEND gs_fieldcatalog TO gt_fieldcatalog.
      Do 10 times.
        lv_index = lv_index + 1.
         CONCATENATE field '_' lv_index INTO lv_fieldname.
        gs_fieldcatalog-tabname = 'TEST'.
        gs_fieldcatalog-fieldname = lv_fieldname.
        gs_fieldcatalog-reptext = lv_fieldname.
        gs_fieldcatalog-col_pos = lv_index.
        gs_fieldcatalog-outputlen = 10.
        APPEND gs_fieldcatalog TO gt_fieldcatalog.
        CLEAR lv_fieldname.
      ENDDO.
    "Converting the Fieldcatalog for  ALV Grid showing
    LOOP AT gt_fieldcatalog INTO gs_fieldcatalog.
        ls_fcat-col_pos = gs_fieldcatalog-col_pos.
        ls_fcat-fieldname = gs_fieldcatalog-fieldname.
        ls_fcat-seltext_l = gs_fieldcatalog-reptext.
        ls_fcat-tabname = gs_fieldcatalog-tabname.
        ls_fcat-datatype = gs_fieldcatalog-datatype.
        ls_fcat-outputlen = gs_fieldcatalog-outputlen.
        APPEND ls_fcat TO lt_fcat.
      ENDLOOP.
      " Creating internal Table
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog           = gt_fieldcatalog
        IMPORTING
          ep_table                  = gz_tab
        EXCEPTIONS
          generate_subpool_dir_full = 1
          OTHERS                    = 2.
      ASSIGN gz_tab->* TO <ft_tab>.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = ls_variant-report
          it_fieldcat        = lt_fcat
          i_grid_title       = 'Test'
          is_layout          = alv_layout
          i_save             = 'A'
          is_variant         = gx_variant
        TABLES
          t_outtab           = <ft_tab>
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
    CLEAR <ft_tab>.
    UNASSIGN <ft_tab>.
    CLEAR lt_fcat.
    Edited by: Hoang Lam Vu on Aug 25, 2008 11:18 AM

    Hi Maroz,
    I know this is not best practise to post my question in some others,  but i have posted it separately earlier
    Dynamic ITAB from Excel
    I have created a dynamic ITAB from 1 Row of Excel Sheet
    LOOP AT ist_excel INTO w_excel WHERE row = 2. " Contains the Values provided in 2nd row of Excel
        APPEND w_excel TO row1.
      ENDLOOP.
      LOOP AT ist_excel INTO w_excel WHERE row = 3. " Contains the Values provided in 3rd row of Excel
        APPEND w_excel TO row2.
      ENDLOOP.
      LOOP AT ist_excel INTO w_excel WHERE row = 4." Contains the Values provided in 4th row of Excel Etc
        APPEND w_excel TO row3.
      ENDLOOP.
      LOOP AT row1 INTO w_excel.
        CLEAR wa_it_fldcat.
        wa_it_fldcat-fieldname = w_excel-value .
        wa_it_fldcat-datatype = 'C'.
        wa_it_fldcat-inttype = wa_details-type_kind.
        wa_it_fldcat-intlen = 40.
    *  wa_it_fldcat-decimals = wa_details-decimals.
        APPEND wa_it_fldcat TO it_fldcat .
      ENDLOOP.
    * Create dynamic internal table and assign to FS
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fldcat
        IMPORTING
          ep_table        = new_table.
      ASSIGN new_table->* TO <dyn_table>.
    * Create dynamic work area and assign to FS
      CREATE DATA new_line LIKE LINE OF <dyn_table>.
      ASSIGN new_line->* TO <dyn_wa>.
    I followed the Link provided by to create a Dynamic ITAB
    Please guide me how to pass these Value from excel to Dynamic Internal Table
    Warm Regards
    Ramchander

  • Error while insert data using execute immediate in dynamic table in oracle

    Error while insert data using execute immediate in dynamic table created in oracle 11g .
    first the dynamic nested table (op_sample) was created using the executed immediate...
    object is
    CREATE OR REPLACE TYPE ASI.sub_mark AS OBJECT (
    mark1 number,
    mark2 number
    t_sub_mark is a class of type sub_mark
    CREATE OR REPLACE TYPE ASI.t_sub_mark is table of sub_mark;
    create table sam1(id number,name varchar2(30));
    nested table is created below:
    begin
    EXECUTE IMMEDIATE ' create table '||op_sample||'
    (id number,name varchar2(30),subject_obj t_sub_mark) nested table subject_obj store as nest_tab return as value';
    end;
    now data from sam1 table and object (subject_obj) are inserted into the dynamic table
    declare
    subject_obj t_sub_mark;
    begin
    subject_obj:= t_sub_mark();
    EXECUTE IMMEDIATE 'insert into op_sample (select id,name,subject_obj from sam1) ';
    end;
    and got the below error:
    ORA-00904: "SUBJECT_OBJ": invalid identifier
    ORA-06512: at line 7
    then when we tried to insert the data into the dynam_table with the subject_marks object as null,we received the following error..
    execute immediate 'insert into '||dynam_table ||'
    (SELECT

    887684 wrote:
    ORA-00904: "SUBJECT_OBJ": invalid identifier
    ORA-06512: at line 7The problem is that your variable subject_obj is not in scope inside the dynamic SQL you are building. The SQL engine does not know your PL/SQL variable, so it tries to find a column named SUBJECT_OBJ in your SAM1 table.
    If you need to use dynamic SQL for this, then you must bind the variable. Something like this:
    EXECUTE IMMEDIATE 'insert into op_sample (select id,name,:bind_subject_obj from sam1) ' USING subject_obj;Alternatively you might figure out to use static SQL rather than dynamic SQL (if possible for your project.) In static SQL the PL/SQL engine binds the variables for you automatically.

  • Dynamic table runtime error

    Hi everyone.
    We are working on upgrading from 4.6c to ECC 6.0 and I've run into a programming problem.
    I have a class that I use to convert any internal table based on a dictionary structure to a comma-separated text file.  For the most part, I use the dynamic table techniques that are easy to find here and in other code forums.
    In 6.0 I can not get it to work.  The value assignment of the input table to the field-symbol for the dynamic table causes a "OBJECTS_TABLES_NOT_COMPATIBLE" runtime error.  So far what I can find on this error specific to dynamic tables is related to BW and/or PI.  And I can't seem to find any alternative ways of dealing with dynamic tables.  In debug I can see that decimal number fields in the dynamic table have a different length than what's in the dictionary.
    Any help or ideas would be greately appreciated.
    Here is part of the method that converts the itab to an dynamic internal table, then creates a csv record for each record (I've hilighted the line that causes the dump) :
    Get the structure of the table.
      ref_table_des ?=
          cl_abap_typedescr=>describe_by_name( i_structure ).
      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.
    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>.
    put data into the dynamic table
    <dyn_table> = it_data[].    "<<==the runtime error happens on this line
      loop at <dyn_table> into <dyn_wa>.
        clear: l_fdata, l_data.
        do.
          l_index = sy-index.
          assign component l_index
             of structure <dyn_wa> to <dyn_field>.
          if sy-subrc <> 0.
            exit.
          endif.
          read table ifc into xfc index l_index.
          if xfc-inttype = 'D'.
    *etc...
    Thank you,
    - George

    Hi,
    For Dynamic internal table.u check SM30 Transaction.ther is one simple way to find the code in debugging.
    if not possible i will send code which is relatd to dynamic table .
    *&      Form  get_table_structure
    *       Get structure of an SAP table
    form get_table_structure.
      data : it_tabdescr type abap_compdescr_tab,
             wa_tabdescr type abap_compdescr.
      data : ref_table_descr type ref to cl_abap_structdescr.
    * Return structure of the table.
      ref_table_descr ?= cl_abap_typedescr=>describe_by_name( p_table ).
      it_tabdescr[] = ref_table_descr->components[].
      loop at it_tabdescr into wa_tabdescr.
        clear wa_fieldcat.
        wa_fieldcat-fieldname = wa_tabdescr-name .
        wa_fieldcat-datatype  = wa_tabdescr-type_kind.
        wa_fieldcat-inttype   = wa_tabdescr-type_kind.
        wa_fieldcat-intlen    = wa_tabdescr-length.
        wa_fieldcat-decimals  = wa_tabdescr-decimals.
        append wa_fieldcat to it_fieldcat.
      endloop.
    endform.                    "get_table_structure
    *&      Form  create_itab_dynamically
    *   Create internal table dynamically
    form create_itab_dynamically.
    * Create dynamic internal table and assign to Field-Symbol
      call method cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fieldcat
        IMPORTING
          ep_table        = dyn_table.
      assign dyn_table->* to <fs_table>.
    * Create dynamic work area and assign to Field Symbol
      create data dyn_line like line of <fs_table>.
      assign dyn_line->* to <fs_wa>.
    endform.                    "create_itab_dynamically
    Edited by: subrahmanyam24 on Nov 18, 2010 5:12 AM
    Edited by: subrahmanyam24 on Nov 18, 2010 5:15 AM

  • SOM Error while using Dynamic Tables

    Hi Gurus,
        I have created a Adobe form with Dynamic tables and integrated in Webdynpro ABAP.
    When I test the form, while opening the form the following error occurs ..
    " The SOM Expression '$record.BP_DETAILS' for the dataRef specified on field 'BP_DETAILS' ,resolved to an incompatible node of type 'dataValue'..
    After I press ok in the popup error message the Interactive form is displayed and I am able to add rows dynamically .. but the data .. but on submit the data is not passed to the context..
    when i change the cardinality of the context from " 0..n" to "1..n" .. this error does not appear.. but while submit only the first row is saved to the context..
    Has some one come across this error.. Please let me know how to get the dynamic table data to be passed to webdynpro ..
    Thanks and Regards
    Sivaraj

    Hi
    To show dynamic data in tables using adobe,follow these steps:
    1. Create a value node say DataSource of cardinality 1.n and an other value node  of cardinality 0.n which actually contains data.
    2. create an array or use value node to collect data which is to be transferred to adobe.
    3. data can be collected using for loop and create node element inside the loop and set corresponding values of each element.
    4. add this element to value node.(step 3,4 are to be performed under loop)
    5.You can use reverse loop to read and send data from adobe to data base which can be performed under submit button to sap.
    Sample code to send data from dynpro view to adobe
    Collection myRecords = new ArrayList();
    myRecords.clear();
    Collection records = new Vector();
    IPrivateTestAdobeFormView.INotificationRecordsElement notifRecord = null;
    int NUM_RECORDS = 5;
    for (int i = 0; i < NUM_RECORDS; i++)
    IPrivateTestAdobeFormView
         .INotificationRecordsElement
              notifRecordElement =
                   wdContext
                        .createNotificationRecordsElement();
    notifRecordElement.setNotificationNumber("" + i);
    notifRecordElement.setNotificationDesc("Description for " + i);
    myRecords.add(notifRecordElement);
    wdContext.nodeNotificationRecords().bind(myRecords);
    To save data from adobe to sap
    IPublic<your view>.I<your>Node node = wdContext.<your>node();
            node.invalidate();
            int size = wdContext.nodeRFQ_Questions().size();
            Zqq_Qid_Ans_Txt newnode;
            for (int i = size-1; i >= 0; i--) {
                 newnode = new Zqq_Qid_Ans_Txt();
                 String answertext = wdContext.nodeRFQ_Questions().getRFQ_QuestionsElementAt(i).getAnswer_Text();
                 newnode.setAnswer_Text(answertext);
                 String questionid = wdContext.nodeRFQ_Questions().getRFQ_QuestionsElementAt(i).getQuestion_Id();
                 newnode.setQuestion_Id(questionid);
                 quote.addT_Qid_Anstxt(newnode);
    Mandeep Virk

  • Dynamic table in Oracle report data model using laxical parameter is giving error Ora-00936: missing expression

    Hi ,
    I am using Oracle report 10G
    And trying to create report with dynamic table
    SELECT &COL1, &COL2
    FROM &TAB
    If I put this on data model it gives below error
    ORA-00936: missing expression
    ==> from
    Can anybody advise to solve this issue.
    Regards,
    Brajesh

    Look in the Reports Builder Help:
    If you want to use lexical references in your SELECT clause, you should create a separate lexical reference for each column you will substitute. In addition, you should assign an alias to each lexical reference.
    Does adding the column alias solve the problem?

  • Javascript error when inserting dynamic table in DW

    Hi
    Im using DW9 (CS3) and have problem.
    When i klick on the 'dynamic table' button i get this error:
    While executing insertObject in Dynamic Table.htm, a
    Javascript error(s)
    occurred:
    Any sulution?
    Please send me a copy fo the reply to my mail:
    [email protected]
    /Torbjörn

    If that fails to solve the problem, then I recommend you
    contact Adobe
    directly and use one of your one-on-one support incidents.
    http://www.adobe.com/support/programs/dreamweaver/index.html?tab:contact=1
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.dreamweavermx-templates.com
    - Template Triage!
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    http://www.macromedia.com/support/search/
    - Macromedia (MM) Technotes
    ==================
    "Torbjörn Sjögren" <[email protected]>
    wrote in message
    news:fa26gs$bns$[email protected]..
    >I have tried several of the tips in the article. But no
    luck.
    > Did a reinstall of DW but no luck.
    > I´m very thankful for any tips.
    >
    > "Murray *ACE*" <[email protected]>
    skrev i meddelandet
    > news:fa004o$np6$[email protected]..
    >> Troubleshooting JavaScript errors in Dreamweaver
    >>
    http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_19105#dat
    >>
    >>
    >> --
    >> Murray --- ICQ 71997575
    >> Adobe Community Expert
    >> (If you *MUST* email me, don't LAUGH when you do
    so!)
    >> ==================
    >>
    http://www.dreamweavermx-templates.com
    - Template Triage!
    >>
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    >>
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    >>
    http://www.macromedia.com/support/search/
    - Macromedia (MM) Technotes
    >> ==================
    >>
    >>
    >> "Torbjörn Sjögren"
    <[email protected]> wrote in message
    >> news:f9vu6c$lol$[email protected]..
    >>> Hi
    >>>
    >>> Im using DW9 (CS3) and have problem.
    >>> When i klick on the 'dynamic table' button i get
    this error:
    >>> ---------
    >>> While executing insertObject in Dynamic
    Table.htm, a Javascript error(s)
    >>> occurred:
    >>> ---------
    >>>
    >>> Any sulution?
    >>>
    >>> Please send me a copy fo the reply to my mail:
    >>> [email protected]
    >>>
    >>> /Torbjörn
    >>>
    >>
    >>
    >
    >

  • Javascript error occurred when create a dynamic table

    Hi all,
    I try to create a dynamic table using the created recordset,
    but I get the javascript error message "While executing insertObject in DynamicTable.htm, a Javascript error occurred."
    How to fix it? I tried to delete the cache file in Configuration folder but it is not work..
    Any idea? Thanks a lot!

    http://helpx.adobe.com/dreamweaver/kb/troubleshoot-javascript-errors-dreamweaver-cs4.html
    Try 12 & 4 and then go through the rest.

  • Dynamic table name - error

    After run (or test) of procedure
    create or replace procedure tmp_select_dymanic
    ( AInTable IN VARCHAR2,
    ACount OUT NUMBER
    ) as
    begin
    EXECUTE IMMEDIATE 'BEGIN SELECT count(*) INTO :Count FROM :InTable END;'
    USING ACount, AInTable;
    end tmp_select_dymanic;
    error message: invalid table name.
    I know the table exists and contains data. I can make SELECT in SQL (not dynamic).
    What a reason for error? May be privileges in database? But i make SELECT on my own table?
    How can i set dynamic table name in other way?
    My Oracle Version 10g.

    What you are asking can be done by REF_CURSOR;
    look this example and try your self the rest:
    CREATE OR REPLACE PROCEDURE insert_to_table_dinamic (
       table1   IN   VARCHAR2,
       table2   IN   VARCHAR2
    AS
       rc         sys_refcursor;
       v_sql      VARCHAR2 (2000);
       v_deptno   NUMBER;
    BEGIN
       v_sql :=
             'SELECT DEPTNO FROM '
          || table1
          || ' WHERE ROWNUM = 1 AND DEPTNO IS NOT NULL';
       OPEN rc FOR v_sql;
       LOOP
          FETCH rc
           INTO v_deptno;
          EXIT WHEN rc%NOTFOUND;
          v_sql :=
                'UPDATE '
             || table2
             || ' SET DEPTNO = '
             || v_deptno
             || ' WHERE DEPTNO IS NULL';
          EXECUTE IMMEDIATE v_sql;
       END LOOP;
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line (SQLCODE || SQLERRM);
    END insert_to_table_dinamic;when i give DEPT , EMP as my 2 parameters above code will set the deptno in EMP table where deptno is null;
    --Just a test proc.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Introducing a dynamic table but when I preview it got an error

    I have the database connected, the recordset declared but
    when I introduce the dynamic table I can view it on the index.cfm
    file then I preview it in IE7 and I got an error. This is my first
    time please be patient.
    Thanks

    I think the problem is that this field has a space in it:
    #miembros_sanmarcos.id miembros#
    Should that be an underscore?
    #miembros_sanmarcos.id_miembros#
    Randy
    spinning_panda wrote:
    > I have the database connected, the recordset declared
    but when I introduce the
    > dynamic table I can view it on the index.cfm file then I
    preview it in IE7 and
    > I got an error. This is my first time please be patient.
    > Thanks
    >
    > Invalid CFML construct found on line 37 at column 34.
    > ColdFusion was looking at the following text:
    > miembros
    >
    > The CFML compiler was processing:
    >
    > An expression that began on line 37, column 11.
    > The expression might be missing an ending #, for
    example, #expr instead of
    > #expr#.
    > The body of a cfoutput tag beginning on line 35, column
    6.
    >
    >
    > The error occurred in
    C:\ColdFusion8\wwwroot\admin\TMP25uvpbr0bq.cfm: line 37
    >
    > 35 : <cfoutput query="miembros_sanmarcos"
    > startRow="#StartRow_miembros_sanmarcos#"
    maxRows="#MaxRows_miembros_sanmarcos#">
    > 36 : <tr>
    > 37 : <td>#miembros_sanmarcos.id
    miembros#</td>
    > 38 : <td>#miembros_sanmarcos.Nombre1#</td>
    > 39 : <td>#miembros_sanmarcos.Nombre2#</td>
    >

  • Typo/error in dynamic table example

    I'm talking about the on-line copy of the Spry dynamic table
    example:
    http://labs.adobe.com/technologies/spry/articles/dynamic_table/
    In the last two code blocks, in the TR element that uses
    spry:repeat, the value of spry:repeat is set to "spry:repeat"
    instead of "dsEmployees". If someone copies one of those code
    blocks and tweaks it to use it for their own datasets, they'll get
    a tokenizeData error.

    Thanks for catching that!
    The fixed version is now live on Labs.
    Thanks,
    Don

  • Error while creating dynamic Table

    Hi All,
    I have a node 'SEG' with 3 attributes, ATTR1.2.3, I am tring to crate dynamic table using this context node. Initialy i am displaying view with button, when click on this button i want to create table dynamically.. if click again one more table i have to create.. its giving dump... here is the code... How to do this???
    data: wd_node_info type ref to if_wd_context_node_info,
            wd_node type ref to if_wd_context_node,
            lr_container type ref to cl_wd_uielement_container,
            lv_tablename type string,
            lt_db_data type ref to data,
            lr_table type ref to cl_wd_table.
      field-symbols: <lt_data> type any table.
      wd_node_info = wd_context->get_node_info( ).
      wd_node = wd_context->get_child_node( name = 'SEG' ).
    lr_container ?= view->get_root_element( ).
      cl_wd_matrix_layout=>new_matrix_layout( container = lr_container ).
    " Creating internal table with the same structure as our dynamic
      context node
      CALL METHOD CL_WD_DYNAMIC_TOOL=>CREATE_TABLE_FROM_NODE
        EXPORTING
          UI_PARENT = lr_container
          TABLE_ID  = 'MY_TABLE'
          NODE      = wd_node
        RECEIVING
          TABLE     = lr_table.
      cl_wd_matrix_data=>new_matrix_data( element = lr_table ).
      lr_table->bind_data_source( path = 'SEG' ).
    Thanks'
    Madhan.

    Hi Sarbjeet,
    The code is working fine, when i use in wddomodify view method without button click on first time.( I checked this by creating another component). But I am creating dynamic table when click on button(view contains one button initially), for this i created two attributes FLAG OF TYPE wdy_boolean and count of type int1. and in button action i write this code :
      DATA lo_el_context TYPE REF TO if_wd_context_element.
        DATA ls_context TYPE wd_this->element_context.
        DATA lv_flag LIKE ls_context-flag.
      get element via lead selection
        lo_el_context = wd_context->get_element( ).
      get single attribute
        lo_el_context->set_attribute(
            name =  `FLAG`
            value = abap_true ).
      DATA lv_count LIKE ls_context-count.
    get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    get single attribute
      lo_el_context->get_attribute(
        EXPORTING
          name =  `COUNT`
        IMPORTING
          value = lv_count ).
    lv_count = lv_count + 1.
    lo_el_context->set_attribute(
        EXPORTING
          name =  `COUNT`
          value = lv_count ).
    and in wddomodify view method following code..
    Method WDDOMODIFYVIEW
    DATA lo_el_context TYPE REF TO if_wd_context_element.
      DATA ls_context TYPE wd_this->element_context.
      DATA lv_flag LIKE ls_context-flag.
      get element via lead selection
        lo_el_context = wd_context->get_element(  ).
      get single attribute
        lo_el_context->get_attribute(
          EXPORTING
            name =  `FLAG`
          IMPORTING
            value = lv_flag ).
      DATA lv_count LIKE ls_context-count.
    get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    get single attribute
      lo_el_context->get_attribute(
        EXPORTING
          name =  `COUNT`
        IMPORTING
          value = lv_count ).
    if lv_flag = abap_true. ......
    Remaining code same post previously************8
    get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    get single attribute
      lo_el_context->set_attribute(
        EXPORTING
          name =  `FLAG`
          value = abap_false ).
    endif.
    endmethod...
    I created like this i am not getting other UI elements(input, ddbykey,button).
    And if i click view button again it going to dump..
    Thanks,
    Madhan.

  • Why dynamic table creation with struts working only for JDK1.3.1_02 version

    Row
    import java.util.Vector;
    public class Row
    private static int colsize;
    private Column[] columns;
    public void setColumns(Column[] columns)
    System.out.println("SetColumns");
    this.columns = columns;
    public void setColumn(int i, Column column)
         System.out.println("setting"+ i+"th column"+column);
    public Column[] getColumns()
    return null;
    public Column getColumns(int i)
    System.out.println("Column"+i);
    System.out.println("Colsize"+colsize);
    if(columns == null)
    columns= new Column[colsize];
    if(columns[i] == null)
    columns[i] = new Column();
    return columns;
    public int getColsize()
         return colsize;
    public static void setColsize(int size)
         colsize = size;
    Column:
    public class Column
    private String value;
    public void setValue(String value)
    System.out.println("Value="+value);
    this.value = value;
    public String getValue()
    return value;
    ApplicationResources:
    button.cancel=Cancel
    button.confirm=Confirm
    button.reset=Reset
    button.save=Save
    database.load=Cannot load database from {0}
    error.database.missing=<li>User database is missing, cannot validate logon credentials</li>
    error.fromAddress.format=<li>Invalid format for From Address</li>
    error.fromAddress.required=<li>From Address is required</li>
    error.fullName.required=<li>Full Name is required</li>
    error.host.required=<li>Mail Server is required</li>
    error.noSubscription=<li>No Subscription bean in user session</li>
    error.password.required=<li>Password is required</li>
    error.password2.required=<li>Confirmation password is required</li>
    error.password.match=<li>Password and confirmation password must match</li>
    error.password.mismatch=<li>Invalid username and/or password, please try again</li>
    error.replyToAddress.format=<li>Invalid format for Reply To Address</li>
    error.transaction.token=<li>Cannot submit this form out of order</li>
    error.type.invalid=<li>Server Type must be 'imap' or 'pop3'</li>
    error.type.required=<li>Server Type is required</li>
    error.username.required=<li>Username is required</li>
    error.username.unique=<li>That username is already in use - please select another</li>
    errors.footer=</ul><hr>
    errors.header=<h3><font color="red">Validation Error</font></h3>You must correct the following error(s) before proceeding:<ul>
    errors.ioException=I/O exception rendering error messages: {0}
    heading.autoConnect=Auto
    heading.subscriptions=Current Subscriptions
    heading.host=Host Name
    heading.user=User Name
    heading.type=Server Type
    heading.action=Action
    index.heading=MailReader Demonstration Application Options
    index.logon=Log on to the MailReader Demonstration Application
    index.registration=Register with the MailReader Demonstration Application
    index.title=MailReader Demonstration Application (Struts 1.0-b1)
    index.tour=A Walking Tour of the Example Application
    linkSubscription.io=I/O Error: {0}
    linkSubscription.noSubscription=No subscription under attribute {0}
    linkUser.io=I/O Error: {0}
    linkUser.noUser=No user under attribute {0}
    logon.title=MailReader Demonstration Application - Logon
    mainMenu.heading=Main Menu Options for
    mainMenu.logoff=Log off MailReader Demonstration Application
    mainMenu.registration=Edit your user registration profile
    mainMenu.title=MailReader Demonstration Application - Main Menu
    option.imap=IMAP Protocol
    option.pop3=POP3 Protocol
    prompt.autoConnect=Auto Connect:
    prompt.fromAddress=From Address:
    prompt.fullName=Full Name:
    prompt.mailHostname=Mail Server:
    prompt.mailPassword=Mail Password:
    prompt.mailServerType=Server Type:
    prompt.mailUsername=Mail Username:
    prompt.password=Password:
    prompt.password2=(Repeat) Password:
    prompt.replyToAddress=Reply To Address:
    prompt.username=Username:
    registration.addSubscription=Add
    registration.deleteSubscription=Delete
    registration.editSubscription=Edit
    registration.title.create=Register for the MailReader Demostration Application
    registration.title.edit=Edit Registration for the MailReader Demonstration Application
    subscription.title.create=Create New Mail Subscription
    subscription.title.delete=Delete Existing Mail Subscription
    subscription.title.edit=Edit Existing Mail Subscription
    LogonForm
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    public class LogonForm extends ActionForm
    private String username;
    private String password;
    private String errors;
    public String getUsername()
    return username;
    public void setUsername(String username)
    this.username = username;
    public void setPassword(String password)
    this.password = password;
    public String getPassword()
    return password;
    public String getErrors()
         return errors;
    public void setErrors(String errors)
         this.errors = errors;
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    ActionErrors errors = new ActionErrors();
    if ((username == null) || (username.length() < 1))
    errors.add("username", new ActionError("error.username.required"));
    if ((password == null) || (password.length() < 1))
    errors.add("password", new ActionError("error.password.required"));
    return errors;
    TableForm
    import org.apache.struts.action.ActionForm;
    import java.util.Vector;
    public class TableForm extends ActionForm
    private static int rowsize;
    private Row[] rows;
    public Row getRows(int i)
    System.out.println("Row"+i);
    System.out.println("Rowsize"+rowsize);
    if(rows == null)
    rows = new Row[rowsize];
    if(rows[i] == null)
    rows[i] = new Row();
    return rows[i];
    public Row[] getRows()
         return null;
    public void setRows(Row[] rows)
         System.out.println("SetRows");
         // this.rows=rows;
    public static void setRowsize(int size)
         rowsize = size;
    public int getRowSize()
         return rowsize;
    LogonAction
    import java.io.IOException;
    import java.util.Hashtable;
    import java.util.Locale;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.util.MessageResources;
    public class LogonAction extends Action
    public ActionForward execute(ActionMapping mapping,
                        ActionForm form,
                        HttpServletRequest request,
                        HttpServletResponse response)
         throws IOException, ServletException {
    LogonForm logonForm = (LogonForm) form;
    System.out.println(logonForm);
    System.out.println(logonForm.getUsername());
    System.out.println(logonForm.getPassword());
    if(logonForm.getUsername().equals("test") && logonForm.getPassword().equals("test"))
    //TableForm tform = new TableForm();
    //tform.setRowsize(2);
    //tform.getRows(0).setColsize(2);
    //tform.getRows(1).setColsize(2);
    //request.getSession().setAttribute("tableForm",tform);
         System.out.println("Table Form setRowSize");
    TableForm.setRowsize(2);
         System.out.println("Table Form set ColSize");
    Row.setColsize(2);
         System.out.println("Returning success");
    return mapping.findForward("success");
    else
              ActionErrors errors = new ActionErrors();
              errors.add("password",
    new ActionError("error.password.mismatch"));
    saveErrors(request, errors);
    //logonForm.setErrors("LoginError");
    return mapping.findForward("failure");
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
    <!--
    This is the Struts configuration file for the example application,
    using the proposed new syntax.
    NOTE: You would only flesh out the details in the "form-bean"
    declarations if you had a generator tool that used them to create
    the corresponding Java classes for you. Otherwise, you would
    need only the "form-bean" element itself, with the corresponding
    "name" and "type" attributes.
    -->
    <struts-config>
    <form-beans>
    <!-- Logon form bean -->
    <form-bean name="logonForm"
    type="LogonForm"/>
    <form-bean name="tableForm"
    type="TableForm"/>
    <form-bean name="profileForm"
    type="ProfileForm"/>
    </form-beans>
    <global-forwards>
    <forward name="success" path="/Profile.jsp"/>
    </global-forwards>
    <!-- ========== Action Mapping Definitions ============================== -->
    <action-mappings>
    <!-- Edit user registration -->
    <action path="/logon"
    type="LogonAction"
    name="logonForm"
    scope="request"
    validate="false"
    input="/Test.jsp">
    <forward name="success" path="/Table.jsp"/>
    <forward name="failure" path="/Test.jsp"/>
    </action>
    <action path="/table"
    type="TableAction"
    name="tableForm"
    scope="request"
    validate="false">
    <forward name="success" path="/Bean.jsp"/>
    <forward name="failure" path="/Table.jsp"/>
    </action>
    <action path="/profile"
    type="ProfileAction"
    name="profileForm"
    scope="request"
    validate="false"
    parameter="method">
    <forward name="edit" path="/EditProfile.jsp"/>
    <forward name="show" path="/Profile.jsp"/>
    </action>
    </action-mappings>
    </struts-config>
    Test.jsp
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <html:html locale="true">
    <html:form action="/logon" >
    <center>
    <table>
    <tr>
    <td> Username </td>
    <td> <html:text property="username" size="16" maxlength="16"/> </td>
    <td> <html:errors property="username" /> </td>
    </tr>
    <tr>
    <td> Password </td>
    <td> <html:password property="password" size="16" maxlength="16"
    redisplay="false"/> </td>
    <td><html:errors property="password" /> </td>
    </tr>
    </table>
    </center>
    <center> <html:submit property="submit" value="Submit"/> </center>
    </html:form>
    </html:html>
    Table.jsp
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <html:html locale="true">
    <html:form action="/table" >
    <center>
    <table>
    <tr>
    <td> <html:text property="rows[0].columns[0].value" /> </td>
    <td> <html:text property="rows[0].columns[1].value" /></td>
    </tr>
    <tr>
    <td> <html:text property="rows[1].columns[0].value" /> </td>
    <td> <html:text property="rows[1].columns[1].value" /></td>
    </tr>
    </table>
    </center>
    <center> <html:submit property="submit" value="Submit"/> </center>
    </html:form>
    </html:html>

    The above application runs only with JDK1.3.1_02 and not with any other version. This application is creating dynamic table using struts.
    Can anybody help me on the same
    also appending web.xml contents:
    <?xml version="1.0" ?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <!-- Action Servlet Configuration -->
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>application</param-name>
    <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>validate</param-name>
    <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
    </servlet>
    <!-- Action Servlet Mapping -->
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <!--Welcome file list starts here -->
    <welcome-file-list>
    <welcome-file>
    /test.jsp
    </welcome-file>
    </welcome-file-list>
    <!-- Struts Tag Library Descriptors -->
    <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    </taglib>
    </web-app>
    validate-rules.xml
    <!DOCTYPE form-validation PUBLIC
    "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
    "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
    <!--
    This file contains the default Struts Validator pluggable validator
    definitions. It should be placed somewhere under /WEB-INF and
    referenced in the struts-config.xml under the plug-in element
    for the ValidatorPlugIn.
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
    /WEB-INF/validation.xml"/>
    </plug-in>
    These are the default error messages associated with
    each validator defined in this file. They should be
    added to your projects ApplicationResources.properties
    file or you can associate new ones by modifying the
    pluggable validators msg attributes in this file.
    # Struts Validator Error Messages
    errors.required={0} is required.
    errors.minlength={0} can not be less than {1} characters.
    errors.maxlength={0} can not be greater than {1} characters.
    errors.invalid={0} is invalid.
    errors.byte={0} must be a byte.
    errors.short={0} must be a short.
    errors.integer={0} must be an integer.
    errors.long={0} must be a long.
    errors.float={0} must be a float.
    errors.double={0} must be a double.
    errors.date={0} is not a date.
    errors.range={0} is not in the range {1} through {2}.
    errors.creditcard={0} is an invalid credit card number.
    errors.email={0} is an invalid e-mail address.
    -->
    <form-validation>
    <global>
    <validator name="required"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateRequired"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    msg="errors.required">
    <javascript><![CDATA[
    function validateRequired(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oRequired = new required();
    for (x in oRequired) {
         var field = form[oRequired[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'file' ||
    field.type == 'select-one' ||
    field.type == 'radio' ||
    field.type == 'password') {
    var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                            value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (trim(value).length == 0) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oRequired[x][1];
         isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    // Trim whitespace from left and right sides of s.
    function trim(s) {
    return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
    ]]>
    </javascript>
    </validator>
    <validator name="requiredif"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateRequiredIf"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    org.apache.commons.validator.Validator,
    javax.servlet.http.HttpServletRequest"
    msg="errors.required">
    </validator>
    <validator name="minlength"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateMinLength"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.minlength">
    <javascript><![CDATA[
    function validateMinLength(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMinLength = new minlength();
    for (x in oMinLength) {
    var field = form[oMinLength[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea') {
    var iMin = parseInt(oMinLength[x][2]("minlength"));
    if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
    if (i == 0) {
    focusField = field;
    fields[i++] = oMinLength[x][1];
    isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    }]]>
    </javascript>
    </validator>
    <validator name="maxlength"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateMaxLength"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.maxlength">
    <javascript><![CDATA[
    function validateMaxLength(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMaxLength = new maxlength();
    for (x in oMaxLength) {
    var field = form[oMaxLength[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea') {
    var iMax = parseInt(oMaxLength[x][2]("maxlength"));
    if (field.value.length > iMax) {
    if (i == 0) {
    focusField = field;
    fields[i++] = oMaxLength[x][1];
    isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    }]]>
    </javascript>
    </validator>
    <validator name="mask"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateMask"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.invalid">
    <javascript><![CDATA[
    function validateMask(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMasked = new mask();
    for (x in oMasked) {
    var field = form[oMasked[x][0]];
    if ((field.type == 'text' ||
    field.type == 'textarea') &&
    (field.value.length > 0)) {
    if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
    if (i == 0) {
    focusField = field;
    fields[i++] = oMasked[x][1];
    isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    function matchPattern(value, mask) {
    return mask.exec(value);
    }]]>
    </javascript>
    </validator>
    <validator name="byte"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateByte"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.byte"
    jsFunctionName="ByteValidations">
    <javascript><![CDATA[
    function validateByte(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oByte = new ByteValidations();
    for (x in oByte) {
         var field = form[oByte[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
                                  field.type == 'radio') {
                                  var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                            value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    if (!isAllDigits(value)) {
    bValid = false;
    if (i == 0) {
    focusField = field;
    fields[i++] = oByte[x][1];
    } else {
         var iValue = parseInt(value);
         if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oByte[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    }]]>
    </javascript>
    </validator>
    <validator name="short"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateShort"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.short"
    jsFunctionName="ShortValidations">
    <javascript><![CDATA[
    function validateShort(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oShort = new ShortValidations();
    for (x in oShort) {
         var field = form[oShort[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
    field.type == 'radio') {
    var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                            value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    if (!isAllDigits(value)) {
    bValid = false;
    if (i == 0) {
    focusField = field;
    fields[i++] = oShort[x][1];
    } else {
         var iValue = parseInt(value);
         if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oShort[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    }]]>
    </javascript>
    </validator>
    <validator name="integer"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateInteger"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.integer"
    jsFunctionName="IntegerValidations">
    <javascript><![CDATA[
    function validateInteger(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oInteger = new IntegerValidations();
    for (x in oInteger) {
         var field = form[oInteger[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
    field.type == 'radio') {
    var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                  if (si >= 0) {
                                       value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    if (!isAllDigits(value)) {
    bValid = false;
    if (i == 0) {
         focusField = field;
                                  fields[i++] = oInteger[x][1];
    } else {
         var iValue = parseInt(value);
         if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oInteger[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    function isAllDigits(argvalue) {
    argvalue = argvalue.toString();
    var validChars = "0123456789";
    var startFrom = 0;
    if (argvalue.substring(0, 2) == "0x") {
    validChars = "0123456789abcdefABCDEF";
    startFrom = 2;
    } else if (argvalue.charAt(0) == "0") {
    validChars = "01234567";
    startFrom = 1;
    } else if (argvalue.charAt(0) == "-") {
    startFrom = 1;
    for (var n = startFrom; n < argvalue.length; n++) {
    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
    return true;
    }]]>
    </javascript>
    </validator>
    <validator name="long"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateLong"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.long"/>
    <validator name="float"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateFloat"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.float"
    jsFunctionName="FloatValidations">
    <javascript><![CDATA[
    function validateFloat(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oFloat = new FloatValidations();
    for (x in oFloat) {
         var field = form[oFloat[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
    field.type == 'radio') {
         var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                       value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    // remove '.' before checking digits
    var tempArray = value.split('.');
    var joinedString= tempArray.join('');
    if (!isAllDigits(joinedString)) {
    bValid = false;
    if (i == 0) {
    focusField = field;
    fields[i++] = oFloat[x][1];
    } else {
         var iValue = parseFloat(value);
         if (isNaN(iValue)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oFloat[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    }]]>
    </javascript>
    </validator>
    <validator name="double"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateDouble"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.double"/>
    <validator name="date"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateDate"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.date"
    jsFunctionName="DateValidations">
    <javascript><![CDATA[
    function validateDate(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oDate = new DateValidations();
    for (x in oDate) {
    var value = form[oDate[x][0]].value;
    var datePattern = oDate[x][2]("datePatternStrict");
    if ((form[oDate[x][0]].type == 'text' ||
    form[oDate[x][0]].type == 'textarea') &&
    (value.length > 0) &&
    (datePattern.length > 0)) {
    var MONTH = "MM";
    var DAY = "dd";
    var YEAR = "yyyy";
    var orderMonth = datePattern.indexOf(MONTH);
    var orderDay = datePattern.indexOf(DAY);
    var orderYear = datePattern.indexOf(YEAR);
    if ((orderDay < orderYear && orderDay > orderMonth)) {
    var iDelim1 = orderMonth + MONTH.length;
    var iDelim2 = orderDay + DAY.length;
    var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
    var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
    if (iDelim1 == orderDay && iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
    } else if (iDelim1 == orderDay) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
    } else if (iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
    } else {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
    var matched = dateRegexp.exec(value);
    if(matched != null) {
    if (!isValidDate(matched[2], matched[1], matched[3])) {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
    var iDelim1 = orderDay + DAY.length;
    var iDelim2 = orderMonth + MONTH.length;
    var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
    var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
    if (iDelim1 == orderMonth && iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
    } else if (iDelim1 == orderMonth) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
    } else if (iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
    } else {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
    var matched = dateRegexp.exec(value);
    if(matched != null) {
    if (!isValidDate(matched[1], matched[2], matched[3])) {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
    var iDelim1 = orderYear + YEAR.length;
    var iDelim2 = orderMonth + MONTH.length;
    var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
    var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
    if (iDelim1 == orderMonth && iDelim2 == orderDay) {
    dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
    } else if (iDelim1 == orderMonth) {
    dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
    } else if (iDelim2 == orderDay) {
    dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
    } else {
    dateRegexp = new Reg

  • How to create dynamic View Object and Dynamic Table

    Dear ll
    I want to create a dynamic view object and display the output in a dynamic table on the page.
    I am using Jdeveloper 12c "Studio Edition Version 12.1.2.0.0"
    This what I did:
    1- I created a read only view object with this query "Select sysdate from dual"
    2- I added this View object to the application module
    3- I created a new method that change the query of this View object at runtime
        public void changeVoQuery(String dbViewName) {
            String sqlstm = "Select * From " + dbViewName;
            ViewObject dynamicVo = this.findViewObject("DynamicVo");
            if (dynamicVo != null) {
                dynamicVo.remove();
            dynamicVo = this.createViewObjectFromQueryStmt("DynamicVo", sqlstm);
            dynamicVo.executeQuery();
    4- I run the application module for testing the method and I passed "Scott.Emp" as a parameter and the result was Success
    5- Now I want to show the result of the view on the page, so I draged and dropped the method from the data control as a parameter form
    6- I dragged and dropped the view Object "DynamicVo" as a table and I choose "generate Column Dynamically at runtime". This is the page source
    <af:panelHeader text="#{viewcontrollerBundle.SELECT_DOCUMTN_TYPE}" id="ph1">
            <af:panelFormLayout id="pfl1">
                <af:inputText value="#{bindings.dbViewName.inputValue}" label="#{bindings.dbViewName.hints.label}"
                              required="#{bindings.dbViewName.hints.mandatory}"
                              columns="#{bindings.dbViewName.hints.displayWidth}"
                              maximumLength="#{bindings.dbViewName.hints.precision}"
                              shortDesc="#{bindings.dbViewName.hints.tooltip}" id="it1">
                    <f:validator binding="#{bindings.dbViewName.validator}"/>
                </af:inputText>
                <af:button actionListener="#{bindings.changeVoQuery.execute}" text="changeVoQuery"
                           disabled="#{!bindings.changeVoQuery.enabled}" id="b1"/>
            </af:panelFormLayout>
        </af:panelHeader>
        <af:table value="#{bindings.DynamicVo.collectionModel}" var="row" rows="#{bindings.DynamicVo.rangeSize}"
                  emptyText="#{bindings.DynamicVo.viewable ? 'No data to display.' : 'Access Denied.'}"
                  rowBandingInterval="0" selectedRowKeys="#{bindings.DynamicVo.collectionModel.selectedRow}"
                  selectionListener="#{bindings.DynamicVo.collectionModel.makeCurrent}" rowSelection="single"
                  fetchSize="#{bindings.DynamicVo.rangeSize}" filterModel="#{bindings.DynamicVoQuery.queryDescriptor}"
                  queryListener="#{bindings.DynamicVoQuery.processQuery}" filterVisible="true" varStatus="vs" id="t1"
                  partialTriggers="::b1">
            <af:iterator id="i1" value="#{bindings.DynamicVo.attributesModel.attributes}" var="column">
                <af:column headerText="#{column.label}" sortProperty="#{column.name}" sortable="true" filterable="true"
                           id="c1">
                    <af:dynamicComponent id="d1" attributeModel="#{column}"
                                         value="#{row.bindings[column.name].inputValue}"/>
                </af:column>
            </af:iterator>
        </af:table>
    when I run the page this error is occured
    <Nov 13, 2013 2:51:58 PM AST> <Error> <oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #1
    javax.el.ELException: java.lang.NullPointerException
    Caused By: java.lang.NullPointerException
    Can any body help me please
    thanks

    Have you seen Shay's video https://blogs.oracle.com/shay/entry/adf_faces_dynamic_tags_-_for_a
    All you have to do is to use the dynamic table to get your result.
    Timo

  • How to set dynamic table name in sql query?

    I want set dynamic table name by parameter in sql query,just like:
    select * from :tbname
    but run report is error,BI P report table name is invalidation.
    What can i do? Thanks!

    Hi,
    that's only possible inside a data template with a lexical parameter.
    Regards
    Rainer

Maybe you are looking for