Column optimization in GUI_DOWNLOAD--Exce

Hi Experts,
   I am writing an Excel file using GUI_DOWNLOAD function module. Is there any way to do column optimization in Excel file while downloading.
Thanks and regards,
Venkat

Hi,
There is a Complete & Very good documentation by SAP available on this URL. Please read this.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/204d1bb8-489d-2910-d0b5-cdddb3227820
Hope your query get solved.
Thanks and regards,
Ramani N

Similar Messages

  • FM GUI_DOWNLOAD

    Hi
    I am using FM 'GUI_DOWNLOAD' to download the data in Excel format. Now i am able to download the data in proper format bur unable to download the header of the columns. Can anyone have solution to this??

    Yes, it is possible to download column headers with GUI_DOWNLOAD. To do this,
    you must provide the parameter FIELDNAMES with a corresponding table:
    This table must be a single-line table.
    The following is a corresponding "showcase" source code:
    REPORT reportname.
    "    Declaration of Line Type: SPFLI                                  *
    TYPES: BEGIN OF line_type,
             field1 LIKE spfli-carrid,
             field2 LIKE spfli-connid,
             field3 LIKE spfli-cityfrom,
           END OF line_type.
    "    Declaration of Table Type                                        *
    TYPES tab_type TYPE STANDARD TABLE OF line_type.
    "    Declaration of internal Table                                    *
    DATA: itab  TYPE tab_type.
    "    Declaration of workarea                                          *
    DATA: wa   TYPE line_type.
    "    Declaration of Fieldnames                                        *
    DATA: BEGIN OF colnames OCCURS 0,
            col(10) TYPE c,
          END OF colnames.
    "    One Colname per line                                             *
    colnames-col = 'Column1'. APPEND colnames.
    colnames-col = 'Column2'. APPEND colnames.
    colnames-col = 'Column3'. APPEND colnames.
    START-OF-SELECTION.
       "    Get the data and fill the workarea                             *
       SELECT carrid connid cityfrom
         FROM spfli
         INTO (wa-field1, wa-field2, wa-field3).
         APPEND wa TO itab.
       ENDSELECT.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
       "    Now download the itab with fieldnames:                         *
       "    By using dat_mode and fieldseparator                           *
       CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
           filename              = 'C:\TEMP\test.txt'
           filetype              = 'ASC'
           dat_mode              = 'X'
           write_field_separator = 'X'
         TABLES
           data_tab              = itab
           fieldnames            = colnames
         EXCEPTIONS
           OTHERS                = 1.
       if sy-subrc <> 0.
         message i398(00) with 'Error: ' sy-subrc 'during gui_download!'.
       endif.

  • Permission issues accross schemas to load XMLTYPE column - structured storage

    Hi,
    We have a table in BIUSER schema this table is object-realtionally stored with XMLs. When we are trying to load receords from ETLUSER schema we are getting the error as
    Record 1: Rejected - Error on table "BIUSER"."PWAYWORKFILE_TABLE".
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01031: insufficient privileges
    Heres the oracle installation details
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    "CORE 11.2.0.3.0 Production"
    All the records are moving to the bad file, whereas the same load happens normally in its own schema i.e. BIUSER
    Suspecting this as permission issues we have already given the permission to the table sysnonym as given below in the registration script.
    We googled and found few things about ACLs that we are not sure of , its that is the issue please let us know if this table can be created and loaded from different schema
    Heres the table creation and registration script
    set echo on
    spool regschema.log
    set define on
    set timing on
    set long 100000 pages 0 lines 256 trimspool on timing on
    drop table PWAYWORKFILE_TABLE;
    drop sequence PWAYWORKFILE_TABLE_SEQ;
    begin
    dbms_xmlschema.deleteschema('workfile.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('TotalLoss.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('Salvage.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('rate.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('notes.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('Image.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('Event.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('estimate.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('CoTotals.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('corr.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('Admin.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('Vins.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('commonType.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'commonType.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'commonType.xsd';
    BEGIN
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'Admin.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'Admin.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'CoTotals.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'CoTotals.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'Event.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'Event.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'Image.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'Image.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'Salvage.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'Salvage.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'TotalLoss.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'TotalLoss.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME        VARCHAR2(700) := 'Vins.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'Vins.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      -- DOM Fidelity enabled due to presence of mixed text, substitution group heads, or repeating choice structures in complex type defintion :-
      DBMS_XMLSCHEMA_ANNOTATE.enableMaintainDOM(V_XML_SCHEMA,'RefurbMgr',TRUE);
      select /*+ NO_XML_QUERY_REWRITE */
             XMLQuery(
               'declare namespace xdb = "http://xmlns.oracle.com/xdb"; (:
                copy $NEWSCH := $SCHEMA modify (
                                          let $MODEL := $NEWSCH/xs:schema/xs:complexType[11]/xs:all
                                          return (
                                            replace value of node $MODEL/xs:element[2]/xs:complexType/@xdb:maintainDOM with "false",
                                            replace value of node $MODEL/xs:element[3]/xs:complexType/@xdb:maintainDOM with "false",
                                            replace value of node $MODEL/xs:element[4]/xs:complexType/@xdb:maintainDOM with "false"
                 return $NEWSCH'
               passing V_XML_SCHEMA as "SCHEMA"
               returning content
        into V_XML_SCHEMA
        from dual;
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'corr.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'corr.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'estimate.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'estimate.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'notes.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'notes.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'rate.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'rate.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'workfile.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'workfile.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
      -- Out-of-Line mappings for 1000 Column optimization :-
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'AdminComp','ADMINCOMP_XML');
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'NotesComp','NOTESCOMP_XML');
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'SalvageComp','SALVGCOMP_XML');
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'CorrComp','CORRCOMP_XML');
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'ImageComp','IMAGECOMP_XML');
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'EventInterfaceManagerComp','EVIFCMGRCOMP_XML');
      DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'WorkfileType', 'TotalLossComp','TOTALLOSSCOMP_XML');
      DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => TRUE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    -- Table creation for namespace "http://www.cccis.com/Pathways/Workfile"
    set lines 80
    CREATE TABLE "PWAYWORKFILE_TABLE"
          SequenceID NUMBER,
          DL_CLM_FOLDER_ID   VARCHAR2(30),
          CUST_CLM_REF_ID VARCHAR(25),
          ems_file_nm               varchar2(256),
          EST_IND         VARCHAR2(3),
          rec_dt date default sysdate,
          filesent_datetime date,
          CLM_TYP_CD               VARCHAR2(2 CHAR),
          WORKFILE  XMLTYPE
    XMLTYPE COLUMN WORKFILE
    STORE AS OBJECT RELATIONAL
    XMLSCHEMA "workfile.xsd" ELEMENT "PwayWorkfile"
    create sequence PWAYWORKFILE_TABLE_SEQ
    start with 1
    increment by 1
    nomaxvalue
    create trigger PWAYWORKFILE_TABLE_TRIGGER
    before insert on PWAYWORKFILE_TABLE
    for each row
    begin
    select PWAYWORKFILE_TABLE_SEQ.nextval into :new.SequenceID from dual;
    end;
    desc PWAYWORKFILE_TABLE
    /* create synonym */
    create or replace public synonym PWAYWORKFILE_TABLE for PWAYWORKFILE_TABLE;
    grant select on PWAYWORKFILE_TABLE to BIUSER_RO;
    grant select, insert, update,delete on PWAYWORKFILE_TABLE to biuser_full;
    exit;
    Regards,
    Arghyadip

    Hi MarcoGralike,
    I have finally acquired a sample schema and xmls to reproduce the errors that i am getting even after acquiring XDBADMIN privilege and registering my schema as GLOBAL.
    Here's the problem i am facing, whenever i intend to store the PublisherList (publisher.xsd) out of line while registration i am running into insufficient privilege issues even if i have the schema registered using (LOCAL => FALSE), whereas it runs smooth in BIUSER and if i dont set it out of line it works in ETLUSER as well.
    Here are the 2 XSD files
    books.xsd   --- this is the root element
    <xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb"  version="1.0" xdb:storeVarrayAsTable="true">
      <xs:include schemaLocation="publisher.xsd"/>
      <xs:element name="books" type="bookType"/>
      <xs:complexType name="bookType" abstract="true">
        <xs:sequence>
        <xs:element name="author" type="xs:string" minOccurs="0"/>
        <xs:element name="title" type="xs:string" minOccurs="0"/>
        <xs:element name="genre" type="xs:string" minOccurs="0"/>
        <xs:element ref="PublisherList" minOccurs="0"/>
       </xs:sequence>
       </xs:complexType>
    </xs:schema>
    publisher.xsd -- this is a child elelment which in my actual scenario is so big that i must keep it out of line during registration
    <xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb"  version="1.0" xdb:storeVarrayAsTable="true">
      <xs:element name="PublisherList" type="PublisherListType"/>
      <xs:complexType name="PublisherListType">
        <xs:sequence>
        <xs:element name="Name" type="xs:string" minOccurs="0"/>
        <xs:element name="Office" type="xs:string" minOccurs="0"/>
       </xs:sequence>
       </xs:complexType>
    </xs:schema>
    Here's the sample XML
    <?xml version="1.0"?>
    <books xmlns:xs="http://www.w3.org/2001/XMLSchema">
          <author>Writer</author>
          <title>The First Book</title>
          <genre>Fiction</genre>
          <PublisherList>
           <Name>Penguin</Name>
           <Office>London</Office>
          </PublisherList>
    </books>
    Here's how i am registering the Schemas in BIUSER which has XDBADMIN privilege
    DROP TABLE BOOKS_TABLE;
    begin
    dbms_xmlschema.deleteschema('books.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    begin
    dbms_xmlschema.deleteschema('publisher.xsd',dbms_xmlschema.DELETE_CASCADE);
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'publisher.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'publisher.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
        DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => FALSE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    declare
      V_XML_SCHEMA_NAME       VARCHAR2(700) := 'books.xsd';
      V_XML_SCHEMA             XMLType       := xmlType(BfileName('XSD_DIR',V_XML_SCHEMA_NAME),nls_charset_id('AL32UTF8'));
      V_SCHEMA_LOCATION_HINT   VARCHAR2(700) := 'books.xsd';
    begin
      DBMS_XMLSCHEMA_ANNOTATE.printWarnings(FALSE);
      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE(V_XML_SCHEMA);
      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
    DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'bookType', 'PublisherList','PUBLISHERLIST_XML');
        DBMS_XMLSCHEMA.registerSchema(
        SCHEMAURL       => V_SCHEMA_LOCATION_HINT
       ,SCHEMADOC       => V_XML_SCHEMA
       ,LOCAL           => FALSE
       ,GENTYPES        => TRUE
       ,GENTABLES       => TRUE
       ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    end;
    CREATE TABLE BOOKS_TABLE
          BOOKS  XMLTYPE
    XMLTYPE COLUMN BOOKS
    STORE AS OBJECT RELATIONAL
    XMLSCHEMA "books.xsd" ELEMENT "books"
    DROP PUBLIC SYNONYM BOOKS_TABLE;
    create or replace public synonym BOOKS_TABLE for BOOKS_TABLE;
    grant select, insert, update,delete on BOOKS_TABLE to ETLUSER;
    Heres the ctl file that i am using
    Load_Books.ctl
    OPTIONS (ERRORS=100000, SILENT=(HEADER,FEEDBACK),ROWS=500, BINDSIZE=3072000 , READSIZE=3072000)
    load data
    infile '/apps/dev/PWXML-10/ctl/load_xml.txt'
    BADFILE '/apps/dev/PWXML-10/ctl/load_xml.txt.bad'
    DISCARDFILE '/apps/dev/PWXML-10/ctl/load_xml.txt.dsc'
    append
    into table BOOKS_TABLE
    filename filler char(120),
    BOOKS lobfile(filename) terminated by eof)
    '/apps/dev/PWXML-10/ctl/load_xml.txt' would contain the XML file path that i gave
    Heres how i am loading the XML through sqlldr in ETLUSER
    sqlldr etluser/etluserpassword@MYXMLDBNAME control=Load_Books.ctl log=Load_Books.ctl.log
    Here's the error i am getting
    Record 1: Rejected - Error on table "BIUSER"."BOOKS_TABLE".
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01031: insufficient privileges
    Hopefully i have given you all the set up required to pin point the evil error.
    Please let me know if i have missed something.

  • Arrange Column for export data

    Dear Expert
    I want to export data, how do i arrange the column in data?
    Exc
    COL1 = ACCOUNT
    COL2 = ASSET
    COL3 = ENTITY
    COL4 = COSTCENTER
    Please give your advice
    Best Regard
    Daniel

    Hi Experts,
    We are facing the same problem while exporting data from BPC. We have successfully exported data once but the Column mapping keeps changing each time we export.
    Can someone guide on the default column mapping in the transformation file and how to ensure that this mapping doesn't shift everytime we export?
    Any further help on the same are very much appreciated.
    Thanks,
    Pankti Shroff

  • Arrow mark with kunnr field values in alv output.

    Hi ,
    I  need to increase the column field length. I am using Function Module REUSE_ALV_LIST_DISPLAY because alv_grid display fm is not available in 4.0b version. I have used column optimization in layout. The column kunnr is coming with a small arrow though there is no data loss. Is there any way I can remove the arrow mark with kunnr field values.

    Hi,
    You can increase your column lenght in fieldcat by using Fcat-columnwidth = "SIZE OF KUNNR ".
    Set the size of kunnr field in fieldcat and get the appropiate output.
    Regards
    Abdul

  • Check box in ALV BLOCK List

    Hi All,
    iam Using ALV BLOCK list to print the output along with check boxes, iam able to print the output along with the check boxes but when i select any of the check box and click button on application tool bar it is going to dump  and saying,
    FIELD SYMBOL HAS NOT YET BEEN ASSIGNED.
    i populated layout with following fields.
      w_layout-box_fieldname = 'BOX'.
      w_layout-box_tabname = 'T_FINAL2'.
    Plz Help me out.
    Thanks in Advance.
    Neha

    *& Report  BCALV_TEST_BLOCK_LIST
    report  bcalv_test_block_list.
    types: g_ty_t_carrid  type standard table of alv_tab,
           g_ty_t_connid  type standard table of alv_chck,
           g_ty_t_curr    type standard table of alv_cur,
           g_ty_s_sflight type alv_t_t2,
           g_ty_s_carrid  type alv_tab,
           g_ty_s_connid  type alv_chck,
           g_ty_s_curr    type alv_cur.
    constants: con_sflight type lvc_fname value 'ALV_T_T2',
               con_scarr   type lvc_fname value 'ALV_TAB',
               con_spfli   type lvc_fname value 'ALV_CHCK',
               con_scurx   type lvc_fname value 'ALV_CUR',
               con_event_01 type lvc_fname value 'PF_STATUS_SET',
               con_event_02 type lvc_fname value 'USER_COMMAND',
               con_event_03 type lvc_fname value 'CALLER_EXIT',
               con_event_04 type lvc_fname value 'LIST_MODIFY',
               con_event_05 type lvc_fname value 'BEFORE_LINE_OUTPUT',
               con_event_06 type lvc_fname value 'AFTER_LINE_OUTPUT',
               con_event_07 type lvc_fname value 'SUBTOTAL_TEXT',
               con_event_08 type lvc_fname value 'REPREP_MODIFY',
               con_event_09 type lvc_fname value 'TOP_OF_PAGE',
               con_event_10 type lvc_fname value 'END_OF_PAGE',
               con_event_11 type lvc_fname value 'TOP_OF_LIST',
               con_event_12 type lvc_fname value 'END_OF_LIST',
               con_event_13 type lvc_fname value 'TOP_OF_COVERPAGE',
               con_event_14 type lvc_fname value 'END_OF_COVERPAGE',
               con_event_15 type lvc_fname value 'TOP_OF_FOREIGN_PAGE',
               con_event_16 type lvc_fname value 'END_OF_FOREIGN_PAGE',
               con_event_17 type lvc_fname value 'GROUPLEVEL_CHANGE'.
    DATA                                                                 *
    tables: sscrfields.   " for processing the FCODEs in Selektion screens
    include <icon>.
    include <symbol>.
    type-pools: slis, kkblo.
    types: g_ty_t_icon  type standard table of icon,
           g_ty_t_icont type standard table of icont,
           begin of g_ty_s_plane,
             carrid    type g_ty_s_sflight-carrid,
             connid    type g_ty_s_sflight-connid,
             planetype type g_ty_s_sflight-planetype,
             seatsmax  type g_ty_s_sflight-seatsmax,
           end   of g_ty_s_plane,
           g_ty_t_plane type sorted table of g_ty_s_plane
                             with unique key carrid connid,
           begin of g_ty_s_fcat_curr,
             fieldname  type lvc_fname,
             cfieldname type lvc_fname,
             currency   type lvc_s_fcat-currency,
           end   of g_ty_s_fcat_curr,
           g_ty_t_fcat_curr type sorted table of g_ty_s_fcat_curr
                                 with unique key fieldname,
           begin of g_ty_s_sort.
    include type slis_sortinfo_alv.
    types: end   of g_ty_s_sort,
           g_ty_t_sort type sorted table of g_ty_s_sort
                            with unique key spos fieldname,
           begin of g_ty_s_test,
             list_amount              type num1,
             select_amount            type i,
             only_db_info             type char1,
             db_short                 type char1,
             excp_display             type char1,
             excp_condense            type char1,
             layo_title               type lvc_s_layo-grid_title,
             layo_zebra               type char1,
             layo_no_vert_lines       type char1,
             layo_no_horiz_lines      type char1,
             layo_cell_merge          type char1,
             layo_count               type char1,
             layo_box                 type char1,
             layo_no_colhead          type char1,
             layo_column_optimize     type char1,
             layo_keys_hotspot        type char1,
             layo_no_keyfix           type char1,
             layo_no_hotspot          type char1,
             layo_hotspot_rows        type i occurs 0,
             layo_hotspot_columns     type lvc_fname occurs 0,
             layo_no_scrolling        type char1,
             layo_no_authcheck        type char1,
             layo_no_min_linesize     type char1,
             layo_min_linesize        type sylinsz,
             layo_max_linesize        type sylinsz,
             layo_group_change_edit   type char1,
             layo_get_selinfo         type char1,
             layo_confirmation_prompt type char1,
             layo_f2code              type syucomm,
             layo_reprep              type char1,
             sum_before               type char1,
             sum_no_sumline           type char1,
             sum_no_sumchoice         type char1,
             sum_numc                 type char1,
             sum_no_unitsplit         type char1,
             sum_totals_only          type char1,
             sum_totals_text          type symsgli,
             sum_no_subtotals         type char1,
             sum_no_subchoice         type char1,
             sum_subtotals_text       type symsgli,
             prnt_print               type char1,
             prnt_reserve_lines       type lvc_s_prnt-reservelns,
             prnt_no_listinfo         type char1,
             prnt_no_selinfo          type char1,
             prnt_with_title          type char1,
             prnt_footline            type lvc_s_prnt-footline,
             prnt_printinfo           type char1,
             prnt_no_coverpage        type char1,
             prnt_no_new_page         type char1,
             prnt_no_change_print_params type char1,
             color_rows               type i occurs 0,
             color_fields_column      type lvc_fname occurs 0,
             color_fields_cell        type lvc_fname occurs 0,
             fcat_no_out_fields       type lvc_fname occurs 0,
             fcat_tech_fields         type lvc_fname occurs 0,
             fcat_fix_column_fields   type lvc_fname occurs 0,
             fcat_do_sum_fields       type lvc_fname occurs 0,
             fcat_no_sum_fields       type lvc_fname occurs 0,
             fcat_curr_fields         type g_ty_t_fcat_curr,
             curr_amount              type i,
             curr_space               type char1,
             t_sort                   type g_ty_t_sort,
             no_info_popup            type char1,
             info_popup_once          type char1,
             events_info_popup        type lvc_fname occurs 0,
             events                   type lvc_fname occurs 0,
             buffer_active            type char1,
             bypassing_buffer         type char1,
           end   of g_ty_s_test,
           begin of g_ty_s_outtab.
    include type g_ty_s_sflight.
    types:   list                 type num1,
             box                  type char1,
             count                type i,
             lights               type char1,
             checkbox             type char1,
             hotspot              type char1,
             color(4)             type c,
             tabcolor             type slis_t_specialcol_alv,
             price2               type g_ty_s_sflight-price,
             currency2            type g_ty_s_sflight-currency,
             char(10)             type c,
             string               type string,
             int1                 type int1,
             int2                 type int2,
             int4                 type int4,
             numc(10)             type n,
             dec(10)              type p decimals 2,
             fltp                 type f,
             dats                 type d,
             tims                 type t,
             icon                 type icon-id,
             icon_qinfo           type icon-name,
             symbol               type icon-id,
           end   of g_ty_s_outtab,
           g_ty_t_outtab type table of g_ty_s_outtab.
    constants: con_true         type char1 value 'X',
               con_ok   type sy-ucomm value 'OK',
               con_exit type sy-ucomm value 'EXIT',
               con_canc type sy-ucomm value 'CANC',
               con_back type sy-ucomm value 'BACK'.
    data: gt_outtab1 type g_ty_t_outtab,
          gt_outtab2 type g_ty_t_outtab,
          gt_outtab3 type g_ty_t_outtab,
          gt_outtab4 type g_ty_t_outtab,
          gt_outtab5 type g_ty_t_outtab,
          gt_outtab6 type g_ty_t_outtab,
          gt_outtab7 type g_ty_t_outtab,
          gt_outtab8 type g_ty_t_outtab,
          gt_outtab9 type g_ty_t_outtab.
    data: gt_outtab   type g_ty_t_outtab with header line,
          gs_test     type g_ty_s_test.
    data: g_repid     type sy-repid.
    data: g_field     type lvc_s_fcat-fieldname,
          g_int_field type i.
          CLASS random DEFINITION
    class random definition.
      public section.
        types:
          value(16) type p decimals 0,
          numcv(15) type n.
        constants:
          max type random=>value value 4294967295.
        class-methods:
      computes a random natural number from the set {0, ..., random=>max}.
          number returning value(rval) type random=>value,
      computes a random character from the set {A-Za-z0-9}
          c returning value(rval) type char01,
      computes a random string consisting of "len" random characters
          string importing len type i
                 returning value(rval) type string,
      computes a date
          dats returning value(rval) type d,
      computes a time
          time returning value(rval) type t,
      computes a random numc from the set {low, ..., high}
          numc importing low type random=>numcv high type random=>numcv
            returning value(rval) type random=>numcv,
      computes a random integer from the set {low, ..., high}
          i importing low type i high type i
            returning value(rval) type i,
      computes a random integer from the set {low, ..., high}
          int2 importing low type int2 high type int2
               returning value(rval) type int2,
      computes a random integer from the set {low, ..., high}
          int1 importing low type int1 high type int1
               returning value(rval) type int1,
      computes a random float from the interval [low ; high]
          f importing low type f high type f
            returning value(rval) type f,
      computes a random character from the set {A-F0-9}
          hex returning value(rval) type char01,
      computes a random character from the set {0-1}
          x returning value(rval) type char01,
      method "random=>class_constructor"
          class_constructor.
      private section.
        class-data:
      precomputed maximal index (= string length - 1) of "random=>chars"
      or of "random=>x_data".
          charsmax type i,
          xmax type i,
      random number seed value.
      (Used in method "random=>number".)
          seed type random=>value.
        constants:
      characters for class-method "random=>hex"
          hex_data(100) type c value 'ABCDEF' &
                                     '0123456789',
      characters for class-method "random=>x"
          x_data(100) type c value '01',
      characters for class-metshod "random=>c"
          chars(100) type c value 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' &
                                  'abcdefghijklmnopqrstuvwxyz' &
                                  '0123456789'.
    endclass.                    "random DEFINITION
          CLASS random IMPLEMENTATION
    class random implementation.
    implementation of the methods for randomizing the values
      method x.
        data: ri type i.
        ri = random=>i( low = 0  high = random=>xmax ).
        move x_data+ri(1) to rval.
      endmethod.                    "x
      method hex.
        data: ri type i.
        ri = random=>i( low = 0  high = random=>charsmax ).
        move hex_data+ri(1) to rval.
      endmethod.                    "hex
      method number.
        constants:
          a(3) type p  value 67301,        " Coefficient
          c(1) type p  value 1,            " Increment
          m(6) type p  value 4294967296.   " Modulus 2**32
        random=>seed = ( a * random=>seed + c ) mod m.
        rval = random=>seed.
      endmethod.                    "number
      method c.
        data:
          ri type i.
        ri = random=>i( low = 0  high = random=>charsmax ).
        move chars+ri(1) to rval.
      endmethod.                    "c
      method string.
        data:
          char(1) type c.
        clear rval.
        do len times.
          char = random=>c( ).
          concatenate rval char into rval.
        enddo.
      endmethod.                    "string
      method dats.
        data: l_date      type sy-datum,
              l_day(2)    type n,
              l_month(2)  type n,
              l_year(4)   type n,
              l_value     type random=>numcv,
              l_low       type random=>numcv,
              l_high      type random=>numcv.
        l_year  = sy-datum+0(4).
        l_low   = l_year - 5.
        l_high  = l_year + 5.
        l_value = random=>numc( low = l_low high = l_high ).
        l_year  = l_value+11(4).
        l_value = random=>numc( low = 1 high = 12 ).
        l_month = l_value+13(2).
        case l_month.
          when 2.
            l_high = 28.
          when 4 or 6 or 9 or 11.
            l_high = 30.
          when others.
            l_high = 31.
        endcase.
        l_value = random=>numc( low = 1 high = l_high ).
        l_day   = l_value+13(2).
        l_date+0(4) = l_year.
        l_date+4(2) = l_month.
        l_date+6(2) = l_day.
        rval = l_date.
      endmethod.                    "dats
      method time.
        data: l_time      type t,
              l_hour(2)   type n,
              l_min(2)    type n,
              l_sec(2)    type n,
              l_value     type random=>numcv.
        l_value = random=>numc( low = 0 high = 60 ).
        l_sec   = l_value+13(2).
        l_value = random=>numc( low = 0 high = 60 ).
        l_min   = l_value+13(2).
        l_value = random=>numc( low = 1 high = 24 ).
        l_hour  = l_value+13(2).
        l_time+0(2) = l_hour.
        l_time+2(2) = l_min.
        l_time+4(2) = l_sec.
        rval = l_time.
      endmethod. "time
      method numc.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method i.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method int2.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method int1.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method f.
      Go from {0,...,random=>max} to [low;high]
        rval = ( ( high - low ) * random=>number( ) ) / random=>max
               + low.
      endmethod.                    "f
      method class_constructor.
        charsmax = strlen( chars ) - 1.
        xmax = strlen( x_data ) - 1.
        seed = 1.
      endmethod.                    "class_constructor
    endclass.                    "random IMPLEMENTATION
    SELECTION-SCREEN                                                     *
    selection-screen begin of block gen with frame.
    parameters:
    p_amount type i default 30,
    p_dbinfo as checkbox,
    p_dbshrt as checkbox.
    selection-screen end of block gen.
    parameters:
    p_list type num1 default 3.
    selection-screen begin of block tit with frame title text-tit.
    parameters:
    p_tit01 type lvc_s_layo-grid_title default text-p01. "TITLE
    selection-screen end of block tit.
    selection-screen begin of block lay with frame title text-lay.
    parameters:
    p_lay01 as checkbox. "ZEBRA
    selection-screen skip.
    parameters:
    p_lay02 as checkbox, "NO HORIZONTAL LINES
    p_lay03 as checkbox. "NO VERTICAL LINES
    selection-screen skip.
    parameters:
    p_lay04 as checkbox. "NO SCROLLING
    selection-screen skip.
    parameters:
    p_lay06 type syucomm,                                       "F2CODE
    p_lay07 as checkbox. "CONFIRMATION PROMPT
    selection-screen end of block lay.
    selection-screen begin of block spa with frame title text-spa.
    parameters:
    p_spa01 as checkbox, "BOX
    p_spa02 as checkbox, "COUNT FELD
    p_spa03 as checkbox, "NO COLUMN HEADERS
    p_spa04 as checkbox. "COLUMN OPTIMIZE
    selection-screen begin of block hot with frame title text-hot.
    parameters:
    p_hot01 as checkbox. "NO HOTSPOT
    parameters:
    p_hot02 as checkbox. "Hotspot auf Zeilenebene
    select-options:
    p_hotf02 for g_int_field no intervals default 1.
    parameters:
    p_hot03 as checkbox.
    select-options:
    p_hotf03 for g_field no intervals.
    selection-screen end of block hot.
    selection-screen begin of block mrg with frame title text-mrg.
    parameters:
    p_mrg01 radiobutton group mrge, "Default
    p_mrg02 radiobutton group mrge, "kein Merge
    p_mrg03 radiobutton group mrge. "Merge
    selection-screen end of block mrg.
    selection-screen begin of block out with frame title text-out.
    parameters:
    p_out01 as checkbox.
    select-options:
    p_outf01 for g_field no intervals.
    selection-screen end of block out.
    selection-screen begin of block tec with frame title text-tec.
    parameters:
    p_tec01 as checkbox.
    select-options:
    p_tecf01 for g_field no intervals.
    selection-screen end of block tec.
    selection-screen begin of block fix with frame title text-fix.
    parameters:
    p_fix01 as checkbox.
    select-options:
    p_fixf01 for g_field no intervals.
    selection-screen end of block fix.
    selection-screen begin of block txt with frame title text-txt.
    selection-screen pushbutton /1(50) text-pb2 user-command pb02.
    selection-screen end   of block txt.
    selection-screen begin of block cur with frame title text-cur.
    parameters:
    p_curanz type i,
    p_curspc as checkbox default space.
    selection-screen skip.
    select-options:
    p_curf00 for g_field no intervals.
    parameters:
    p_cur01 radiobutton group cur default 'X',
    p_curf01 type lvc_s_fcat-fieldname.
    parameters:
    p_cur02 radiobutton group cur,
    p_curf02 type g_ty_s_sflight-currency.
    selection-screen end of block cur.
    selection-screen begin of block sort with frame title text-srt.
    selection-screen pushbutton /1(20) text-pb1 user-command pb01.
    selection-screen end   of block sort.
    selection-screen end of block spa.
    selection-screen begin of block key with frame title text-key.
    parameters:
    p_key01 as checkbox, "KEYFELDER ALS HOTSPOT
    p_key02 as checkbox. "NO KEY FIXIERUNG
    selection-screen end of block key.
    selection-screen begin of block exp with frame title text-exp.
    parameters:
    p_excp01 as checkbox, "EXCEPTION
    p_excp_c as checkbox. "EXCEPTION CONDENSE
    selection-screen end of block exp.
    selection-screen begin of block sum with frame title text-sum.
    parameters:
    p_sum01 as checkbox, "SUM BEFORE
    p_sum02 as checkbox, "NUMC
    p_sum03 as checkbox, "NO UNITSPLIT
    p_sum04 as checkbox, "TOTALS ONLY
    p_sum05 as checkbox, "NO SUMCHOICE
    p_sum06 as checkbox, "NO SUMLINE
    p_sum07 type sy-msgli, "TOTALS TEXT
    p_sum08 as checkbox, "NO SUBCHOICE
    p_sum09 as checkbox, "NO SUBTOTALS
    p_sum10 type sy-msgli. "SUBTOTALS TEXT
    selection-screen begin of block dos with frame title text-dos.
    parameters:
    p_dos01 as checkbox.
    select-options:
    p_dosf01 for g_field no intervals.
    selection-screen end of block dos.
    selection-screen begin of block nos with frame title text-nos.
    parameters:
    p_nos01 as checkbox.
    select-options:
    p_nosf01 for g_field no intervals.
    selection-screen end of block nos.
    selection-screen end of block sum.
    selection-screen begin of block col with frame title text-col.
    parameters:
    p_col01 as checkbox.
    select-options:
    p_colf01 for g_int_field no intervals default 1.
    parameters:
    p_col02 as checkbox.
    select-options:
    p_colf02 for g_field no intervals.
    parameters:
    p_col03 as checkbox.
    select-options:
    p_colf03 for g_field no intervals.
    selection-screen end of block col.
    selection-screen begin of block prn with frame title text-prn.
    parameters:
    p_lpr01 as checkbox default 'X'. "GROUP CHANGE EDIT
    selection-screen skip.
    parameters:
    p_lpr02 as checkbox. "GET SELINFO
    selection-screen skip.
    parameters:
    p_lpr03 as checkbox, "NO MIN LINESIZE
    p_lpr04 type sylinsz, "MIN LINESIZE
    p_lpr05 type sylinsz. "MAX LINESIZE
    selection-screen skip.
    parameters:
    p_prn01 as checkbox, "PRINT
    p_prn02 type lvc_s_prnt-reservelns, "RESERVE LINES
    p_prn03 as checkbox, "NO LISTINFO
    p_prn04 as checkbox, "NO SELINFO
    p_prn05 as checkbox, "TITEL
    p_prn06 type lvc_s_prnt-footline, "FOOTLINE
    p_prn07 as checkbox, "PRINT INFO
    p_prn08 as checkbox, "NO COVERPAGE
    p_prn09 as checkbox, "NO NEW PAGE
    p_prn10 as checkbox. "NO CHANGE PRINT PARAMS
    selection-screen end of block prn.
    selection-screen begin of block evt with frame.
    parameters:
    p_evt01 as checkbox, "PF_STATUS_SET
    p_evt02 as checkbox. "USER_COMMAND
    selection-screen skip.
    parameters:
    p_evt03 as checkbox, "CALLER_EXIT
    p_evt04 as checkbox, "LIST_MODIFY
    p_evt05 as checkbox, "BEFORE_LINE_OUTPUT
    p_evt06 as checkbox. "AFTER_LINE_OUTPUT
    selection-screen skip.
    parameters:
    p_evt07 as checkbox, "SUBTOTAL_TEXT
    p_evt08 as checkbox. "REPREP_SEL_MODIFY
    selection-screen skip.
    parameters:
    p_evt09 as checkbox, "TOP_OF_PAGE
    p_evt10 as checkbox, "END_OF_PAGE
    p_evt11 as checkbox, "TOP_OF_LIST
    p_evt12 as checkbox. "END_OF_LIST
    selection-screen skip.
    parameters:
    p_evt13 as checkbox, "TOP_OF_COVERPAGE
    p_evt14 as checkbox. "END_OF_COVERPAGE
    selection-screen skip.
    parameters:
    p_evt15 as checkbox, "FOREIGN_TOP_OF_PAGE
    p_evt16 as checkbox. "FOREIGN_END_OF_PAGE
    selection-screen skip.
    parameters:
    p_evt17 as checkbox. "GROUPLEVEL_CHANGE
    selection-screen end of block evt.
    INITIALIZATION                                                       *
    initialization.
      perform f01_f4_field using 'SUM' space changing p_dosf01-low.
      p_dosf01-option = 'EQ'.
      p_dosf01-sign   = 'I'.
      append p_dosf01.
      perform f01_f4_field using 'SUM' space changing p_nosf01-low.
      p_nosf01-option = 'EQ'.
      p_nosf01-sign   = 'I'.
      append p_nosf01.
      perform f01_f4_field using 'KEY' space changing p_outf01-low.
      p_outf01-option = 'EQ'.
      p_outf01-sign   = 'I'.
      append p_outf01.
      perform f01_f4_field using space space changing p_tecf01-low.
      p_tecf01-option = 'EQ'.
      p_tecf01-sign   = 'I'.
      append p_tecf01.
      perform f01_f4_field using space space changing p_fixf01-low.
      p_fixf01-option = 'EQ'.
      p_fixf01-sign   = 'I'.
      append p_fixf01.
      perform f01_f4_field using 'CURR' space changing p_curf00-low.
      p_curf00-option = 'EQ'.
      p_curf00-sign   = 'I'.
      append p_curf00.
      perform f01_f4_field using 'CUKY' space changing p_curf01.
      perform f01_f4_field using space space changing p_hotf03-low.
      p_hotf03-option = 'EQ'.
      p_hotf03-sign   = 'I'.
      append p_hotf03.
      perform f01_f4_field using space space changing p_colf02-low.
      p_colf02-option = 'EQ'.
      p_colf02-sign   = 'I'.
      append p_colf02.
      perform f01_f4_field using space space changing p_colf03-low.
      p_colf03-option = 'EQ'.
      p_colf03-sign   = 'I'.
      append p_colf03.
    AT SELECTION-SCREEN                                                  *
    at selection-screen.
      case sscrfields-ucomm.
        when 'PB01'.
          call screen 1001 starting at 1 1 ending at 80 20.
        when 'PB02'.
          call screen 1002 starting at 1 1 ending at 80 20.
      endcase.
    AT SELECTION-SCREEN ON VALUE-REQUEST                                 *
    at selection-screen on value-request for p_dosf01-low.
      perform f01_f4_field using 'SUM' 'X' changing p_dosf01-low.
    at selection-screen on value-request for p_nosf01-low.
      perform f01_f4_field using 'SUM' 'X' changing p_nosf01-low.
    at selection-screen on value-request for p_outf01-low.
      perform f01_f4_field using 'KEY' 'X' changing p_outf01-low.
    at selection-screen on value-request for p_tecf01-low.
      perform f01_f4_field using space 'X' changing p_tecf01-low.
    at selection-screen on value-request for p_fixf01-low.
      perform f01_f4_field using space 'X' changing p_fixf01-low.
    at selection-screen on value-request for p_curf00-low.
      perform f01_f4_field using 'CURR' 'X' changing p_curf00-low.
    at selection-screen on value-request for p_curf01.
      perform f01_f4_field using 'CUKY' 'X' changing p_curf01.
    at selection-screen on value-request for p_hotf03-low.
      perform f01_f4_field using space 'X' changing p_hotf03-low.
    at selection-screen on value-request for p_colf02-low.
      perform f01_f4_field using space 'X' changing p_colf02-low.
    at selection-screen on value-request for p_colf03-low.
      perform f01_f4_field using space 'X' changing p_colf03-low.
    at selection-screen on value-request for p_lay06.
      perform f01_f4_fcode using space
                                 space
                        changing p_lay06.
    START-OF-SELECTION                                                   *
    start-of-selection.
      g_repid               = sy-repid.
      gs_test-select_amount = p_amount.
      gs_test-only_db_info  = p_dbinfo.
      gs_test-db_short      = p_dbshrt.
      gs_test-list_amount = p_list.
      gs_test-layo_title               = p_tit01.
      gs_test-layo_zebra               = p_lay01.
      gs_test-layo_no_horiz_lines      = p_lay02.
      gs_test-layo_no_vert_lines       = p_lay03.
      gs_test-layo_no_scrolling        = p_lay04.
      gs_test-layo_f2code              = p_lay06.
      gs_test-layo_confirmation_prompt = p_lay07.
      gs_test-layo_box                 = p_spa01.
      gs_test-layo_count               = p_spa02.
      gs_test-layo_no_colhead          = p_spa03.
      gs_test-layo_column_optimize     = p_spa04.
      gs_test-layo_no_hotspot          = p_hot01.
      if p_hot02 eq con_true.
        loop at p_hotf02.
          if not p_hotf02-low is initial.
            append p_hotf02-low to gs_test-layo_hotspot_rows.
          endif.
        endloop.
      endif.
      if p_hot03 eq con_true.
        loop at p_hotf03.
          if not p_hotf03-low is initial.
            append p_hotf03-low to gs_test-layo_hotspot_columns.
          endif.
        endloop.
      endif.
      case con_true.
        when p_mrg01.
          gs_test-layo_cell_merge          = space.
        when p_mrg02.
          gs_test-layo_cell_merge          = 'N'.
        when p_mrg03.
          gs_test-layo_cell_merge          = 'Y'.
      endcase.
      if p_out01 eq con_true.
        loop at p_outf01.
          if not p_outf01-low is initial.
            append p_outf01-low to gs_test-fcat_no_out_fields.
          endif.
        endloop.
      endif.
      if p_tec01 eq con_true.
        loop at p_tecf01.
          if not p_tecf01-low is initial.
            append p_tecf01-low to gs_test-fcat_tech_fields.
          endif.
        endloop.
      endif.
      if p_fix01 eq con_true.
        loop at p_fixf01.
          if not p_fixf01-low is initial.
            append p_fixf01-low to gs_test-fcat_fix_column_fields.
          endif.
        endloop.
      endif.
      gs_test-curr_amount = p_curanz.
      gs_test-curr_space  = p_curspc.
      if p_cur01 eq con_true or p_cur02 eq con_true.
        data: ls_fcat_curr type g_ty_s_fcat_curr.
        loop at p_curf00.
          clear ls_fcat_curr.
          if not p_curf00-low is initial.
            ls_fcat_curr-fieldname = p_curf00-low.
            case con_true.
              when p_cur01.
                ls_fcat_curr-cfieldname = p_curf01.
              when p_cur02.
                ls_fcat_curr-currency   = p_curf02.
            endcase.
            append ls_fcat_curr to gs_test-fcat_curr_fields.
          endif.
        endloop.
      endif.
      gs_test-layo_keys_hotspot        = p_key01.
      gs_test-layo_no_keyfix           = p_key02.
      gs_test-excp_display             = p_excp01.
      gs_test-excp_condense            = p_excp_c.
      gs_test-sum_before               = p_sum01.
      gs_test-sum_numc                 = p_sum02.
      gs_test-sum_no_unitsplit         = p_sum03.
      gs_test-sum_totals_only          = p_sum04.
      gs_test-sum_no_sumchoice         = p_sum05.
      gs_test-sum_no_sumline           = p_sum06.
      gs_test-sum_totals_text          = p_sum07.
      gs_test-sum_no_subchoice         = p_sum08.
      gs_test-sum_no_subtotals         = p_sum09.
      gs_test-sum_subtotals_text       = p_sum10.
      if p_dos01 eq con_true.
        loop at p_dosf01.
          if not p_dosf01-low is initial.
            append p_dosf01-low to gs_test-fcat_do_sum_fields.
          endif.
        endloop.
      endif.
      if p_nos01 eq con_true.
        loop at p_nosf01.
          if not p_nosf01-low is initial.
            append p_nosf01-low to gs_test-fcat_no_sum_fields.
          endif.
        endloop.
      endif.
      gs_test-layo_group_change_edit   = p_lpr01.
      gs_test-layo_get_selinfo         = p_lpr02.
      gs_test-layo_no_min_linesize     = p_lpr03.
      gs_test-layo_min_linesize        = p_lpr04.
      gs_test-layo_max_linesize        = p_lpr05.
      gs_test-prnt_print                  = p_prn01.
      gs_test-prnt_reserve_lines          = p_prn02.
      gs_test-prnt_no_listinfo            = p_prn03.
      gs_test-prnt_no_selinfo             = p_prn04.
      gs_test-prnt_with_title             = p_prn05.
      gs_test-prnt_footline               = p_prn06.
      gs_test-prnt_printinfo              = p_prn07.
      gs_test-prnt_no_coverpage           = p_prn08.
      gs_test-prnt_no_new_page            = p_prn09.
      gs_test-prnt_no_change_print_params = p_prn10.
      if p_col01 eq con_true.
        loop at p_colf01.
          if not p_colf01-low is initial.
            append p_colf01-low to gs_test-color_rows.
          endif.
        endloop.
      endif.
      if p_col02 eq con_true.
        loop at p_colf02.
          if not p_colf02-low is initial.
            append p_colf02-low to gs_test-color_fields_column.
          endif.
        endloop.
      endif.
      if p_col03 eq con_true.
        loop at p_colf03.
          if not p_colf03-low is initial.
            append p_colf03-low to gs_test-color_fields_cell.
          endif.
        endloop.
      endif.
      if p_evt01 eq con_true.
        append con_event_01 to gs_test-events.
      endif.
      if p_evt02 eq con_true.
        append con_event_02 to gs_test-events.
      endif.
      if p_evt03 eq con_true.
        append con_event_03 to gs_test-events.
      endif.
      if p_evt04 eq con_true.
        append con_event_04 to gs_test-events.
      endif.
      if p_evt05 eq con_true.
        append con_event_05 to gs_test-events.
      endif.
      if p_evt06 eq con_true.
        append con_event_06 to gs_test-events.
      endif.
      if p_evt07 eq con_true.
        append con_event_07 to gs_test-events.
      endif.
      if p_evt08 eq con_true.
        append con_event_08 to gs_test-events.
      endif.
      if p_evt09 eq con_true.
        append con_event_09 to gs_test-events.
      endif.
      if p_evt10 eq con_true.
        append con_event_10 to gs_test-events.
      endif.
      if p_evt11 eq con_true.
        append con_event_11 to gs_test-events.
      endif.
      if p_evt12 eq con_true.
        append con_event_12 to gs_test-events.
      endif.
      if p_evt13 eq con_true.
        append con_event_13 to gs_test-events.
      endif.
      if p_evt14 eq con_true.
        append con_event_14 to gs_test-events.
      endif.
      if p_evt15 eq con_true.
        append con_event_15 to gs_test-events.
      endif.
      if p_evt16 eq con_true.
        append con_event_16 to gs_test-events.
      endif.
      if p_evt17 eq con_true.
        append con_event_17 to gs_test-events.
      endif.
      gs_test-buffer_active            = space.
      gs_test-bypassing_buffer         = space.
    END-OF-SELECTION                                                     *
    end-of-selection.
      perform f01_call_list.
    *&      Form  f01_call_list
          text
    form f01_call_list .
      data: ls_prnt   type slis_print_alv,
            lt_excl   type slis_t_extab,
            l_exit    type char1,
            ls_exit   type slis_exit_by_user,
            l_list    type num1.
      call function 'REUSE_ALV_BLOCK_LIST_INIT'
        exporting
          i_callback_program       = g_repid
          i_callback_pf_status_set = ' '
          i_callback_user_command  = ' '
          it_excluding             = lt_excl.
      do gs_test-list_amount times.
        add 1 to l_list.
        perform f01_append_list using l_list.
      enddo.
      perform f01_set_prnt changing ls_prnt.
      call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'
        exporting
          i_interface_check       = ' '
          is_print                = ls_prnt
          i_screen_start_column   = 0
          i_screen_start_line     = 0
          i_screen_end_column     = 0
          i_screen_end_line       = 0
        importing
          e_exit_caused_by_caller = l_exit
          es_exit_caused_by_user  = ls_exit
        exceptions
          program_error           = 1
          others                  = 2.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " f01_call_list
    *&      Form  f01_append_list
          text
    form f01_append_list using value(i_list) type num1.
      data: ls_layo   type slis_layout_alv,
            lt_fcat   type slis_t_fieldcat_alv,
            lt_sort   type slis_t_sortinfo_alv,
            lt_evts   type slis_t_event,
            l_tabname type slis_tabname.
      field-symbols: <l_table> type any.
      perform f01_get_outtab using i_list.
      case i_list.
        when 1.
          gt_outtab1 = gt_outtab[].
        when 2.
          gt_outtab2 = gt_outtab[].
        when 3.
          gt_outtab3 = gt_outtab[].
        when 4.
          gt_outtab4 = gt_outtab[].
        when 5.
          gt_outtab5 = gt_outtab[].
        when 6.
          gt_outtab6 = gt_outtab[].
        when 7.
          gt_outtab7 = gt_outtab[].
        when 8.
          gt_outtab8 = gt_outtab[].
        when 9.
          gt_outtab9 = gt_outtab[].
      endcase.
      perform f01_set_layo changing ls_layo.
      perform f01_set_fcat changing lt_fcat.
      perform f01_set_evts changing lt_evts.
      concatenate 'LIST_' i_list into l_tabname.
      case i_list.
        when 1.
          call function 'REUSE_ALV_BLOCK_LIST_APPEND'
            exporting
              is_layout                  = ls_layo
              it_fieldcat                = lt_fcat
              i_tabname                  = l_tabname
              it_events                  = lt_evts
              it_sort                    = lt_sort
              i_text                     = 'Hello'              "#EC NOTEXT
            tables
              t_outtab                   = gt_outtab1
            exceptions
              program_error              = 1
              maximum_of_appends_reached = 2
              others                     = 3.
          if sy-subrc <> 0.
            message id sy-msgid type sy-msgty number sy-msgno
                    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          endif.
        when 2.
          call function 'REUSE_ALV_BLOCK_LIST_APPEND'
            exporting
              is_layout                  = ls_layo
              it_fieldcat                = lt_fcat
              i_tabname                  = l_tabname
              it_events                  = lt_evts
              it_sort                    = lt_sort
              i_text                     = 'Hello'              "#EC NOTEXT
            tables
              t_outtab                   = gt_outtab2
            exceptions
              program_error              = 1
              maximum_of_appends_reached = 2
              others                     = 3.
          if sy-subrc <> 0.
            message id sy-msgid type sy-msgty number sy-msgno
                    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          endif.
        when 3.
          call function 'REUSE_ALV_BLOCK_LIST_APPEND'
            exporting
              is_layout                  = ls_layo
              it_fieldcat                = lt_fcat
              i_tabname                  = l_tabname
              it_events                  = lt_evts
              it_sort                    = lt_sort
              i_text                     = 'Hello'              "#EC NOTEXT
            tables
              t_outtab                   = gt_outtab3
            exceptions
              program_error              = 1
              maximum_of_appends_reached = 2
              others                     = 3.
          if sy-subrc <> 0.
            message id sy-msgid type sy-msgty number sy-msgno
                    with sy-ms

  • File association problem with excel

    hi everybody,
    i have the following annoying little problem, couldn't find any answers so far in the forum:
    i have some downloaded files (just plain text files) that i call ".in", and finder lists those as "microsoft excel binary document". now i want to associate those files to open with textwrangler as standard app. if i get information for those files and set "open with" to textwrangler, as soon as i click "change all" it reverts the application in the "open with" box to "microsoft excel", meaning i can never change the filetype permanently.
    anybody know what i might be doing wrong, or what i can do to make the change stick?
    thanks

    Hi Gopal,
    There is a a column width optimize function of SLIS ALV layout.
    colwidth_optimize(1) type c
    but, i am not sure if it works.
    Also, when the report is generated, there is an option in the menu.
    Go to "Setting --> Columns --> Optimize Width"
    With this, it optimizes the column width based on data width but when you download, it reverts to the dictionary field length.
    Regards,
    Vivek

  • Problem in ALV!!!! Please help

    The Following program terminates with short dump when i try to execute.
    Please tell me whats the problem.
    <<program removed>>
    Moderator Message: Did you happen to read the Short Dump error message?
    Edited by: kishan P on May 20, 2011 11:59 AM

    Hi Gopal,
    There is a a column width optimize function of SLIS ALV layout.
    colwidth_optimize(1) type c
    but, i am not sure if it works.
    Also, when the report is generated, there is an option in the menu.
    Go to "Setting --> Columns --> Optimize Width"
    With this, it optimizes the column width based on data width but when you download, it reverts to the dictionary field length.
    Regards,
    Vivek

  • Help required with cl_gui_pdfviewer

    hi,
    i have a strange issue...i have a URL which is a pdf basically. i need to get the contents of that pdf and store it on my application server for further purposes. it's just a URL over the internet or intranet.
    i can use the CL_GUI_PDFVIEWER to view the pdf file in a container or use the CL_GUI_HTMLVIEWER to view it online.. .i have seen that from the forums on hwo to do that... but i need to not view it online, but to only store the contents on my application server and email the pdf to an external email. i have a program which runs in the background and I actually don't want to view a pdf while i am in the program. can we extract the contents of the pdf using the CL_GUI_PDFVIEWER anyway?
    i tried to call the pdfview-> open_document and then subsequently pdfviewer->save_document to try to save the document onto an application server directory in the background, but that doesn't work.....so looking for ideas!
    Moderator Message: Duplicate Post. Thread Locked.
    Edited by: kishan P on Oct 18, 2010 12:56 PM
    Any ideas bright ideas

    in fieldcatalog
    fieldname
    tabname
    CFIELDNAME  "Currency key
    QFIELDNAME  "Qty unit
    ICON     "for icon
    SYMBOL "for symbols
    CHECKBOX "for check box
    JUST  "for justification Right, Left , center
    LZERO "Leading zero's
    EMPHASIZE "for coloring entrie column
    DO_SUM "Summing the column only for summable
    COL_TEXT " FOR COLUMN TEXT
    HOT_SPOT "hot spot
    REF_FIELD "ref field
    REF_TABLE "ref table
    EDIT "for editable
    NO_OUT for Hiding the column
    TECH "remove from display completely
    OUTPUTLEN " output length..
    For Layout
    ZEBRA " FOR ALTERNATE COLOR
    CWIDTH_OPT " for column optimize
    GRID_TITLE "Grid title
    SEL_MODE "selection mode
    BOX_FNAME "Box fieldname
    INFO_FNAME "for rowcoloring
    CTAB_FNAME '' cell coloring

  • Which is fast / Smooth performing?

    I have 10 circles on the stage, animated on the time line, simple animation like scale, rotation and size changes.
    Which will give me best performance in terms of browser load and smoothness of animation?
    Ellipse or Svg file
    What if it is 100 objects, or even 1000 objects?

    Which is fast ? Select * from tableName or Select Column1,Column2 .... From tableName ? and Why ?
    select * from Sales.[SalesOrderHeader]
    select SalesOrderNumber,RevisionNumber,rowguid from Sales.[SalesOrderHeader]
    As you can see both the query execution plan and subtree cost is same. So how selecting the particular columns optimize the query ?
    Yes, selecting specific columns is always better than select *.
    If you always need few columns in result, then just use SELECT col1, col2 FROM YourTable. If you SELECT * FROM YourTable; that is extra useless overhead.
    If in future if someone adds Image/BLOB/Text type columns in your table, using SELECT * will worsen the performace for sure.
    Let's say if you have SP and you use INSERT INTO DestTable SELECT * FROM TABLE which runs fine BUT again if someone adds few more columns then your SP will fail saying provided columns don't match.
    -Vaibhav Chaudhari

  • Which is fast ? Select * from tableName or Select Column1,Column2 .... From tableName ? and Why ?

    Which is fast ? Select * from tableName or Select Column1,Column2 .... From tableName ? and Why ?
    select * from Sales.[SalesOrderHeader]
    select SalesOrderNumber,RevisionNumber,rowguid from Sales.[SalesOrderHeader]
    As you can see both the query execution plan and subtree cost is same. So how selecting the particular columns optimize the query ?

    Which is fast ? Select * from tableName or Select Column1,Column2 .... From tableName ? and Why ?
    select * from Sales.[SalesOrderHeader]
    select SalesOrderNumber,RevisionNumber,rowguid from Sales.[SalesOrderHeader]
    As you can see both the query execution plan and subtree cost is same. So how selecting the particular columns optimize the query ?
    Yes, selecting specific columns is always better than select *.
    If you always need few columns in result, then just use SELECT col1, col2 FROM YourTable. If you SELECT * FROM YourTable; that is extra useless overhead.
    If in future if someone adds Image/BLOB/Text type columns in your table, using SELECT * will worsen the performace for sure.
    Let's say if you have SP and you use INSERT INTO DestTable SELECT * FROM TABLE which runs fine BUT again if someone adds few more columns then your SP will fail saying provided columns don't match.
    -Vaibhav Chaudhari

  • Query: Layout Width

    Hello,
    Could I increase the width of my query more then 133 chars?
    If I set it to 162, the system reset it back to 133.
    Any Idea?
    Regards,
    Tommaso

    If a list is already displayed with optimized column width in the standard system, you can alter the column width according to your requirements using Change layout. To revert to the optimized column width, choose Settings ---> Columns -->Optimize Width.
    http://help.sap.com/saphelp_nw04s/helpdata/en/66/bc7b6143c211d182b30000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/f1/0a5529e09411d2acb90000e829fbfe/content.htm

  • Help me with CL_GUI_ALV_GRID

    Hi
    There are so many fields in LVC_S_FCAT and LVC_S_LAYO.
    Anyone can tell me which fields are important and used most frequently.
    Edited by: Alex Zhang on Aug 20, 2008 5:32 AM

    in fieldcatalog
    fieldname
    tabname
    CFIELDNAME  "Currency key
    QFIELDNAME  "Qty unit
    ICON     "for icon
    SYMBOL "for symbols
    CHECKBOX "for check box
    JUST  "for justification Right, Left , center
    LZERO "Leading zero's
    EMPHASIZE "for coloring entrie column
    DO_SUM "Summing the column only for summable
    COL_TEXT " FOR COLUMN TEXT
    HOT_SPOT "hot spot
    REF_FIELD "ref field
    REF_TABLE "ref table
    EDIT "for editable
    NO_OUT for Hiding the column
    TECH "remove from display completely
    OUTPUTLEN " output length..
    For Layout
    ZEBRA " FOR ALTERNATE COLOR
    CWIDTH_OPT " for column optimize
    GRID_TITLE "Grid title
    SEL_MODE "selection mode
    BOX_FNAME "Box fieldname
    INFO_FNAME "for rowcoloring
    CTAB_FNAME '' cell coloring

  • Questions relating to Processing  ACORD TXLIFE XML content

    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">LastName</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">GovtID</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">GovtIDTc</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">ResidenceState</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">ActivityTypeCode</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">ActivityDescription</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">UserCode</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">ActivityTypeCode</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">ActivityStatus</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">ActivityTypeCode</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">Closed</PropertyName>
    <PropertyName xmlns="http://ACORD.org/Standards/Life/2">Closed</PropertyName>
    i want to extract these values
    LastName
    GovtID
    GovtIDTc
    ResidenceState like this i am using the query here can any body help me on this
    For I In (SELECT extract(value(t),'//CriteriaExpression/Criteria/PropertyName','xmlns="http://ACORD.org/Standards/Life/2"').getstringval() pname
    FROM TABLE (XMLSEQUENCE (EXTRACT(xml_data_val,'/TXLife/TXLifeRequest/CriteriaExpression','xmlns="http://ACORD.org/Standards/Life/2"'))) t
    LOOP
    DBMS_OUTput.PUT_LINE(i.pname);
    END LOOP;
    Edited by: mdrake on Nov 26, 2010 7:22 PM

    This also works well with Object Relatiional storage...
    C:\xdb\schemas\ACORD\TxLife>sqlplus /nolog @..\..\doRegistration\registerSchemas %CD% FALSE
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Nov 26 15:59:45 2010
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    SQL> spool registerSchemas.log
    SQL> --
    SQL> set define on
    SQL> set timing on
    SQL> set trimspool on
    SQL> --
    SQL> connect / as sysdba
    Connected.
    SQL> --
    SQL> def TARGET_DIRECTORY = &1
    SQL> --
    SQL> def BINARY_XML = &2
    SQL> --
    SQL> @&TARGET_DIRECTORY/setVariables
    SQL> --
    SQL> def USERNAME = TXLIFE
    SQL> --
    SQL> def PASSWORD = &USERNAME
    SQL> --
    SQL> def USER_TABLESPACE = USERS
    SQL> --
    SQL> def TEMP_TABLESPACE = TEMP
    SQL> --
    SQL> def XMLDIR = &TARGET_DIRECTORY
    SQL> --
    SQL> def SCHEMA_ARCHIVE_FILE = TxLife.zip
    SQL> --
    SQL> def MASTER_SCHEMA_PATH = ''
    SQL> --
    SQL> def SCHEMA_FOLDER = ''
    SQL> --
    SQL> def LOCATION_PREFIX = http://xmlns.ACORD.org/schemas/Life/2
    SQL> --
    SQL> def TARGET_NAMESPACE = http://ACORD.org/Standards/Life/2
    SQL> --
    SQL> --
    SQL> @@setTargetFolder
    SQL> VAR BINARY_XML           NUMBER;
    SQL> VAR SCHEMA_LOCATION_HINT VARCHAR2(700);
    SQL> VAR MASTER_SCHEMA_PATH      VARCHAR2(700);
    SQL> VAR SCHEMA_FOLDER        VARCHAR2(700);
    SQL> VAR LOCATION_PREFIX         VARCHAR2(700);
    SQL> VAR TARGET_NAMESPACE        VARCHAR2(700);
    SQL> VAR TARGET_FOLDER        VARCHAR2(700);
    SQL> VAR SCHEMA_NAME          VARCHAR2(700);
    SQL> --
    SQL> begin
      2          if ('&BINARY_XML' is null) or (UPPER('&2') = 'FALSE') then
      3            :BINARY_XML := NULL;
      4          else
      5            :BINARY_XML := DBMS_XMLSCHEMA.REGISTER_BINARYXML;
      6          end if;
      7    :SCHEMA_LOCATION_HINT := NULL;
      8          :MASTER_SCHEMA_PATH   := '&MASTER_SCHEMA_PATH';
      9          :SCHEMA_FOLDER        := '&SCHEMA_FOLDER';
    10          :LOCATION_PREFIX      := '&LOCATION_PREFIX';
    11          :TARGET_NAMESPACE     := '&TARGET_NAMESPACE';
    12  end;
    13  /
    old   2:        if ('&BINARY_XML' is null) or (UPPER('&2') = 'FALSE') then
    new   2:        if ('FALSE' is null) or (UPPER('FALSE') = 'FALSE') then
    old   8:        :MASTER_SCHEMA_PATH   := '&MASTER_SCHEMA_PATH';
    new   8:        :MASTER_SCHEMA_PATH   := '';
    old   9:        :SCHEMA_FOLDER        := '&SCHEMA_FOLDER';
    new   9:        :SCHEMA_FOLDER        := '';
    old  10:        :LOCATION_PREFIX      := '&LOCATION_PREFIX';
    new  10:        :LOCATION_PREFIX      := 'http://xmlns.ACORD.org/schemas/Life/2';
    old  11:        :TARGET_NAMESPACE     := '&TARGET_NAMESPACE';
    new  11:        :TARGET_NAMESPACE     := 'http://ACORD.org/Standards/Life/2';
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.03
    SQL> declare
      2    V_ARCHIVE_FILE_NAME  VARCHAR2(700) := '&SCHEMA_ARCHIVE_FILE';
      3  begin
      4
      5    -- Derive Schema Output Folder, Schema Folder and Output File Name from Archive Name.
      6
      7    if (INSTR(V_ARCHIVE_FILE_NAME,'/') > 0) then
      8            V_ARCHIVE_FILE_NAME := substr(V_ARCHIVE_FILE_NAME,instr(V_ARCHIVE_FILE_NAME,'/',-1)+1);
      9    end if;
    10    V_ARCHIVE_FILE_NAME := substr(V_ARCHIVE_FILE_NAME,1,instr(V_ARCHIVE_FILE_NAME,'.',-1)-1);
    11
    12    :TARGET_FOLDER := '/public/&USERNAME/' || V_ARCHIVE_FILE_NAME;
    13
    14    if (:SCHEMA_FOLDER is null) then
    15      :SCHEMA_FOLDER := :TARGET_FOLDER;
    16    else
    17      :SCHEMA_FOLDER := :TARGET_FOLDER || '/' || :SCHEMA_FOLDER;
    18    end if;
    19
    20    :SCHEMA_NAME := substr(:SCHEMA_FOLDER,instr(:SCHEMA_FOLDER,'/',-1)+1);
    21
    22    -- Correct Output File Name if a exact path is supplied for the master XML Schema.
    23
    24          if (:MASTER_SCHEMA_PATH is not null) then
    25
    26            :SCHEMA_LOCATION_HINT := :LOCATION_PREFIX || '/' || :MASTER_SCHEMA_PATH;
    27      :MASTER_SCHEMA_PATH   := :TARGET_FOLDER   || '/' || :MASTER_SCHEMA_PATH;
    28
    29            if (instr(:MASTER_SCHEMA_PATH,'/') > 0) then
    30              :SCHEMA_NAME := substr(:MASTER_SCHEMA_PATH,instr(:MASTER_SCHEMA_PATH,'/',-1)+1);
    31            end if;
    32
    33      :SCHEMA_NAME := substr(:SCHEMA_NAME,1,instr(:SCHEMA_NAME,'.',-1)-1);
    34
    35      select *
    36        into :TARGET_NAMESPACE
    37        from XMLTABLE
    38             (
    39               'let $schema := fn:doc($PATH)
    40                return <TARGET_NAMESPACE>{fn:data($schema/@targetNamespace)}</TARGET_NAMESPACE>'
    41                passing :MASTER_SCHEMA_PATH as "PATH"
    42                columns
    43                TARGET_NAMEPACE VARCHAR2(700)
    44             );
    45    end if;
    46
    47  end;
    48  /
    old   2:   V_ARCHIVE_FILE_NAME  VARCHAR2(700) := '&SCHEMA_ARCHIVE_FILE';
    new   2:   V_ARCHIVE_FILE_NAME  VARCHAR2(700) := 'TxLife.zip';
    old  12:   :TARGET_FOLDER := '/public/&USERNAME/' || V_ARCHIVE_FILE_NAME;
    new  12:   :TARGET_FOLDER := '/public/TXLIFE/' || V_ARCHIVE_FILE_NAME;
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    SQL> --
    SQL> print :TARGET_FOLDER
    TARGET_FOLDER
    /public/TXLIFE/TxLife
    SQL> print :SCHEMA_FOLDER
    SCHEMA_FOLDER
    /public/TXLIFE/TxLife
    SQL> --
    SQL> print :TARGET_NAMESPACE
    TARGET_NAMESPACE
    http://ACORD.org/Standards/Life/2
    SQL> --
    SQL> @@createUser
    SQL> --
    SQL> drop user &USERNAME cascade
      2  /
    old   1: drop user &USERNAME cascade
    new   1: drop user TXLIFE cascade
    User dropped.
    Elapsed: 00:01:13.27
    SQL> begin
      2          if (DBMS_XDB.existsResource(:TARGET_FOLDER)) then
      3            DBMS_XDB.deleteResource(:TARGET_FOLDER,DBMS_XDB.DELETE_RECURSIVE);
      4          end if;
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.04
    SQL> commit
      2  /
    Commit complete.
    Elapsed: 00:00:00.04
    SQL> column ANY_PATH FORMAT A256
    SQL> column OUTPUT FORMAT A256
    SQL> set lines 256 pages 0 long 1000000
    SQL> --
    SQL> select ANY_PATH
      2    from RESOURCE_VIEW
      3   where under_path(RES,:TARGET_FOLDER) = 1
      4  /
    no rows selected
    Elapsed: 00:00:00.00
    SQL> grant create any directory, drop any directory, connect, resource, alter session, create view to &USERNAME identified by &PASSWORD
      2  /
    old   1: grant create any directory, drop any directory, connect, resource, alter session, create view to &USERNAME identified by &PASSWORD
    new   1: grant create any directory, drop any directory, connect, resource, alter session, create view to TXLIFE identified by TXLIFE
    Grant succeeded.
    Elapsed: 00:00:00.04
    SQL> alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
      2  /
    old   1: alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
    new   1: alter user TXLIFE default tablespace USERS temporary tablespace TEMP
    User altered.
    Elapsed: 00:00:00.03
    SQL> --
    SQL> connect &USERNAME/&PASSWORD
    Connected.
    SQL> --
    SQL> @@unzipArchive
    SQL> create or replace directory &USERNAME as '&XMLDIR'
      2  /
    old   1: create or replace directory &USERNAME as '&XMLDIR'
    new   1: create or replace directory TXLIFE as 'C:\xdb\schemas\ACORD\TxLife'
    Directory created.
    Elapsed: 00:00:00.10
    SQL> declare
      2    V_RESULT BOOLEAN;
      3    V_PATH   VARCHAR2(700) := :TARGET_FOLDER || '/schemas.zip';
      4  begin
      5          XDB_UTILITIES.mkdir(:TARGET_FOLDER,TRUE);
      6          V_RESULT := DBMS_XDB.createResource(V_PATH,bfilename('&USERNAME','&SCHEMA_ARCHIVE_FILE'));
      7          commit;
      8  end;
      9  /
    old   6:        V_RESULT := DBMS_XDB.createResource(V_PATH,bfilename('&USERNAME','&SCHEMA_ARCHIVE_FILE'));
    new   6:        V_RESULT := DBMS_XDB.createResource(V_PATH,bfilename('TXLIFE','TxLife.zip'));
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.13
    SQL> select ANY_PATH
      2    from RESOURCE_VIEW
      3   where under_path(RES,:TARGET_FOLDER) = 1
      4  /
    /public/TXLIFE/TxLife/schemas.zip
    Elapsed: 00:00:00.00
    SQL> call XDB_IMPORT_UTILITIES.UNZIP(:TARGET_FOLDER || '/schemas.zip',:TARGET_FOLDER,:TARGET_FOLDER || '/unzip.log',XDB_CONSTANTS.RAISE_ERROR)
      2  /
    Call completed.
    Elapsed: 00:00:00.29
    SQL> select ANY_PATH
      2    from RESOURCE_VIEW
      3   where under_path(RES,:TARGET_FOLDER) = 1
      4     and XMLExists
      5         (
      6            'declare default element namespace "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :)
      7             $RES/Resource[ends-with(DisplayName,".xsd")]'
      8             passing RES as "RES"
      9         )
    10  /
    /public/TXLIFE/TxLife/TxLife/TXLife2.18.02.xsd
    /public/TXLIFE/TxLife/TxLife/XMLife2.18.02.xsd
    /public/TXLIFE/TxLife/TxLife/XTbML2.18.02.xsd
    /public/TXLIFE/TxLife/TxLife/XlifeBase2.18.02.xsd
    Elapsed: 00:00:00.20
    SQL> --
    SQL> @@setTypeMappings
    SQL> --
    SQL> VAR SQLTYPE_MAPPINGS        CLOB;
    SQL> --
    SQL> begin
      2          :SQLTYPE_MAPPINGS     :=
      3  '<xdbpm:SQLTypeMappings xmlns:xdbpm="http://xmlns.oracle.com/xdb/xdbpm">
      4    <xdbpm:SQLTypeMapping>
      5           <xdbpm:xsdType>dateTime</xdbpm:xsdType>
      6           <xdbpm:SQLType>TIMESTAMP WITH TIME ZONE</xdbpm:SQLType>
      7    </xdbpm:SQLTypeMapping>
      8  </xdbpm:SQLTypeMappings>';
      9  end;
    10  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01
    SQL> --
    SQL> begin
      2          :SQLTYPE_MAPPINGS     := XMLType(bfilename('&USERNAME','typeMapping.xml'),nls_charset_id('AL32UTF8')).getClobVal();
      3  end;
      4  /
    old   2:        :SQLTYPE_MAPPINGS     := XMLType(bfilename('&USERNAME','typeMapping.xml'),nls_charset_id('AL32UTF8')).getClobVal();
    new   2:        :SQLTYPE_MAPPINGS     := XMLType(bfilename('TXLIFE','typeMapping.xml'),nls_charset_id('AL32UTF8')).getClobVal();
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.03
    SQL> --
    SQL> select xmlType(:SQLTYPE_MAPPINGS)
      2    from dual
      3  /
    <xdbpm:SQLTypeMappings xmlns:xdbpm="http://xmlns.oracle.com/xdb/xdbpm">
    </xdbpm:SQLTypeMappings>
    Elapsed: 00:00:00.01
    SQL> begin
      2          if (:BINARY_XML is NULL) or (:BINARY_XML <> DBMS_XMLSCHEMA.REGISTER_BINARYXML) then
      3      XDB_EDIT_XMLSCHEMA.setSQLTypeMappings(XMLType(:SQLTYPE_MAPPINGS));
      4    end if;
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01
    SQL> --
    SQL> --
    SQL> @&TARGET_DIRECTORY/doSchemaRegistration
    SQL> --
    SQL> -- Schema Registration Script for XML Schemas in "/public/TXLIFE/TxLife" --
    SQL> --
    SQL> --
    SQL> begin
      2    XDB_EDIT_XMLSCHEMA.getGroupDefinitions('/public/TXLIFE/TxLife');
      3  end;
      4  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.45
    SQL> declare
      2    GENERIC_ERROR exception;
      3    PRAGMA EXCEPTION_INIT( GENERIC_ERROR , -31061 );
      4
      5    NO_MATCHING_NODES exception;
      6    PRAGMA EXCEPTION_INIT( NO_MATCHING_NODES , -64405 );
      7
      8    V_XML_SCHEMA XMLType       := xdburitype('/public/TXLIFE/TxLife/TxLife/XlifeBase2.18.02.xsd').getXML();
      9    V_SCHEMA_LOCATION_HINT VARCHAR2(700) := 'http://xmlns.ACORD.org/schemas/Life/2/TxLife/XlifeBase2.18.02.xsd';
    10  begin
    11    XDB_EDIT_XMLSCHEMA.expandGroups(V_XML_SCHEMA);
    12    XDB_EDIT_XMLSCHEMA.applySQLTypeMappings(V_XML_SCHEMA);
    13    begin
    14      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
    15    exception
    16      when GENERIC_ERROR or NO_MATCHING_NODES then
    17        NULL;
    18      when OTHERS then
    19        RAISE;
    20    end;
    21
    22    begin
    23      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
    24    exception
    25      when GENERIC_ERROR or NO_MATCHING_NODES then
    26        NULL;
    27      when OTHERS then
    28        RAISE;
    29    end;
    30
    31    XDB_EDIT_XMLSCHEMA.fixRelativeURLs(V_XML_SCHEMA,V_SCHEMA_LOCATION_HINT);
    32
    33    -- SQLType names for global complex types :-
    34
    59
    60    -- SQLType names for global elements based on local complex types :-
    61
    62    DBMS_XMLSCHEMA_ANNOTATE.setSQLType(V_XML_SCHEMA,'KeyValue',                                                   'KeyValue17787_T');
    63    DBMS_XMLSCHEMA_ANNOTATE.setSQLType(V_XML_SCHEMA,'OLifEExtension',                                             'OLifEExtension17782_T');
    64    DBMS_XMLSCHEMA_ANNOTATE.setSQLType(V_XML_SCHEMA,'PropertyValue',                                              'PropertyValue17792_T');
    65
    66    DBMS_XMLSCHEMA.registerSchema
    67    (
    68      SCHEMAURL => V_SCHEMA_LOCATION_HINT
    69     ,SCHEMADOC => V_XML_SCHEMA
    70     ,LOCAL      => TRUE
    71     ,GENTYPES     => TRUE
    72     ,GENTABLES     => TRUE
    73     ,ENABLEHIERARCHY =>  DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    74    );
    75  end;
    76  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:02.26
    SQL> declare
      2    GENERIC_ERROR exception;
      3    PRAGMA EXCEPTION_INIT( GENERIC_ERROR , -31061 );
      4
      5    NO_MATCHING_NODES exception;
      6    PRAGMA EXCEPTION_INIT( NO_MATCHING_NODES , -64405 );
      7
      8    V_XML_SCHEMA XMLType       := xdburitype('/public/TXLIFE/TxLife/TxLife/XTbML2.18.02.xsd').getXML();
      9    V_SCHEMA_LOCATION_HINT VARCHAR2(700) := 'http://xmlns.ACORD.org/schemas/Life/2/TxLife/XTbML2.18.02.xsd';
    10  begin
    11    XDB_EDIT_XMLSCHEMA.expandGroups(V_XML_SCHEMA);
    12    XDB_EDIT_XMLSCHEMA.applySQLTypeMappings(V_XML_SCHEMA);
    13    begin
    14      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
    15    exception
    16      when GENERIC_ERROR or NO_MATCHING_NODES then
    17        NULL;
    18      when OTHERS then
    19        RAISE;
    20    end;
    21
    22    begin
    23      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
    24    exception
    25      when GENERIC_ERROR or NO_MATCHING_NODES then
    26        NULL;
    27      when OTHERS then
    28        RAISE;
    29    end;
    30
    31    XDB_EDIT_XMLSCHEMA.fixRelativeURLs(V_XML_SCHEMA,V_SCHEMA_LOCATION_HINT);
    32
    33    -- SQLType names for global complex types :-
    34
    53
    54        -- SQLType names for global elements based on local complex types :-
    55
    56    DBMS_XMLSCHEMA_ANNOTATE.setSQLType(V_XML_SCHEMA,'Y',                                                          'Y17823_T');
    57
    58    DBMS_XMLSCHEMA.registerSchema
    59    (
    60      SCHEMAURL => V_SCHEMA_LOCATION_HINT
    61     ,SCHEMADOC => V_XML_SCHEMA
    62     ,LOCAL      => TRUE
    63     ,GENTYPES     => TRUE
    64     ,GENTABLES     => TRUE
    65     ,ENABLEHIERARCHY =>  DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    66    );
    67  end;
    68  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:03.24
    SQL> declare
      2    GENERIC_ERROR exception;
      3    PRAGMA EXCEPTION_INIT( GENERIC_ERROR , -31061 );
      4
      5    NO_MATCHING_NODES exception;
      6    PRAGMA EXCEPTION_INIT( NO_MATCHING_NODES , -64405 );
      7
      8    V_XML_SCHEMA XMLType       := xdburitype('/public/TXLIFE/TxLife/TxLife/XMLife2.18.02.xsd').getXML();
      9    V_SCHEMA_LOCATION_HINT VARCHAR2(700) := 'http://xmlns.ACORD.org/schemas/Life/2/TxLife/XMLife2.18.02.xsd';
    10  begin
    11    XDB_EDIT_XMLSCHEMA.expandGroups(V_XML_SCHEMA);
    12    XDB_EDIT_XMLSCHEMA.applySQLTypeMappings(V_XML_SCHEMA);
    13    begin
    14      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
    15    exception
    16      when GENERIC_ERROR or NO_MATCHING_NODES then
    17        NULL;
    18      when OTHERS then
    19        RAISE;
    20    end;
    21
    22    begin
    23      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
    24    exception
    25      when GENERIC_ERROR or NO_MATCHING_NODES then
    26        NULL;
    27      when OTHERS then
    28        RAISE;
    29    end;
    30
    31    XDB_EDIT_XMLSCHEMA.fixRelativeURLs(V_XML_SCHEMA,V_SCHEMA_LOCATION_HINT);
    32
    33    -- SQLType names for global complex types :-
    34
    838
    839        -- Out-of-Line mappings for 1000 Column optimization :-
    840
    841    DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'Policy_Type',                                                          'Life',                                         'LIFE_TABLE');
    842    DBMS_XMLSCHEMA_ANNOTATE.setOutOfLine(V_XML_SCHEMA,DBMS_XDB_CONSTANTS.XSD_COMPLEX_TYPE,'Holding_Type',                                                         'Policy',                                       'POLICY_TABLE');
    843    DBMS_XMLSCHEMA.registerSchema
    844    (
    845      SCHEMAURL => V_SCHEMA_LOCATION_HINT
    846     ,SCHEMADOC => V_XML_SCHEMA
    847     ,LOCAL      => TRUE
    848     ,GENTYPES     => TRUE
    849     ,GENTABLES     => TRUE
    850     ,ENABLEHIERARCHY =>  DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    851    );
    852  end;
    853  /
    PL/SQL procedure successfully completed.
    Elapsed: 02:12:40.05
    SQL> declare
      2    GENERIC_ERROR exception;
      3    PRAGMA EXCEPTION_INIT( GENERIC_ERROR , -31061 );
      4
      5    NO_MATCHING_NODES exception;
      6    PRAGMA EXCEPTION_INIT( NO_MATCHING_NODES , -64405 );
      7
      8    V_XML_SCHEMA XMLType       := xdburitype('/public/TXLIFE/TxLife/TxLife/TXLife2.18.02.xsd').getXML();
      9    V_SCHEMA_LOCATION_HINT VARCHAR2(700) := 'http://xmlns.ACORD.org/schemas/Life/2/TxLife/TXLife2.18.02.xsd';
    10  begin
    11    XDB_EDIT_XMLSCHEMA.expandGroups(V_XML_SCHEMA);
    12    XDB_EDIT_XMLSCHEMA.applySQLTypeMappings(V_XML_SCHEMA);
    13    begin
    14      DBMS_XMLSCHEMA_ANNOTATE.disableDefaultTableCreation(V_XML_SCHEMA);
    15    exception
    16      when GENERIC_ERROR or NO_MATCHING_NODES then
    17        NULL;
    18      when OTHERS then
    19        RAISE;
    20    end;
    21
    22    begin
    23      DBMS_XMLSCHEMA_ANNOTATE.disableMaintainDom(V_XML_SCHEMA,FALSE);
    24    exception
    25      when GENERIC_ERROR or NO_MATCHING_NODES then
    26        NULL;
    27      when OTHERS then
    28        RAISE;
    29    end;
    30
    31    XDB_EDIT_XMLSCHEMA.fixRelativeURLs(V_XML_SCHEMA,V_SCHEMA_LOCATION_HINT);
    32
    33    -- SQLType names for global complex types :-
    34
    93
    94        -- SQLType names for global elements based on local complex types :-
    95
    96    DBMS_XMLSCHEMA_ANNOTATE.setSQLType(V_XML_SCHEMA,'VendorName',                                                 'VendorName19032_T');
    97
    98    DBMS_XMLSCHEMA.registerSchema
    99    (
    100      SCHEMAURL => V_SCHEMA_LOCATION_HINT
    101     ,SCHEMADOC => V_XML_SCHEMA
    102     ,LOCAL      => TRUE
    103     ,GENTYPES     => TRUE
    104     ,GENTABLES     => TRUE
    105     ,ENABLEHIERARCHY =>  DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
    106    );
    107  end;
    108  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:23.91
    SQL>
    SQL>
    SQL> --
    SQL> begin
      2          if (:BINARY_XML = DBMS_XMLSCHEMA.REGISTER_BINARYXML) then
      3      XDB_ANALYZE_SCHEMA.setSchemaRegistrationOptions(P_OPTIONS => DBMS_XMLSCHEMA.REGISTER_BINARYXML);
      4    end if;
      5    XDB_ANALYZE_SCHEMA.tableCreationScript(:TARGET_FOLDER, :TARGET_NAMESPACE);
      6  end;
      7  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:02:05.74
    SQL> set echo off
    -- Table creation for namespace "http://ACORD.org/Standards/Life/2"
    CREATE TABLE "TXLIFE_TABLE" of XMLTYPE
    XMLTYPE STORE AS OBJECT RELATIONAL
    XMLSCHEMA "http://xmlns.ACORD.org/schemas/Life/2/TxLife/TXLife2.18.02.xsd" ELEMENT "TXLife"
    SQL> set verify on
    SQL> set timing on
    SQL> -
    set pages 100 lines 256SQL> --
    SQL> select TABLE_NAME
      2    from USER_XML_TABLES
      3   order by TABLE_NAME
      4  /
    TABLE_NAME
    ArrDestination19465_TAB
    Attachment19139_TAB
    Axis19114_TAB
    CriteriaExpression19527_TAB
    Key19113_TAB
    LIFE_TABLE
    LogicalExpression19304_TAB
    MinBalanceCalcRule19399_TAB
    POLICY_TABLE
    9 rows selected.
    Elapsed: 00:00:00.28
    SQL> --
    SQL> @&TARGET_DIRECTORY/doTableCreation
    SQL> -- Table creation for namespace "http://ACORD.org/Standards/Life/2"
    SQL>
    SQL> CREATE TABLE "TXLIFE_TABLE" of XMLTYPE
      2  XMLTYPE STORE AS OBJECT RELATIONAL
      3  XMLSCHEMA "http://xmlns.ACORD.org/schemas/Life/2/TxLife/TXLife2.18.02.xsd" ELEMENT "TXLife"
      4  /
    Table created.
    Elapsed: 00:44:48.28
    SQL>
    SQL>
    SQL>
    SQL> --
    SQL> set pages 100 lines 256
    SQL> --
    SQL> select TABLE_NAME
      2    from USER_XML_TABLES
      3   order by TABLE_NAME
      4  /
    TABLE_NAME
    ArrDestination19465_TAB
    Attachment19139_TAB
    Axis19114_TAB
    CriteriaExpression19527_TAB
    Key19113_TAB
    LIFE_TABLE
    LogicalExpression19304_TAB
    MinBalanceCalcRule19399_TAB
    POLICY_TABLE
    TXLIFE_TABLE
    10 rows selected.
    SQL> exit
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    C:\xdb\schemas\ACORD\TxLife>sqlplus /nolog @doInsert
    SQL*Plus: Release 11.2.0.2.0 Production on Fri Nov 26 19:21:04 2010
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    SQL> spool doInsert.log
    SQL> --
    SQL> def USERNAME = TXLIFE
    SQL> --
    SQL> def PASSWORD = &USERNAME
    SQL> --
    SQL> connect &USERNAME/&PASSWORD
    Connected.
    SQL> --
    SQL> set autotrace on explain
    SQL> --
    SQL> set pages 50 lines 320 timing on
    SQL> --
    SQL> insert into TXLIFE_TABLE values (XMLTYPE(bfilename('&USERNAME','TXLife2.18.02.xml'),nls_charset_id('AL32UTF8')))
      2  /
    old   1: insert into TXLIFE_TABLE values (XMLTYPE(bfilename('&USERNAME','TXLife2.18.02.xml'),nls_charset_id('AL32UTF8')))
    new   1: insert into TXLIFE_TABLE values (XMLTYPE(bfilename('TXLIFE','TXLife2.18.02.xml'),nls_charset_id('AL32UTF8')))
    1 row created.
    Elapsed: 00:00:07.47
    Execution Plan
    Plan hash value: 1
    | Id  | Operation                | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | INSERT STATEMENT         |              |     1 |   100 |     1   (0)| 00:00:01 |
    |   1 |  LOAD TABLE CONVENTIONAL | TXLIFE_TABLE |       |       |            |          |
    SQL> commit
      2  /
    Commit complete.
    Elapsed: 00:00:00.00
    SQL> select t.*
      2    from TXLIFE_TABLE,
      3         XMLTABLE
      4         (
      5           xmlNamespaces
      6           (
      7             default 'http://ACORD.org/Standards/Life/2'
      8           ),
      9           'for $req in /TXLife/TXLifeRequest
    10              for $criteria in $req/CriteriaExpression/Criteria
    11                return $criteria'
    12           passing OBJECT_VALUE
    13           COLUMNS
    14           PROPERTY_NAME  VARCHAR2(128) path 'PropertyName',
    15           PROPERTY_VALUE VARCHAR2(128) path 'PropertyValue'
    16         ) t
    17  /
    PROPERTY_NAME                                                                                                            PROPERTY_VALUE
    LastName                                                                                                                 String
    GovtID                                                                                                                   String
    GovtIDTc                                                                                                                 String
    ResidenceState                                                                                                           String
    ActivityTypeCode                                                                                                         String
    ActivityDescription                                                                                                      String
    UserCode                                                                                                                 String
    ActivityTypeCode                                                                                                         String
    ActivityStatus                                                                                                           String
    ActivityTypeCode                                                                                                         String
    Closed                                                                                                                   String
    Closed                                                                                                                   String
    String                                                                                                                   String
    13 rows selected.
    Elapsed: 00:00:00.09
    Execution Plan
    Plan hash value: 2596235546
    | Id  | Operation           | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT    |                                |    13 | 52572 |     7  (15)| 00:00:01 |
    |*  1 |  HASH JOIN          |                                |    13 | 52572 |     7  (15)| 00:00:01 |
    |   2 |   NESTED LOOPS      |                                |     2 |    60 |     3   (0)| 00:00:01 |
    |   3 |    TABLE ACCESS FULL| SYS_NTxIzy/t2MTJi3su0dzM0wNA== |     2 |    40 |     3   (0)| 00:00:01 |
    |*  4 |    INDEX UNIQUE SCAN| SYS_C00526537                  |     1 |    10 |     0   (0)| 00:00:01 |
    |   5 |   TABLE ACCESS FULL | SYS_NT/uoSkJDrREukAxygzDQwUA== |    13 | 52182 |     3   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - access("NESTED_TABLE_ID"="SYS_ALIAS_0"."SYS_NC0013500136$")
       4 - access("NESTED_TABLE_ID"="TXLIFE_TABLE"."SYS_NC0004100042$")
    Note
       - dynamic sampling used for this statement (level=2)
    SQL>

  • How to optimize the column width in Table Control

    Hi all,
          When I am displaying fields in Table Control, the columns are displayed in full length, and I am unable to see all the fields at once.
    So as in grid , where we optimize the column width using layout, do we had any property for TC to do so.
    thanks for your help.
    Points would be awarded .
    Regards,
    Anil .

    Hi,
    In Se51, you can do this one, ust open your table control and resize the TC, there is no direct option to do this for entire TC, you need to do this field by field, and arrage the TC to adjust in a Single screen. In the field parameters, you have the field lenghts, there you can minimize the length of a field
    Regards
    Sudheer

Maybe you are looking for