on 08-14-2013 11:22 PM
Hi gurus,
following response message come to me from webservice
<RESPONSE>
<HEADER>
<ITEM_HEADER>
<ITEM_ID>10001</ITEM_ID>
<ITEM_CODE>AAA</ITEM_CODE>
</ITEM_HEADER>
<ITEM_HEADER>
<ITEM_ID>10002</ITEM_ID>
<ITEM_CODE>BBB</ITEM_CODE>
</ITEM_HEADER>
<ITEM_HEADER>
<ITEM_ID>10003</ITEM_ID>
<ITEM_CODE>CCC</ITEM_CODE>
</ITEM_HEADER>
<ITEM_HEADER>
<ITEM_ID>10004</ITEM_ID>
<ITEM_CODE>DDD</ITEM_CODE>
</ITEM_HEADER>
</HEADER>
<DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A10</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A20</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A30</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>CCC</ITEM_CODE>
<ITEM_VALUE>C10</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>CCC</ITEM_CODE>
<ITEM_VALUE>C20</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D10</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D20</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D30</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D40</ITEM_VALUE>
</ITEM_DETAIL>
</DETAIL>
</RESPONSE>
This should be summarized in a structure below;
<RESPONSE>
<HEADER_DETAIL>
<GRUOP>
<ITEM>
<ITEM_ID>10001</ITEM_ID>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A10</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10001</ITEM_ID>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A20</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10001</ITEM_ID>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A30</ITEM_VALUE>
</ITEM>
</GRUOP>
<GRUOP>
<ITEM>
<ITEM_ID>10003</ITEM_ID>
<ITEM_CODE>CCC</ITEM_CODE>
<ITEM_VALUE>C10</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10003</ITEM_ID>
<ITEM_CODE>CCC</ITEM_CODE>
<ITEM_VALUE>C20</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10003</ITEM_ID>
<ITEM_CODE>CCC</ITEM_CODE>
<ITEM_VALUE>C30</ITEM_VALUE>
</ITEM>
</GRUOP>
<GRUOP>
<ITEM>
<ITEM_ID>10004</ITEM_ID>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D10</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10004</ITEM_ID>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D20</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10004</ITEM_ID>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D30</ITEM_VALUE>
</ITEM>
<ITEM>
<ITEM_ID>10004</ITEM_ID>
<ITEM_CODE>DDD</ITEM_CODE>
<ITEM_VALUE>D40</ITEM_VALUE>
</ITEM>
</GRUOP>
</HEADER_DETAIL>
</RESPONSE>
value "10002" has no Item_value, therefore it should be ignored. can anyone assist me? Thank you
Hi Peter,
i am assuming you will always get the data in above mentioned style.
check if this helps you.
input and output message
mapping
udf
var1-- ITEM_CODE (segment <ITEM_HEADER>)
var2-- ITEM_CODE (segment <ITEM_DETAIL>)
var3-- ITEM_ID (segment <ITEM_HEADER>)
display queue for ITEM_ID.
Results
Regards,
Muniyappan.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Here what you can do -
1. <ITEM_CODE> -> (Split By, value change) -> <GRUOP>
This will create GROUP segment for each unique ITEM_CODE
2. Map <ITEM_CODE> and <ITEM_VALUE> to corresponding target fields
3. Check for ITEM_CODE from Header and Detail segments and map it to target segment using IFELSE function.
Thanks
Amol
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Peter,
Using ifwithoutElse when the field ITEM CODE in ITEM_DETAIL segment say AAA is equal to the value of field ITEM_CODE in segment <ITEM_HEADER> then map the source field ITEM_ID to target field ITEM_ID. For example in your source:
<HEADER>
<ITEM_HEADER>
<ITEM_ID>10001</ITEM_ID>
<ITEM_CODE>AAA</ITEM_CODE>
</ITEM_HEADER>
<ITEM_HEADER>
</HEADER>
<DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A10</ITEM_VALUE>
</ITEM_DETAIL>
<ITEM_DETAIL>
<ITEM_CODE>AAA</ITEM_CODE>
<ITEM_VALUE>A20</ITEM_VALUE>
Here you can compare when ITEM_CODE in ITEM_DETAIL has value AAA with ITEM_VALUES A10 & A20,you can match from segment above i.e
<ITEM_HEADER>
<ITEM_ID>10001</ITEM_ID>
<ITEM_CODE>AAA</ITEM_CODE>
Try doing it with ifWithoutElse function. If it doesn't work, then you can have a small UDF like below. I haven't tested it properly, but it will give you an idea:
Inputs: ITEM_CODE in segment | <ITEM_DETAIL> as 1st input say var1 |
Execution Type:All values of queue
ITEM_ID in segment <ITEM_HEADER> | as 2nd input | say var2 |
ITEM_CODE in segment <ITEM_HEADER> as 3rd input | say var3 |
for(int i =0;i<var1.length;i++)
{
for(int u = 0;u<var2.length;u++)
{
if(var1[i]==var3[u])
result.addValue(var2[u]);
break;
}
}
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.