Array of data in Insert Activity in OSB
ShoaibMAug 16 2012 — edited Aug 17 2012Hi!
my scenario is as follows:
-- Input is coming from MFL( can be one or more record), then i am transforming it to std format using EBO( MFL-EBO ) then from EBO to Database Tables(one or more records at a time can be inserted).
-- I have 3 Proxy services for each of the operations mentioned above.
In the first service I am using a for each loop in that by identifying number of records in the input, I am trying to generate unique sequence_no for one of the database column.
I am able to generate unique sequence_no for each record but when when I try to insert each sequence number into each unique record I am getting the following output.
<ReceiptAdviceRoot>
<ReceiptAdvGrp>
<sequence_no>1259.0</sequence_no>
<sequence_no>1260.0</sequence_no>
<sequence_no>1261.0</sequence_no>
<SYSHAN>1111</SYSHAN>
<SYEKCO>1234</SYEKCO>
<SYEDCT>22222</SYEDCT>
<SYDEL1>555</SYDEL1>
<SYDEL2>888</SYDEL2>
</ReceiptAdvGrp>
<ReceiptAdvGrp>
<sequence_no>1259.0</sequence_no>
<sequence_no>1260.0</sequence_no>
<sequence_no>1261.0</sequence_no>
<SYSHAN>2222</SYSHAN>
<SYEKCO>1111</SYEKCO>
<SYEDCT>22322</SYEDCT>
<SYDEL1>535</SYDEL1>
<SYDEL2>828</SYDEL2>
</ReceiptAdvGrp>
<ReceiptAdvGrp>
<sequence_no>1259.0</sequence_no>
<sequence_no>1260.0</sequence_no>
<sequence_no>1261.0</sequence_no>
<SYSHAN>3333</SYSHAN>
<SYEKCO>1111</SYEKCO>
<SYEDCT>22522</SYEDCT>
<SYDEL1>545</SYDEL1>
<SYDEL2>838</SYDEL2>
</ReceiptAdvGrp>
</ReceiptAdviceRoot>
-What my required Output is.....
<ReceiptAdviceRoot>
<ReceiptAdvGrp>
<sequence_no>1259.0</sequence_no>
<SYSHAN>1111</SYSHAN>
<SYEKCO>1234</SYEKCO>
<SYEDCT>22222</SYEDCT>
<SYDEL1>555</SYDEL1>
<SYDEL2>888</SYDEL2>
</ReceiptAdvGrp>
<ReceiptAdvGrp>
<sequence_no>1260.0</sequence_no>
<SYSHAN>2222</SYSHAN>
<SYEKCO>1111</SYEKCO>
<SYEDCT>22322</SYEDCT>
<SYDEL1>535</SYDEL1>
<SYDEL2>828</SYDEL2>
</ReceiptAdvGrp>
<ReceiptAdvGrp>
<sequence_no>1261.0</sequence_no>
<SYSHAN>3333</SYSHAN>
<SYEKCO>1111</SYEKCO>
<SYEDCT>22522</SYEDCT>
<SYDEL1>545</SYDEL1>
<SYDEL2>838</SYDEL2>
</ReceiptAdvGrp>
</ReceiptAdviceRoot>
I have tried using ForEach Index value in Expression of Insert activity it also gives me some error of undefined $index variable.
So can I target one of my *“Multiple Occurring”* element in Insert Activity.
My for each structure is like this:
for Each [recAdvVar] in [ ./ReceiptAdviceRoot/ReceiptAdvGrp] of [ body ]
Indexed by [ index ] with total count in [ recAdvCount ]
Do (
assign [fn-bea:execute-sql('jdbc/soaosbDatabase','collection', 'select recadv_seq.nextval from dual')] to [seq_no]
Insert [ <sequence_no>{data($seq_no)}</sequence_no> ] [ before ] [./ReceiptAdviceRoot/ReceiptAdvGrp/SYSHAN ] in [ body ]
)
Regards
ShoaibM