XML Repetitive Elements

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
koolsun85
Participant
Posts: 36
Joined: Tue Jun 15, 2010 3:30 pm
Location: Tampa

XML Repetitive Elements

Post by koolsun85 »

I have been going through the XML posts here, but not able to find an appropriate solution.

Here is my issue.
I have a Material(Parent) and its corresponding Plants, Sales Orgs, likewise 3 more children for every material.

The business requirement is that an MQ Message should contain a Material and all its children in single message. As of now, the job is working and sending multiple messages.

Here is the Job Design:

Dataset-->Lkp-->RemoveDups-->Transformer-->XML-->MQ

As per the XML Guide I mentioned the Child IDs as Keys and removed Material as Key in the XML OutPut stage.

Here is the sample XSD.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="MATERIAL" type="MaterialType"/>
<xsd:complexType name="MaterialType">
<xsd:sequence>
<xsd:element name="MATERIAL_NO" type="xsd:string"/>
<xsd:element name="FIELD1" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="FIELD2" type="xsd:string" minOccurs="0"/>
<xsd:element name="FIELD3" type="xsd:double" minOccurs="0"/>
<xsd:element name="FIELD4" type="xsd:dateTime" minOccurs="0"/>

</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MaterialAlternateUomType">
<xsd:sequence>
<xsd:element name="ALT_UOM_CD" type="xsd:string"/>
<xsd:element name="FIELD1" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="FIELD2" type="xsd:string" minOccurs="0"/>
<xsd:element name="FIELD3" type="xsd:double" minOccurs="0"/>
<xsd:element name="FIELD4" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>


But No luck so far, I even tried Parent Key as Trigger Column, with an assumption of its change will trigger a new file, but it did not work either.

Thanks for looking into this.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Example snippets, please - both of what XML you are getting now and what you would like to be getting.
-craig

"You can never have too many knives" -- Logan Nine Fingers
koolsun85
Participant
Posts: 36
Joined: Tue Jun 15, 2010 3:30 pm
Location: Tampa

Post by koolsun85 »

Expected OutPut:


<defns:MATERIAL xmlns:defns="
<defns:MATERIAL_NO>000000000001234567</defns:MATERIAL_NO>
<defns:FIELD1>false</defns:FIELD1>
<defns:FIELD2/>
<defns:FIELD3>0</defns:FIELD3>
<defns:FIELD4/>
<defns:ALT_UOM>
<defns:ALT_UOM_CD>CS</defns:ALT_UOM_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:ALT_UOM>
<defns:ALT_UOM>
<defns:ALT_UOM_CD>EA</defns:ALT_UOM_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:ALT_UOM>
<defns:SALES>
<defns:MATERIAL_ACCT_DET_GRP_CD>Z1</defns:MATERIAL_ACCT_DET_GRP_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:SALES>
<defns:SALES>
<defns:MATERIAL_ACCT_DET_GRP_CD>Z2</defns:MATERIAL_ACCT_DET_GRP_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:SALES>
</defns:MATERIAL>


Actual Generating OutPut:

<defns:MATERIAL xmlns:defns="">
<defns:MATERIAL_NO>000000000001234567</defns:MATERIAL_NO>
<defns:FIELD1>false</defns:FIELD1>
<defns:FIELD2/>
<defns:FIELD3>0</defns:FIELD3>
<defns:FIELD4/>
<defns:ALT_UOM>
<defns:ALT_UOM_CD>CS</defns:ALT_UOM_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:ALT_UOM>
<defns:SALES>
<defns:MATERIAL_ACCT_DET_GRP_CD>Z1</defns:MATERIAL_ACCT_DET_GRP_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:SALES>
</defns:MATERIAL>


<defns:MATERIAL xmlns:defns="">
<defns:MATERIAL_NO>000000000001234567</defns:MATERIAL_NO>
<defns:FIELD1>false</defns:FIELD1>
<defns:FIELD2/>
<defns:FIELD3>0</defns:FIELD3>
<defns:FIELD4/>
<defns:ALT_UOM>
<defns:ALT_UOM_CD>EA</defns:ALT_UOM_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:ALT_UOM>
<defns:SALES>
<defns:MATERIAL_ACCT_DET_GRP_CD>Z1</defns:MATERIAL_ACCT_DET_GRP_CD>
<defns:FIELD1>6</defns:FIELD1>
<defns:FIELD2>1</defns:FIELD2>
<defns:FIELD3>300871406025</defns:FIELD3>
<defns:FIELD4>2010-07-06T13:17:49Z</defns:FIELD4>
</defns:SALES>
</defns:MATERIAL>
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

You have independent repeating child nodes. Find the best practices in the threads here.....study the techniques needed to build multiple nodes and put them together...basically, you build each one separately in their own xmlOutput Stage, then bring them together at the end in a final xmlOutput Stage.
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
kduke
Charter Member
Charter Member
Posts: 5227
Joined: Thu May 29, 2003 9:47 am
Location: Dallas, TX
Contact:

Post by kduke »

If you do a dsjob -report XML project jobname then you see mutiple repeating groups. They have repeating groups for parameters and another for links and row counts.
Mamu Kim
Kalaiselva
Participant
Posts: 13
Joined: Sun Jul 11, 2010 2:34 am

Post by Kalaiselva »

Hi,

I faced the same repeating node issue. I solved it by spitting the repeating nodes into separate XML's and then merge the XML's. finally feed the merged output to parent XML stage.

Thanks
Kalai
Kalai Selvan
koolsun85
Participant
Posts: 36
Joined: Tue Jun 15, 2010 3:30 pm
Location: Tampa

Post by koolsun85 »

I was able to get the file, but with lot of irregularities.
Thanks to the best practices document, at least I have file now, and will start worrying about its format in another thread.
Post Reply