Using XSU to process multiple record sets

Have a design question about XML, Java and Oracle's XSU. This is a common task when importing external data that should be of general interest.
I have an incoming XML document with multiple records with a known DTD. Before the records can be inserted into the database, part of
the record must be used to do a lookup for a foreign key. The resulting foreign key is then combined with the other part of the
record to create a valid input record for the database.
My question is what's the most efficient way to do this? I assume the general approach must go something like:
begin
while (records in xml doc)
1. parse the incoming XML to extract the next record
2. if the lookup data change, do a lookup for this record using XSL
3. combine the resulting foreign key with the data to create
an insert query
4. add the insert query as a document fragment to a second XML document.
use XSU to insert the second XML doc with multiple records.
end
I've figured out how to do most of this, except for step 1 above: is there an easy way to extract the next record from an XML doc if I know the row nodes and the DTD? Or do I just have to traverse all the XML nodes until I hit my next row tag?
Appreciate any suggestions; this is a handy discussion list!
--Rick Casey
Rick Casey, Graduate research assistant CADSWES, http://cadswes.colorado.edu
University of Colorado at Boulder [email protected] 303.492.0892
null

Yes, typical behavior is that when you have multiple outputs it will create a one row IllumDoc to wrap them all together with OuputParameter=* (and the xml will be ignored unless it is the only output property or you've requested it by name).
How about just using "/Lighthammer/Illuminator?QueryTemplate=xxxx/yyyy&Content-Type=text/xml" or "/Lighthammer/Runner?Transaction=xxxx/yyyy&OutputParameter=OutputXML" which will both return your multi-rowset output?
I may be mistaken, but I believe the XacuteResponse was simplified to not include the Rowsets outer node because certain systems had problems digesting the layers, in fact you don't get the <Columns/> section either in the single Rowset.
Rick - any feedback to this SOAP simplification from Xacute?

Similar Messages

  • Multiple record sets???

    I am having a tough time with setting up a list that is set
    up as shown at the bottom of the page. So I thought maybe I could
    create multiple record sets... one for each category. The problem
    is that there are 30+ categories. I really could use some help.
    Is multiple record sets the proper way to do this or am I
    missing the big picture?
    The other direction that was in my mind was if there was a
    way to change the "WHERE category = ?" statement as I get to each
    category.... is that possible?
    Category 1
    field 1 field 2 field 3
    field 1 field 2 field 3
    field 1 field 2 field 3
    Category 2
    field 1 field 2 field 3
    field 1 field 2 field 3
    Thanks in advance
    Dave

    Sounds like you need a join statement in your SQL, is the
    category and field info in different tables, then a join would be
    perfect, also what language are you using. I know another way in
    php you could use a while loop with another RS inside that gets the
    proper field info for each category.
    check out this:
    http://www.w3schools.com/sql/sql_join.asp

  • Returning Multiple Record sets to VB.

    Is it possible using an Oracle 7 Driver connecting to a Oracle 9i database to return multiple record sets to screens written in VB? this is all a new area for me and the people I've spoken to so far seem to think it isn't possible - I refuse to believe this - someone must have done this before?!?!? Can someone confirm either way before I go down this path!!!!
    Cheers

    Sounds like you need a join statement in your SQL, is the
    category and field info in different tables, then a join would be
    perfect, also what language are you using. I know another way in
    php you could use a while loop with another RS inside that gets the
    proper field info for each category.
    check out this:
    http://www.w3schools.com/sql/sql_join.asp

  • BPM for Processing Multiple records in a file

    Hello All:
    I using BPM to process Goods issue using BAPI BAPI_GOODSMVT_CREATE. The BPM setps are as
    Step 1  Receive Request from Asyn File Interface
    Step 2  Transformation Map to Bapi request Structure
    Step 3  Send Sync Request to Bapi
    Step 4  Transformation Map Bapi Response to file
    Step 5  Send Asyn Message to File
    My input file  is as fallows
    H,20050613,20050613,9999,HEAD TXT,03,
    P,000001000108,0001,COMMON,2,EA,1000,1011,261,ITM TXT,
    H,20050613,20050613,9999,HEAD TXT,03,
    P,000001000108,0001,COMMON,3,EA,1000,1011,261,ITM TXT,
    The output file is as fallows
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns1:MT_SAP_RESPONSE_ITMS_DATA xmlns:ns1="http://testcompany.com/xi/ITMS">
    - <BAPI_STR>
    - <HEADER>
      <MAT_DOC>4900000696</MAT_DOC>
      </HEADER>
      </BAPI_STR>
      </ns1:MT_SAP_RESPONSE_ITMS_DATA>
    The problem I am facing is although my file has 2 records of goods issue data (Header and Item data) , the BPM processes only one record (Header and Item) and creates a material doc in SAP and outputs a file with the material doc number as above. Ideally I would like the XI system to process both the records and produce 2 material docs as output .
    Also my input file adapter has been picking up both the records as this is visible in the SXMB_MONITOR logs.
    Do I need to introduce a loop in the BPM ?. If so can any can any body give me an example or point me in the right direction.
    Many Thanks
    TBH

    Udo:
    <b>you need a mapping splitting one message with multiple entries into multiple messages with one entry, which you put into a multiple line BPM container.</b>
       Are you implying loop Step 1 Receive Request from Asyn File Interface and collect them into a multiline container ?. How does the loop know how many times to loop.
    Would appreciate your comments
    Thorsten

  • Sender JMS Content Conversion - How to process multiple records

    Hi All,
    I use a Sender JMS Channel with Content Conversion.
    My message structure is like this
    <root>
        <rec>    </rec>
        <rec>    </rec>
    </root>
    I have fixed length flat file with multiple records.
    i have given the parameters FixedFieldLength, FieldNames and StructureTitle.
    Which parameter i need to use specify the RecordDelimiter
    Because my input file will have more than record
    my input file -
    xxxx
    yyyy
    if i dont specify any delimiter value, in the module parameter,then for each newline of the file, a new mesage is created.
    <root>
      <rec>xxxx</rec>
    <root>
    <root>
      <rec>yyyy</rec>
    <root>
    But i want the output to be like this
    <root>
    <rec>xxxx<rec>
    <rec>yyyy</rec>
    </root>

    hi,
    You can do your FCC for sender JMS by going through page 5 of this document.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710

  • Can you use ESB to insert multiple records into a Database

    We have an XML file that has a Parent/Child relationship.
    In situation 1 we have a single parent record in the xml file. We can insert the record into the database successfully.
    In situation 2 we have a parent and a an associated child record. By using a filter expression to identify the existence of the child record we can route to the first DB Adapter to insert the parent then to the second DB Adapter to insert the child.
    Is this final scenario logical and also possible.
    Situation 3 we have multiple child records associated to a single parent. So we would first insert the parent record then insert all the child records.
    Thanks

    I use PL/SQL for this if you are using Oracle.
    Have a look at this post, it is for AQ but the concept can be used for PL/SQL
    Re: Can I pass a pl/sql table as a parameter from a database adaptor
    I will send you an example
    cheers
    James

  • What Changes is Reqd in Int. Process to proces Multiple record by  1..1 RFC

    HI Sdner,
    File -  ECC - RFC (Sync) - Currently File / But This can be Other System also.
    I have Done this By BPM .
    File  - Receiver Step - Sender Step (Sync) - Sender Step - File .
    and this is running fine for single record.
    But Now Problem is RFC is with 1..1 Occurence .. So it cannot take more then 1 record ... so on Receiver I am getting only response record in Response File.
    What Changes is Reqd in Integration Process to process Multiple record by  RFC of 1..1 Occurence type.
    or what is the approach ..................for ID and Inetegration Process in ESR.
    I know we can go with Other Approach Like Proxy and Module Proccer .. But I am following Strictly BPM approach ...
    Because We have Similar More Scenarios ..even More Complex ..
    Regards
    Prabhat Sharma,

    HI nagarjuna,
    italics
    you want a solution with current scenario, you can try this-
    Go to messages tab and change the occurance to 0..unbounded for RFC in file-RFC mapping. Now you have 1:n mapping.
    The RFC root tag has to be mapped with record set of your file structure.Now the n RFC calls will be generated on executing this mapping.
    In your BPM part make the following changes-
    Add one more send step after the receive step and call the 1:n mapping transformation.
    The sync send step should be placed in a 'ForEach' block.
    So for each record in file a sync RFC call will be executed and the file is appended with respose code everytime.
    italics
    If you can explain this some more ...
    Or If you can  provide me some Blog .... or screen shot of Integration Process/ Service Interface / Receiver Determination / Interface Determination..
    That would be helpful.

  • Why do file sizes change when I use "Process Multiple Images" to add watermarks?

    Hi,
    I'm using Elements 11. In order to add watermarks to many JPG pics at once, I use the function "Process Multiple Files".
    I select a source folder and a destination folder, and adds a three digit serial number to each file. I do NOT tick the checkbox marked "Change picture size". After that I define the watermark I want printed on my pics and hits OK. All the files in the source folder are processed and saved, with a new name in the destination folder. Fair and square.
    But. The file size of the new file is heavily reduced, compared to the original. It goes from 10 MB down to 500 KB (in general). Why is that? Is there any way I can prevent it?
    Regards,
    /Mikael Lindgren

    Or you can uncheck the convert files box to save them in their original format, or select one of the lossless formats PSD, BMP, TIF. What is most appropriate depends on what you intend to do with the watermarked versions.
    Cheers,
    Neale
    Insanity is hereditary, you get it from your children
    If this post or another user's post resolves the original issue, please mark the posts as correct and/or helpful accordingly. This helps other users with similar trouble get answers to their questions quicker. Thanks.

  • Tip for Data Merge with Multiple Records (labels, etc.)

    I have seen many InDesign Data Merge questions about how to create sheets of mailing labels, especially the problem of getting only one label per page, when you need 30 or more.
    Adobe's instructions are poor and incomplete in that InDesign doesn't step out the records from a data source - it steps out the FRAMES that contain the data field placeholders.
    That is why you only need to place a text or image frame once on a single page - during the datamerge, InDesign will create the additional FRAMES for each record, and it will create the pages required to hold them.
    You do have to set the desired spacing on the
    If you create the frame on a Master page, ID allows you to update the data source (when it changes) in the Data Merge tool panel.
    These are very nice and robust features, but the documentation for them is confusing to many people.
    You will find more great in-depth help  for Data Merge, with screen captures and attachments, here in the forum.

    For a multiple record merge you need one set of placeholders, then set the margins and spacing in the merge options so the positioning is correct.
    Warning: Using Preview in a multiple record merge will corrupt the file. If you press the preview button, Undo after looking at the preview, then merge without using preview.

  • How to process next record in oracle PLSQL

    Hi,
    I am processing below record set with the help of BULK COLLECT in Oracle PLSQL Procedure. While processing I am checking model is one that need not be substituted. If it is 'NA' or 'N/A', I need process next record (marked as bold in code snipet)
    Please guide me how to do it ?
    TYPE t_get_money IS TABLE OF c_get_money%ROWTYPE INDEX BY BINARY_INTEGER;
    L_money t_get_money ;
    L_subst_model VARCHAR2(40);
    L_Notify_Manager     VARCHAR2(1);
    L_grade          VARCHAR2(20);
    L_Error_Message     VARCHAR2(1);
    BEGIN
    OPEN c_get_money ;
    FETCH c_get_money BULK COLLECT INTO L_money ;
    CLOSE c_get_money;
    FOR I IN 1..L_money.count LOOP
    -- check if the model is one that need not be substituted
    IF (upper(L_money(i). subst_model) in ('N/A', 'NA')
    THEN
    L_NOTIFY_MANAGER(I) := 'Y';
    L_GRADE(I) := 'ERROR';
    L_error_message(i) := 'substitute Model is not N/A or NA' ;
    -------Here I want to process NEXT RECORD--------
    END IF ;
    END;

    One of the solution for below version of 11g...
    DECLARE
         TYPE t_get_money IS TABLE OF c_get_money%ROWTYPE
                                       INDEX BY BINARY_INTEGER;
         L_money              t_get_money;
         L_subst_model        VARCHAR2 (40);
         L_Notify_Manager   VARCHAR2 (1);
         L_grade              VARCHAR2 (20);
         L_Error_Message    VARCHAR2 (1);
    BEGIN
         OPEN c_get_money;
         FETCH c_get_money
         BULK COLLECT INTO L_money;
         CLOSE c_get_money;
         FOR I IN 1 .. L_money.COUNT LOOP
              IF UPPER (L_money (i).subst_model) IN ('N/A', 'NA') THEN
                   GOTO Nextrecord;
              END IF;
              L_NOTIFY_MANAGER (I)   := 'Y';
              L_GRADE (I)              := 'ERROR';
              L_error_message (i)    := 'substitute Model is not N/A or NA';
            <<Nextrecord>>
              NULL;
         END LOOP;
    END;One of the solution for 11gR1 and above...
    DECLARE
         TYPE t_get_money IS TABLE OF c_get_money%ROWTYPE
                                       INDEX BY BINARY_INTEGER;
         L_money              t_get_money;
         L_subst_model        VARCHAR2 (40);
         L_Notify_Manager   VARCHAR2 (1);
         L_grade              VARCHAR2 (20);
         L_Error_Message    VARCHAR2 (1);
    BEGIN
         OPEN c_get_money;
         FETCH c_get_money
         BULK COLLECT INTO L_money;
         CLOSE c_get_money;
         FOR I IN 1 .. L_money.COUNT LOOP
              IF UPPER (L_money (i).subst_model) IN ('N/A', 'NA') THEN
                   CONTINUE;
              END IF;
              L_NOTIFY_MANAGER (I)   := 'Y';
              L_GRADE (I)              := 'ERROR';
              L_error_message (i)    := 'substitute Model is not N/A or NA';
         END LOOP;
    END;

  • How to create Form based on a table to display multiple record

    Hello All,
    Would somebody please tell me how to create a Form based on a single table ,
    to view and insert multi record based on a single table.In other words I would like
    to have a form as shown below ,where the users can Insert,update,delete,query and so on
    Item Id PArt Number List Price
    100 Item-1 $120.oo
    200 Item-2 $150.00
    300 Item-3 $50.00
    I know I can do it as Single Record block using Tabular Format,but multiple record ?????
    Thanks in Anticipation
    Babu

    Try this method,
    1. Creat a Master Detail Form (Custom Layout and not tabular)
    and in the master block select one field.
    2. In the HTML layout for master remove the reference for
    that field(so that nothing will appear in the master block
    of the form).
    3. Before the update (in the Pl/SQL event handler select the 'Save' event and write the following code to avoid updating master block).
    p_session.set_value(p_block_name => 'MASTER_BLOCK',
    p_attribute_name => 'MASTER_ACTION',
    p_value => 'None');
    doSave;
    For eg, let's say
    Master is from 'Dept' table and Detail is from 'Emp' table(with join condition Dept.dept_id = Emp.dept_id). In the master remove everything except dept_id field and in the HTML layout for master remove the reference of the dept_id field(you cannot remove this field physically from the master layout). Now the form will look like multirow form rather than master detail form but only problem with this workaround is 'Detail Action' will be present in the detail block.
    I hope this will help you.
    Thanks
    -Krishnamurthy

  • Multiple records of different types

    Hi could anyone tell me as to what this does???I tried working on it but could not get anywhere with this. Is there any document on this particular query?anyone with knowledge of this can help me out. thanks

    Hi
    What is your really problem my friend? Are you using a file adapter?
    I´m using File Adapter with multiple records of different types and all works fine.
    The secret is (if necessary) to edit the XSD generated by the File Adapter Wizard.

  • How to handle multiple records in BPMN process

    Hi All,
    We are using Oracle BPM 11g.In my requirement,I am using the database adapter to get the data from table and I need to validate the each record and update the status of that record from the BPM Process.But I dont know how to handle if multiple records come at a time.Can anybody please helpout from this problem.
    Thanks in advanced.
    Narasimha Rao.

    Can you have a look at this post: http://redstack.wordpress.com/2010/09/30/iteratingtraversing-arrays-in-bpm/
    It's solving a different problem, but the key is that it's using a multi-instance subprocess to iterate over an array of "things" that need to be acted in. In your case it's the set of results from the db query rather than the set of tests in the example. But the principle is the same. You'd take collection of rows from the DB and process them in a multi-instance subprocess. The text that begins with the following would be good place to start:
    "Now let’s implement the body of our process. We will use the Subprocess object to handle the traversal of the array of tests. Drag a Subprocess from the component palette on the right into the process and drop it on the line between the Start and End nodes."
    In the loop characteristics you'd define whether you want to execute serially or in parallel.

  • How to select multiple records in the ALV POP UP by using oops

    Hi All,
    We have a requirement of ALV POP UP by using the OOPS. How to select the multiple records in the POP UP and After selecting that i want do Inteactive ALV means again one more POP UP in ALV.
    Thanks for help....
    Regards,
    Bharani

    Hello Bharani
    Displaying an ALV list in a popup is by no means different from a list displayed on a main screen. The only thing you need to consider is that you set the right screen level when creating the parent container for the ALV.
    For more details refer to thread in CL_GUI_SPLITTER_CONTAINER  ALV list  is not show in called screen
    " step 1:
      CREATE OBJECT gr_spliter
        EXPORTING
          parent = cl_gui_container=>screen0 " For first popup use: =>screen1
          rows = 1
          columns = 2.
    Regards
      Uwe

  • How to process each records in the derived table which i created using cte table using sql server

    I want to process each row from the CTE table I created, how can I traverse from first row to second row and so on....
    how to process each records in the derived table which i created using  cte table using sql server

    Ideally you would be doing a set based processing rather than traversing row by row as thats more efficient. To answer it specific to your scenario we may need more info. Can you explain with some sample data your exact requirement?
    Please Mark This As Answer if it solved your issue
    Please Mark This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

Maybe you are looking for

  • How to keep the WBS & Order in account assignment tab of SD contract item?

    Hi Experts, If I remove the plant from the shipping tab in the contract item (the contract type is WV), I will be able to enter the WBS or Order in accounting assignment tab. However, if I enter the plant (in order to determine the tax in pricing), t

  • In videos pictures and content do not match

    I have appr 50 videos in my iTunes library. When I use Videos on my iPhone or iPad and chose to go to my Shared library (where I keep all these 50 videos) The videos are all mixed up. The picture showing the video does not match with the name/content

  • Problem with the data plug-in ATF

    Hello everybody, I am trying to load the attached file with Diadem. Normally, it should open thanks to the plug-in ATFX. However, Diadem manages to load it, but when I go through the channels, they all are empty (NO VALUE). One of my collegue tryed t

  • Removing/Deleting Errored Confirmations from SRM 5.0 EC

    Hi, I would like to know how people remove or delete SRM (5.0) Confirmations that end up failing (Error in Process) in the replication process. We have scenarios where our end users will create multiple SRM Confirmations for the same reference docume

  • Saving a rotated file

    Everytime a scan a document that needs to be rotated upright, it lets me do it while I am in the file, HOWEVER, when I save and reopen, is saves as UNROTATED......what am i doing wrong?