Save data into multiple collections in Data Control

Hi,
In another post (https://forums.oracle.com/message/11094155) I asked how to merge data from multiple collections and show it into a table. FrankNimphius gave me the correct answer. I have now my table with data merged from some collections from my data control. But now I have the opposite request: the table must allow insert new rows and store the data in the model that is represented by all those collections.
I saw this blog https://blogs.oracle.com/jdevotnharvest/entry/how_to_add_new_adf, and is great, but works with one collectionModel, but the idea is exactly the same, just with multiple collectionModels inside a parent one.
The table is not bounded to one collectionModel, it is bounded to a List<MyObject> in my managed bean, so the built-in Create/Delete data control operations of the parent collection don't work.
Another thing is: for me the model is a black box, I don't know anything about the model, I just know the datacontrol.
Thanks!
AAPDL

Hi Frank,
I tried calling the create built-in operation for each collection.
I insert the row in the parent RowSetIterator and set it as the currentRow, then call the create operation. Later insert rows in each children and call the create operation of each one. Finally I call the commit operation.
I tried and it worked, but you said that there would be a tricky part. I don't know if in the code bellow I did that, please let me know.
In the bellow code the PersonasBinding2 is bind to the iterator of the parent collection, and the PersonaNaturalBinding2 and IdentificacionBinding2 are bind to the children collections.
            DCBindingContainer bindingContainer = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
            JUCtrlHierBinding personasBinding = (JUCtrlHierBinding)bindingContainer.findCtrlBinding("PersonasBinding2");
            RowSetIterator personasRowSet = personasBinding.getIteratorBinding().getRowSetIterator();
            Row nuevaFilaPersona = personasRowSet.createRow();
            nuevaFilaPersona.setAttribute("Id",15);
            nuevaFilaPersona.setAttribute("TipoPersona",0);
            OperationBinding createPersonaOperation = bindingContainer.getOperationBinding("CreatePersona");
            createPersonaOperation.execute();
            personasRowSet.setCurrentRow(nuevaFilaPersona);
            JUCtrlHierBinding personaNaturalBinding = (JUCtrlHierBinding)bindingContainer.findCtrlBinding("PersonaNaturalBinding2");
            RowSetIterator personaNaturalRowSet = personaNaturalBinding.getIteratorBinding().getRowSetIterator();
            Row nuevaFilaPersonaNatural = personaNaturalRowSet.createRow();
            nuevaFilaPersonaNatural.setAttribute("IdPersona",15);
            nuevaFilaPersonaNatural.setAttribute("PrimerApellido","PA");
            nuevaFilaPersonaNatural.setAttribute("PrimerNombre","PN");
            nuevaFilaPersonaNatural.setAttribute("SegundoApellido","SA");
            nuevaFilaPersonaNatural.setAttribute("SegundoNombre","SN");
            OperationBinding createPersonaNaturalOperation = bindingContainer.getOperationBinding("CreatePersonaNatural");
            createPersonaNaturalOperation.execute();
            JUCtrlHierBinding identificacionBinding = (JUCtrlHierBinding)bindingContainer.findCtrlBinding("IdentificacionBinding2");
            RowSetIterator identificacionRowSet = identificacionBinding.getIteratorBinding().getRowSetIterator();
            Row nuevaFilaIdentificacion = identificacionRowSet.createRow();
            nuevaFilaIdentificacion.setAttribute("IdPersona",15);
            nuevaFilaIdentificacion.setAttribute("NumeroIdentificacion","NI");
            nuevaFilaIdentificacion.setAttribute("TipoIdentificacion","TI");
            OperationBinding createIdentificacionOperation = bindingContainer.getOperationBinding("CreateIdentificacion");
            createIdentificacionOperation.execute();
            OperationBinding commitOperation = bindingContainer.getOperationBinding("Commit");
            commitOperation.execute()
By other side, in the delete operation I guess that I must delete the childrens before the parent. I know that ADF supports the delete cascade operation only if in the database is configured in that way, but as I said, I don't know how is the model.
Thanks!
AAPDL

Similar Messages

  • Creating a collection from a query in Apex 4.2 is not populating the data into the collection.

    I have a process that creates a collection with data from multiple tables. The query returns multiple rows in 'Sql commands' tab. The same query is used to create the collection in 'Before Header' and when i create a region with Region source as
    Select * From apex_collections Where collection_name = 'load_dashboard';
    At the time of rendering the page shows me 'no data found'.
    what could be the problem? Are there any prerequisites before creating the collection?
    Thanks in Advance,
    Sriram

    Hi Denes,
    Below is my code for creating and saving data into the collection.
    if apex_collection.collection_exists(p_collection_name =>'load_dashboard') then
       apex_collection.delete_collection(
             p_collection_name =>'load_dashboard');
    end if;
    apex_collection.create_collection_from_query(
        p_collection_name => 'load_dashboard',
        p_query => 'select a.rowid
                   ,b.first_name
                   ,b.last_name
                   ,c.job_title
                   ,d.parent
                   ,d.child_level_1
                   ,d.child_level_2
                   ,a.resource_allocation
                   ,a.person_id
                   ,a.month_id
                   ,a.oracom_project_id    ,wwv_flow_item.md5(a.rowid,b.first_name,b.last_name,c.job_title,d.parent,d.child_level_1,d.child_level_2,a.resource_allocation,a.person_id,a.month_id,a.oracom_project_id)
    from oracom_resource_management a, oracom_people b,oracom_job c ,oracom_project d where a.supervisor_id=886302415 and a.month_id=201312 and a.oracom_job_id=c.job_id and a.person_id=b.person_id and a.oracom_project_id=d.oracom_project_id',
       p_generate_md5 => 'YES'
    Sriram.

  • Splitting comma seperated column data into multiple rows

    Hi Gurus,
    Please help me for solving below scenario. I have multiple value in single column with comma seperated values and my requirement is load that data into multiple rows.
    Below is the example:
    Source Data:
    Product         Size                                 Stock
    ABC              X,XL,XXL,M,L,S                 1,2,3,4,5,6
    Target Data:
    Product         Size                                 Stock
    ABC              X                                     1
    ABC              XL                                   2
    ABC              XXL                                 3
    ABC              M                                    4
    ABC              L                                      5
    ABC             S                                        6
    Which transformation we need to use for getting this output?
    Thanks in advance !

    Hello,
    Do you need to do this tranformation through OWB mapping only? And can you please tell what type of source you are using? Is it a flat file or a table?
    Thanks

  • Insert data into multiple entities at once using a view object

    Hi,
    I'm trying to insert data into multiple entities at once using a view object, but unfortunately it doesn't seem to work. The two entities have a 1:1 association. I created a view object which contains both entities and I made sure they aren't read-only. But like I said it doesn't work, I can't insert data in both entities at once... :(
    Is this possible? And how (if it is)?

    Hi,
    I'm trying to insert data into multiple entities at once using a view object, but unfortunately it doesn't seem to work. The two entities have a 1:1 association. I created a view object which contains both entities and I made sure they aren't read-only. But like I said it doesn't work, I can't insert data in both entities at once... :(
    Is this possible? And how (if it is)? Peter:
    This is definitely supported and tested. Please send us the exception stack trace. You must running into other problems. A few things to note:
    A) You have to mark the entities as both updateable (not read-only) and not reference-only.
    B) If you're not seeing an exception stack, turn on diagnostic. Here is how:
    To turn on diagnostic, go to the IDE,
    1. Select the project.
    2. Do right mouse click and select "Project Settings..."
    3. On the Settings dialog, select Configurations/Runner.
    4. In the righthand side pane, you should see a textbox for "Java
    Options". Please add the following JVM switch:
    -Djbo.debugoutput=console
    Then, rerun. The run command should include
    -Djbo.debugoutput=console as in
    "D:\JDev9i\jdk\bin\javaw.exe" -Djbo.debugoutput=console -classpath ...
    You should now see a lot more output on the IDE's message window. Here you should see the exception stack trace.
    If you invoking your app directly from command prompt, just add "-Djbo.debugoutput=console" after your "java.exe".
    Thanks.
    Sung

  • Inserting Data into a Collection

    Hi
    Can anybody suggest how to Insert data into a Collection from another Collection Using Bulk Binds in PLSQL?
    My scenario :-
    CREATE OR REPLACE PACKAGE te_ar IS
    TYPE srm_rec IS RECORD (col1 <table>.<col1>%TYPE, col2 <table>.<col2>%TYPE);
    TYPE srm_rec_list IS TABLE OF srm_rec INDEX BY BINARY_INTEGER;
    FUNCTION z_srm_rec RETURN srm_rec_list PIPELINED;
    END te_ar;
    CREATE OR REPLACE PACKAGE BODY te_ar IS
    FUNCTION z_srm_rec RETURN srm_rec_list PIPELINED IS
    v_srm_rec srm_rec;
    TYPE col1_t IS TABLE OF <table>.<col1>%TYPE INDEX BY BINARY_INTEGER;
    TYPE col2_t IS TABLE OF <table>.<col2>%TYPE INDEX BY BINARY_INTEGER;
    col1_tt col1_t;
    col2_tt col2_t;
    CURSOR c1
    IS
    SELECT col1, col2 FROM table;
    BEGIN
    OPEN c1;
    FETCH c1 BULK COLLECT INTO col1_tt,col2_tt;
    FORALL i IN 1 .. c1%ROWCOUNT
    v_srm_rec.col1(i) := col1_tt(i);
    v_srm_rec.col2(i) := col2_tt(i);
    PIPE_ROW(v_srm_rec);
    CLOSE c1;
    RETURN;
    END;
    END te_ar;
    I have created a Record Type in which I am trying to insert rows using bulk bind and return it using a pipelined function.
    This approach is throwing me errors in which I am unable to use both Pipelining and Bulk Binds together so that I can make the Performance of the entire bit better.
    Please suggest the way forward.
    Any other relevant info I am ready to supply.
    Thanks
    Arnab

    FORALL is used for bulk DML statements and will not work for your collections. http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/forall_statement.htm#LNPLS01321. I think you may want to use a regular FOR loop.

  • Insert data into multiple tables

    Hi all,
    I've a requirement where i need to insert data into multiple tables using PL/SQL procedure
    Procedure should have two parameters
    1. Table Name (parameter1)
    2. Data (parameter2)
    Based on these two parameters i need to insert data into table (parameter1) using data (parameter2)
    ex:
    Procedure insert_data (p_table  IN VARCHAR2
                          ,p_data   IN -- what should be the datatype?
    IS
    l_statement VARCHAR2(2000);
    BEGIN
    -- insert data into tables
    INSERT INTO p_table
    values (....);
    END insert_data;Thanks in advance!!

    BEDE wrote:
    Amen to that!
    So, I believe a better approach would be the following...
    Suppose you have N datafiles with the same structure, and you wish to insert into the database the data from all those files.
    For that, you should have a single table, named, say incoming_file_data, which should be structured more or less like below:
    create table incoming_file_data (
    filename varchar2(250) not null -- name of the file inserted from
    ,file_time timestamp -- timestamp when the data was inserted
    ,... -- the columns of meaningful data contained in the lines of those files
    );And you will insert the data from all those files in this table, having normally one transaction for each file processed, for otherwise, when shit happens, some file may only get to be partially inserted into the table...
    Maybe one good approach would be to create dynamically an external table for the file to be loaded, and then execute dynamically insert select into the table I said, so that you will have only one insert select for one file instead of using utl_file... RTM on that.If the file structures are the same, and it's just the filename that's changing, I would have a single external table definition, and use the alter table ... location ... statement (through execute immediate) to change the filename(s) as appropriate before querying the data. Of course that's not scalable if there are multiple users intenting to use this, but generally when we talk about importing multiple files, it's a one-user/one-off/once-a-day type of scenario, so multi-user isn't a consideration.

  • How to spool data into multiple Excel sheet if result is more then 65k rows

    Hi all,
    Wann spool data into multiple excel sheet bocz my resultant no of rows are more then 65k.
    Thanks to all in advance.....

    many choices
    1) migrate to a newer version of Excel
    2) split the files after spooling
    for instance with split
    split -l65000 file.txtor with perl, java, vb or what-so-ever
    3) do more than one report by using rownum
    spool f1
    select empno,ename  from (select rownum r,empno,ename from emp order by empno) where r<6 ;
    spool off
    spool f2
    select empno,ename  from (select * from (select rownum r,empno,ename from emp order by empno) where r<11) where r>5 ;
    spool off
    spool f3
    select empno,ename  from (select rownum r,empno,ename from emp order by empno) where r>10 ;
    spool off

  • How to insert one table data into multiple tables by using procedure?

    How to insert one table data into multiple tables by using procedure?

    Below is the simple procedure. Try the below
    CREATE OR REPLACE PROCEDURE test_proc
    AS
    BEGIN
    INSERT ALL
      INTO emp_test1
      INTO emp_test2
      SELECT * FROM emp;
    END;
    If you want more examples you can refer below link
    multi-table inserts in oracle 9i
    Message was edited by: 000000

  • Export XML data into multiple worksheet of an Excel file..using FO processr

    Hi,
    I need to export XML data into Excel output, the data should flow into multiple worksheet of the Excel file.
    Let me know if this can be done using XML publisher. If yes, please provide me the steps to do the same.
    Could not able to achieve this through by the below process:
    (1)     Created a RTF (which has single excel table structure).
    (2)     Generated the XSL file using XSL-FO Style Sheet.
    (3)     Passed the XSL file and XML
    which exported the data into an Excel (single worksheet) format.
    Please let me know, how this can be exported into multiple worksheets.
    Thanks & Regards,
    Dhamodaran VJ.

    Hi Dhamodaran ,
    pass me the template you created and XML. "Created a RTF (which has single excel table structure)."
    Let me have a look at it,
    For ID, look at profile.

  • Inserting data into multiple tables in jdbc

    I am doing on file to jdbc. Now I got a requirement to insert data into multiple tables on the receiver side. How can I do this ?

    Hi,
    you are going to insert data into 4 tables in a sequence one after another , I see three options.
    1) Stored procedure and 2) creating 4 statement data structure (one for each table)
    The third option is writing a SQL with join for the 4 tables and use action command = SQL_DML. Example as follows....
    Write SQL code and place it in access tag. Pass values for the columns using key tag...
    <stmt>
        <Customers action="SQL_DML">
          <access> UPDATE Customers SET CompanyName=u2019$NAME$u2019, Address=u2019$ADDRESS$' WHERE CustomerID='$KEYFIELD$u2019
          </access>
          <key>
            <NAME>name</NAME>
            <ADDRESS>add </ADDRESS>
            <KEYFIELD>1</KEYFIELD>
          </key>
        </Customers>
      </stmt>
    Refer this http://help.sap.com/saphelp_nwpi71/helpdata/en/44/7b7855fde93673e10000000a114a6b/content.htm
    Hope this helps ....

  • Write data into a collection

    Hi All,
    i am concerned with entering data into a collection (NameValuePair) of two elements using as assign activity. the data is string information and below is part of the xsd:-
    <element name="Data" maxOccurs="1" minOccurs="0">
    <complexType>
    <sequence>
    <element name="NameValuePair" maxOccurs="unbounded"
    minOccurs="0">
    <complexType>
    <sequence minOccurs="1">
    <element name="name" type="string"/>
    <element name="value" type="string"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    </element>
    my assign activities look like:-
    <from>'Parent Concurrent Req ID'</from>
    <to>$Invoke_InputVariable.payload/ns20:Data/ns20:NameValuePair[1]/ns20:name</to>
    </copy>
    <copy>
    <from>$Receive_ConcReqID_InputVariable.Response/ns10:ConcRequestID</from>
    <to>$Invoke_InputVariable.payload/ns20:Data/ns20:NameValuePair[1]/ns20:value</to>
    </copy>
    <copy>
    <from>'Errored Child Req ID'</from>
    (line 626) <to>$Invoke_InputVariable.payload/ns20:Data/ns20:NameValuePair[2]/ns20:name</to>
    </copy>
    <copy>
    <from>$Invoke_ConcRequestsQuery_DB_QueryChildJob_DetailsSelect_OutputVariable.FndConcurrentRequestsCollection/ns9:FndConcurrentRequests[$ForEachCounter]/ns9:requestId</from>
    <to>$Invoke_InputVariable.payload/ns20:Data/ns20:NameValuePair[2]/ns20:value</to>
    but however i am getting an error at runtime that 'Exception is thrown because the to-spec at line 626 is evaluated to be empty'
    Could someone suggest how i should get this done.. if there is a more correct approach, pls suggest.
    regards
    Rakesh

    Hi Rakesh,
    If you edit your assign and right click on the expression bellow you should see "ignoringMissingFromData" and "insertMissingToData" options... I believe the latter will solve your problem...
    Cheers,
    Vlad

  • How to select data into multiple bind variables

    Hi,
    I need to load data into multiple bind variable how to do that
    As of now i am using this
    select a , b into :a, :b from dual
    But i want even a to be loaded into both :a and :c also b to be loaded into :b and :d Please suggest
    Thanks
    Sudhir.

    Thanks much it worked
    Thanks
    Sudhir

  • Downloading data into multiple work sheets in excel

    Hi All,
    Could you please tell me the way of downloading data into multiple work sheets .
    Now, we are downloading  data into  multiple excel files and after that  copying  all the excel file data in to different work sheets of the single excel manually.
    So , here I want directly download the data into different work sheets of single excel file.
    Regards,
    Siddivinesh Jogu

    Hi,
    Down load into three worksheets in one XL
    REPORT  ZKC_TEST1.
    INCLUDE ole2incl.
    DATA: w_cell1 TYPE ole2_object,
          w_cell2 TYPE ole2_object.
    *--- Ole data Declarations
    DATA: h_excel     TYPE ole2_object, " Excel object
          h_mapl      TYPE ole2_object, " list of workbooks
          h_map       TYPE ole2_object, " workbook
          h_zl        TYPE ole2_object, " cell
          h_f         TYPE ole2_object, " font
          gs_interior TYPE ole2_object, " Pattern
          worksheet   TYPE ole2_object,
          h_cell      TYPE ole2_object,
          h_cell1     TYPE ole2_object,
          range       TYPE ole2_object,
          h_sheet2    TYPE ole2_object,
          h_sheet3    TYPE ole2_object,
          gs_font     TYPE ole2_object,
          e_color     TYPE ole2_object,
          gs_italic   TYPE ole2_object,
          flg_stop(1) TYPE c.
    ** Internal table Declaration
    DATA: BEGIN OF t_excel OCCURS 0,
          MATNR type mara-matnr, "(18) type c,
          ERSDA type mara-ersda, " (8)  type c,
          ERNAM type mara-ernam, "(12) type c,
          LAEDA type mara-laeda, "(8)  type c,
          AENAM type mara-aenam, "(12) type c,
          VPSTA type mara-vpsta, "(15) type c,
          PSTAT type mara-pstat, "(15) type c,
          END OF t_excel.
    DATA: t_excel_bckord LIKE t_excel OCCURS 0 WITH HEADER LINE,
          t_excel_bcklog LIKE t_excel OCCURS 0 WITH HEADER LINE,
          t_excel_blkord LIKE t_excel OCCURS 0 WITH HEADER LINE.
    data: wa_excel_bckord like line of t_excel.
    TYPES: data1(1500) TYPE c,
           ty          TYPE TABLE OF data1.
    DATA: it        TYPE ty WITH HEADER LINE,
          it_2      TYPE ty WITH HEADER LINE,
          it_3      TYPE ty WITH HEADER LINE,
          rec       TYPE sy-tfill,
          deli(1)   TYPE c,
          l_amt(18) TYPE c.
    DATA: BEGIN OF hex,
           tab TYPE x,
          END OF hex.
    FIELD-SYMBOLS: <fs> .
    CONSTANTS cns_09(2) TYPE n VALUE 09.
    ASSIGN deli TO <fs> TYPE 'X'.
    hex-tab = cns_09.
    <fs> = hex-tab.
    DATA gv_sheet_name(20) TYPE c .
    *---selecting into tables
    select MATNR
           ERSDA
           ERNAM
           LAEDA
           AENAM
           VPSTA
           PSTAT
           from mara into table t_excel_bckord
           where pstat = 'KVELBCD'.
    wa_excel_bckord-matnr = 'MATNR'.
    wa_excel_bckord-ersda = 'ERSDA'.
    wa_excel_bckord-ernam = 'ERNAM'.
    wa_excel_bckord-laeda = 'LAEDA'.
    wa_excel_bckord-aenam = 'AENAM'.
    wa_excel_bckord-vpsta = 'VPSTA'.
    wa_excel_bckord-pstat = 'PSTAT'.
    INSERT wa_excel_bckord
             INTO t_excel_bckord INDEX 1 .
    select MATNR
           ERSDA
           ERNAM
           LAEDA
           AENAM
           VPSTA
           PSTAT
           from mara into table t_excel_bcklog
           where pstat = 'KVELBCDP'.
    INSERT wa_excel_bckord
             INTO t_excel_bcklog INDEX 1 .
    select MATNR
           ERSDA
           ERNAM
           LAEDA
           AENAM
           VPSTA
           PSTAT
           from mara into table t_excel_blkord
           where pstat = 'KEBC'.
    INSERT wa_excel_bckord
             INTO t_excel_blkord INDEX 1 .
    LOOP AT t_excel_bckord.
      CONCATENATE
      t_excel_bckord-MATNR
      t_excel_bckord-ERSDA
      t_excel_bckord-ERNAM
      t_excel_bckord-laeda
      t_excel_bckord-aenam
      t_excel_bckord-vpsta
      t_excel_bckord-pstat
      INTO it
      SEPARATED BY deli.
      APPEND it.
      CLEAR it.
    ENDLOOP.
    LOOP AT t_excel_bcklog.
      CONCATENATE
      t_excel_bcklog-matnr
      t_excel_bcklog-ersda
      t_excel_bcklog-ernam
      t_excel_bcklog-laeda
      t_excel_bcklog-aenam
      t_excel_bcklog-vpsta
      t_excel_bcklog-pstat
      INTO it_2
      SEPARATED BY deli.
      APPEND it_2.
      CLEAR it_2.
    ENDLOOP.
    LOOP AT t_excel_blkord.
      CONCATENATE
      t_excel_blkord-matnr
      t_excel_blkord-ersda
      t_excel_blkord-ernam
      t_excel_blkord-laeda
      t_excel_blkord-aenam
      t_excel_blkord-vpsta
      t_excel_blkord-pstat
      INTO it_3
      SEPARATED BY deli.
      APPEND it_3.
      CLEAR it_3.
    ENDLOOP.
    *--- start Excel
    IF h_excel-header = space OR h_excel-handle = -1.
      CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
    ENDIF.
    *--- get list of workbooks, initially empty
    CALL METHOD OF h_excel 'Workbooks' = h_mapl.
    SET PROPERTY OF h_excel 'Visible' = 1.
    CALL METHOD OF h_mapl 'Add' = h_map.
    gv_sheet_name = 'Back Orders'.
    GET PROPERTY OF h_excel 'ACTIVESHEET' = worksheet.
    SET PROPERTY OF worksheet 'Name' = gv_sheet_name .
    *--Formatting the area of additional data 1 and doing the BOLD
    CALL METHOD OF h_excel 'Cells' = w_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Cells' = w_cell2
      EXPORTING
      #1 = 1
      #2 = 50.
    CALL METHOD OF h_excel 'Range' = h_cell
      EXPORTING
      #1 = w_cell1
      #2 = w_cell2.
    GET PROPERTY OF h_cell  'Font' = gs_font .
    SET PROPERTY OF gs_font 'Bold' = 1 .
    SET PROPERTY OF gs_font 'Name' = 'Arial' .
    GET PROPERTY OF h_cell 'Interior' = e_color.
    SET PROPERTY OF e_color 'ColorIndex' = 35.
    GET PROPERTY OF h_cell  'Font' = gs_italic .
    SET PROPERTY OF  gs_italic 'Italic' = 1 .
    DATA l_rc TYPE i.
    CALL METHOD cl_gui_frontend_services=>clipboard_export
      IMPORTING
        data                 = it[]
      CHANGING
        rc                   = l_rc
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        not_supported_by_gui = 3
        OTHERS               = 4.
    CALL METHOD OF h_excel 'Cells' = w_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Cells' = w_cell2
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Range' = range
      EXPORTING
      #1 = w_cell1
      #2 = w_cell2.
    CALL METHOD OF range 'Select'.
    CALL METHOD OF worksheet 'Paste'.
    gv_sheet_name = 'Backlog'.
    GET PROPERTY OF h_excel 'Sheets' = h_sheet2 .
    CALL METHOD OF h_sheet2 'Add' = h_map.
    SET PROPERTY OF h_map 'Name' = gv_sheet_name .
    GET PROPERTY OF h_excel 'ACTIVESHEET' = worksheet.
    *--Formatting the area of additional data 1 and doing the BOLD
    CALL METHOD OF h_excel 'Cells' = w_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Cells' = w_cell2
      EXPORTING
      #1 = 1
      #2 = 50.
    CALL METHOD OF h_excel 'Range' = h_cell
      EXPORTING
      #1 = w_cell1
      #2 = w_cell2.
    GET PROPERTY OF h_cell 'Font' = gs_font .
    SET PROPERTY OF gs_font 'Bold' = 1 .
    GET PROPERTY OF h_cell 'Interior' = e_color.
    SET PROPERTY OF e_color 'ColorIndex' = 40.
    CALL METHOD cl_gui_frontend_services=>clipboard_export
      IMPORTING
        data                 = it_2[]
      CHANGING
        rc                   = l_rc
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        not_supported_by_gui = 3
        OTHERS               = 4.
    CALL METHOD OF h_excel 'Cells' = w_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Cells' = w_cell2
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Range' = range
      EXPORTING
      #1 = w_cell1
      #2 = w_cell2.
    CALL METHOD OF range 'Select'.
    CALL METHOD OF worksheet 'Paste'.
    gv_sheet_name = 'Blocked Orders'.
    GET PROPERTY OF h_excel 'Sheets' = h_sheet3 .
    CALL METHOD OF h_sheet3 'Add' = h_map.
    SET PROPERTY OF h_map 'Name' = gv_sheet_name .
    GET PROPERTY OF h_excel 'ACTIVESHEET' = worksheet.
    *--Formatting the area of additional data 1 and doing the BOLD
    CALL METHOD OF h_excel 'Cells' = w_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Cells' = w_cell2
      EXPORTING
      #1 = 1
      #2 = 50.
    CALL METHOD OF h_excel 'Range' = h_cell
      EXPORTING
      #1 = w_cell1
      #2 = w_cell2.
    GET PROPERTY OF h_cell 'Font' = gs_font .
    SET PROPERTY OF gs_font 'Bold' = 1 .
    GET PROPERTY OF h_cell 'Interior' = e_color.
    SET PROPERTY OF e_color 'ColorIndex' = 45.
    CALL METHOD cl_gui_frontend_services=>clipboard_export
      IMPORTING
        data                 = it_3[]
      CHANGING
        rc                   = l_rc
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        not_supported_by_gui = 3
        OTHERS               = 4.
    CALL METHOD OF h_excel 'Cells' = w_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Cells' = w_cell2
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF h_excel 'Range' = range
      EXPORTING
      #1 = w_cell1
      #2 = w_cell2.
    CALL METHOD OF range 'Select'.
    CALL METHOD OF worksheet 'Paste'.
    *--- disconnect from Excel
    FREE OBJECT h_zl.
    FREE OBJECT h_mapl.
    FREE OBJECT h_map.
    FREE OBJECT h_excel.
    Thanks,
    Krishna..

  • Exporting data into multiple tabs of Excel from OA Framework Page.

    Hii,
    I have a requirement like exporting data into multiple tabs of Excel from OA Framework.
    Like One Quarter Data should be in one Excel Sheet, and the Second Quarter data should go into other Excel Sheet, like wise ...
    I have tried searching forums, and developers guide, But couldn't find any correct answer on this. If its there on developers guide can somebody point me exactly where it is located.
    If someone can help me through this or can guide me through any document in this. It would be really helpful.
    Thanks
    Prakash.

    I guess, tabs are not supported in XML publisher as well.
    I would be worth checking at with BI publisher forum.
    --Prasanna                                                                                                                                                                                                                                                               

  • Split flat file column data into multiple columns using ssis

    Hi All, I need one help in SSIS.
    I have a source file with column1, I want to split the column1 data into
    multiple columns when there is a semicolon(';') and there is no specific
    length between each semicolon,let say..
    Column1:
    John;Sam;Greg;David
    And at destination we have 4 columns let say D1,D2,D3,D4
    I want to map
    John -> D1
    Sam->D2
    Greg->D3
    David->D4
    Please I need it ASAP
    Thanks in Advance,
    RH
    sql

    Imports System
    Imports System.Data
    Imports System.Math
    Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
    Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
    Imports System.IO
    Public Class ScriptMain
    Inherits UserComponent
    Private textReader As StreamReader
    Private exportedAddressFile As String
    Public Overrides Sub AcquireConnections(ByVal Transaction As Object)
    Dim connMgr As IDTSConnectionManager90 = _
    Me.Connections.Connection
    exportedAddressFile = _
    CType(connMgr.AcquireConnection(Nothing), String)
    End Sub
    Public Overrides Sub PreExecute()
    MyBase.PreExecute()
    textReader = New StreamReader(exportedAddressFile)
    End Sub
    Public Overrides Sub CreateNewOutputRows()
    Dim nextLine As String
    Dim columns As String()
    Dim cols As String()
    Dim delimiters As Char()
    delimiters = ",".ToCharArray
    nextLine = textReader.ReadLine
    Do While nextLine IsNot Nothing
    columns = nextLine.Split(delimiters)
    With Output0Buffer
    cols = columns(1).Split(";".ToCharArray)
    .AddRow()
    .ID = Convert.ToInt32(columns(0))
    If cols.GetUpperBound(0) >= 0 Then
    .Col1 = cols(0)
    End If
    If cols.GetUpperBound(0) >= 1 Then
    .Col2 = cols(1)
    End If
    If cols.GetUpperBound(0) >= 2 Then
    .Col3 = cols(2)
    End If
    If cols.GetUpperBound(0) >= 3 Then
    .Col4 = cols(3)
    End If
    End With
    nextLine = textReader.ReadLine
    Loop
    End Sub
    Public Overrides Sub PostExecute()
    MyBase.PostExecute()
    textReader.Close()
    End Sub
    End Class
    Put this code in ur script component. Before that add 5 columns to the script component output and name them as ID, col1, co2..,col4. ID is of data type int. Create a flat file destination and name it as connection and point it to the flat file as the source.
    Im not sure whats the delimiter in ur flat file between the 2 columns. I have use a comma change it accordingly.
    This is the output I get:
    ID Col1
    Col2 Col3
    Col4
    1 john
    Greg David
    Sam
    2 tom
    tony NULL
    NULL
    3 harry
    NULL NULL
    NULL

Maybe you are looking for