BizTalk Server General - Help with Mapping Scenario

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server General > August 2004 > Help with Mapping Scenario





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Help with Mapping Scenario
Daren

2004-08-30, 2:49 am

Hi

Using correlation I've been able to map values from two source messages to
one destination message, my problem is in comparing all repetitions of a node
in one message for each loop through a repeating strcuture in the other
message. For example the source is:

<inputmessagepart_0>
<ns1:POResponse>
<GUID>12345</GUID>
<ChangeToItemDetail>
<LineNum>1</LineNum>
<ChangesString>Change Qty to 8</ChangesString>
</ChangeToItemDetail>
<ChangeToItemDetail>
<LineNum>1</LineNum>
<ChangesString>Change UnitCost to 0.5</ChangesString>
</ChangeToItemDetail>
</ns1:POResponse>
</inputmessagepart_0>
<inputmessagepart_1>
<ns2:OriginalPO>
<ItemDetail>
<LineNum>1</LineNum>
<Qty>15</Qty>
<UnitCost>1.50</UnitCost>
</ItemDetail>
<ItemDetail>
<LineNum>2</LineNum>
<Qty>25</Qty>
<UnitCost>2.50</UnitCost>
</ItemDetail>
<inputmessagepart_1>
<ns2:OriginalPO>

What I want to be able to do in my mapping is:
while looping through ItemDetails in the OriginalPO message, check if the
<LineNum> matches with any entries for <LineNum> in the repeating
<ChangesToItemDetails> structure in the POResponse message. If there is a
match, extract the <ChangesString>, determine if this is a qty or unitcost
change (I can do this easily with other functoids) and write the numeric
value in the string into the appropriate destination node. If there is not a
match, write the appropriate <Qty> or <UnitCost> value into the destination
node. The problem is that the same line number can appear many times in the
POResponse repeating structure so how do I go through and compare every
repeating node set <ChangesToItemDetail> in the POResponse for each loop
through the OriginalPO <ItemDetail> repeating node set?

I hope that makes sense - any help greatly appreciated.
Daren
Tatyana Yakushev [MSFT]

2004-08-30, 5:55 pm

You have to use scripting function with XSLT Call Template.

Thanks
Tatyana
--------------------
>Thread-Topic: Help with Mapping Scenario
>thread-index: AcSObM7/dSTo3fa0TBCTAqelz2Aa0w==
>X-WBNR-Posting-Host: 144.138.194.134
>From: "=?Utf-8?B?RGFyZW4=?=" <Daren@discussions.microsoft.com>
>Subject: Help with Mapping Scenario
>Date: Mon, 30 Aug 2004 01:39:05 -0700
>Lines: 50
>Message-ID: <5F9DA05B-37F8-467C-A479-51B249474F80@microsoft.com>
>MIME-Version: 1.0
>Content-Type: text/plain;
> charset="Utf-8"
>Content-Transfer-Encoding: 7bit
>X-Newsreader: Microsoft CDO for Windows 2000
>Content-Class: urn:content-classes:message
>Importance: normal
>Priority: normal
>X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
>Newsgroups: microsoft.public.biztalk.general
>NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.1.29
>Path: cpmsftngxa10.phx.gbl!TK2MSFTNGXA03.phx.gbl
>Xref: cpmsftngxa10.phx.gbl microsoft.public.biztalk.general:19138
>X-Tomcat-NG: microsoft.public.biztalk.general
>
>Hi
>
>Using correlation I've been able to map values from two source messages to
>one destination message, my problem is in comparing all repetitions of a node
>in one message for each loop through a repeating strcuture in the other
>message. For example the source is:
>
><inputmessagepart_0>
> <ns1:POResponse>
> <GUID>12345</GUID>
> <ChangeToItemDetail>
> <LineNum>1</LineNum>
> <ChangesString>Change Qty to 8</ChangesString>
> </ChangeToItemDetail>
> <ChangeToItemDetail>
> <LineNum>1</LineNum>
> <ChangesString>Change UnitCost to 0.5</ChangesString>
> </ChangeToItemDetail>
> </ns1:POResponse>
></inputmessagepart_0>
><inputmessagepart_1>
> <ns2:OriginalPO>
> <ItemDetail>
> <LineNum>1</LineNum>
> <Qty>15</Qty>
> <UnitCost>1.50</UnitCost>
> </ItemDetail>
> <ItemDetail>
> <LineNum>2</LineNum>
> <Qty>25</Qty>
> <UnitCost>2.50</UnitCost>
> </ItemDetail>
> <inputmessagepart_1>
><ns2:OriginalPO>
>
>What I want to be able to do in my mapping is:
>while looping through ItemDetails in the OriginalPO message, check if the
><LineNum> matches with any entries for <LineNum> in the repeating
><ChangesToItemDetails> structure in the POResponse message. If there is a
>match, extract the <ChangesString>, determine if this is a qty or unitcost
>change (I can do this easily with other functoids) and write the numeric
>value in the string into the appropriate destination node. If there is not a
>match, write the appropriate <Qty> or <UnitCost> value into the destination
>node. The problem is that the same line number can appear many times in the
>POResponse repeating structure so how do I go through and compare every
>repeating node set <ChangesToItemDetail> in the POResponse for each loop
>through the OriginalPO <ItemDetail> repeating node set?
>
>I hope that makes sense - any help greatly appreciated.
>Daren
>



--

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm

Note: For the benefit of the community-at-large, all responses to this message are best directed to the newsgroup/thread from which they originated.

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com