Populating nested Structures in 501

Using ES 5.01 with Enterprise Integrator 4.6 and Oracle intelligent adapter 4.1.1 on a HPUX platform. I am trying to publish a UDM with nested structures. It has header info, then a struct to hold 0-many lines, and then a “sub” struct to hold 0-many sub line detail rows. In my component I select the line data with a config op, then loop over the output of that operation. Inside the loop, I use a different op to get the details for the sub struct. I then exit the loop and try to map to the UDM. The first struct seems to map fine, but mapping the sub struct from the config op inside the loop produces an error:

Script.java:148 Incompatible type for =. Can’t convert COM.activesw.script.v11.NestOp$out to COM.activesw.script.v11.NestOp$out.

How can I accomplish this? Any ideas are certainly appreciated.

I need to maintain the relationship in the UDM between the line and sub lines so the UDM looks something like:

headerField1
headerField2
lineStruct[0]
lineField1
lineField2
subLineStruct[0]
subLineField1
subLineStruct[1]
subLineField1
lineStruct[1]
.
.
.

Tim,

The EI does not gracefully handle the mapping for operations in a loop that return multiple items as you have found out.

Try wrapping your sub struct operation inside a scripted operation that is called from within your loop. The input to the scripted operation is the data from your line struct you need to call the sub struct op and your output will be a sequence of subLineStruct data which can mirror your sub struct operation output.

The scripted operation output appears as a single item output to the loop (even if the output is a struct sequence) and the mapping can handle this OK, and it keeps all the sub struct data correctly aligned under the parent struct when mapping out from the loop into an event or another operation.

This is the only workaround I have found to this problem in EI. While not the most efficient, it has worked well for me.

Steve

Excellent work around Steven. Tried it and so far it looks very good. Thank you very much. I was able to do this pretty quickly by letting EI create the output fields and mappings with the drag/drop mapping feature. Much, much better than the alternatives I was thinking of trying. Thanks again.