Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Software > Biz Talk NonXML > BizTalk 2002 --...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 2 Topic 918 of 978
Post > Topic >>

BizTalk 2002 --> 2006 map migration issues - value flattening/looping

by "Bardo" <bryn@[EMAIL PROTECTED] > Apr 2, 2007 at 04:45 PM

Hi all,



Sorry this is a long post - hard to explain this stuff! I tried to attach
an
image to help but it is too large to attach.

We have migrated our 2002 maps to 2006.  The inbound schemas are EDI and
therefore are heavy on looping, which we flatten out.

As per the BTS 2006 do***entation
(ms-help://MS.BTS.2006/BTS06Developing/html/fc5b3ac9-28c6-41df-b779-15a8c3188528.htm):

"When you migrate a map from previous versions of BizTalk Server to
BizTalk
Server 2006, any functoids included in the map are also migrated. If the
functoids you migrate do not include Scripting functoids, no additional
migration tasks are required."

Therefore, we migrated our maps and converted embedded VBScript to C#. 
From
the above, this is the only task required for map migration.  However.

As per
ms-help://MS.BTS.2006/BTS06DevReference/html/e03c96d0-9215-496b-ab53-a385f1cdcae0.htm

"The Looping and Value Mapping (Flattening) functoids should not be used
together. If both are used together, it results in a compiled map that
assumed there is no source looping dependency for the target nodes that
are
below the Looping functoid."

Our issue is that we were using these 2 functoids together frequently in
2002 without concern.  However, I can't find any 2002 do***entation
indicating they shouldn't have been used together, as is the case with
2006.

Now we have several maps which post migration perform incorrect logic
regarding flattening.  When we remove the looping functoid, it solves the
issue in some simple cases, but introduces issues in more complex
scenarios.

Specifically, we have a "DOCLoop" which repeats. We are then flattening
each
inbound DOCLoop to a
SINGLE output DOCLoop.  The looping functoid we are using tells the mapper
which output node we are trying to flatten into.
This is required due to the source DOCLoop actually being a child of a
repeating NADLoop, which we are wanting to map to the output but NOT
flatten
it.  Therefore we have a situation where both inbound records repeat, but
only the child should be flattened.  If in BTS 2006 you cannot use these 2
functoids together, how on earth do you tell the mapper you want the
NADLoop
to loop (without using a looping functoid) while at the same time flatten
the DOCLoop which is a child of the NADLoop?

Input data:

<DOCLoop>
      <DOC>
        <C002_1>
          <e1001_1>706</e1001_1>
        </C002_1>
        <C503>
          <e1373>26</e1373>
        </C503>
        <e1220>3</e1220>
      </DOC>
    </DOCLoop>
    <DOCLoop>
      <DOC>
        <C002_1>
          <e1001_1>707</e1001_1>
        </C002_1>
        <C503>
          <e1373>26</e1373>
        </C503>
        <e1220>6</e1220>
      </DOC>
    </DOCLoop>

Expected output data (currently output from BTS2002):

<DOCLoop>
   <DOC>
    <DocCodeE1001>705</DocCodeE1001>
    <DocStatusE1373>26</DocStatusE1373>
    <NoOfCopiesE1220>6</NoOfCopiesE1220>
    <NoOfOriginalsE1218>3</NoOfOriginalsE1218>
   </DOC>
  </DOCLoop>

Once this map is migrated, the output DOC within the DOCLoop is only being
populated with data from the FIRST input DOCLoop record. I.e. the
subsequent
ones are NOT being flattened in.

Result (BTS2006):

<DOCLoop>
   <DOC>
    <DocCodeE1001>705</DocCodeE1001>
    <NoOfOriginalsE1218>3</NoOfOriginalsE1218>
   </DOC>
  </DOCLoop>

This is, from my experimentation with other maps, due to the Looping
functoid and the Value Mapping Functoid being used together (NO LONGER
ALLOWED).  However, when the looping functoid from DOCLoop to DOC is
removed, the mapper now outputs the data into two DOC nodes:

<DOCLoop>
   <DOC>
    <DocCodeE1001>705</DocCodeE1001>
    <DocStatusE1373>26</DocStatusE1373>
    <NoOfOriginalsE1218>3</NoOfOriginalsE1218>
   </DOC>
   <DOC>
    <NoOfCopiesE1220>6</NoOfCopiesE1220>
   </DOC>
  </DOCLoop>

Anyone have any ideas how to get the BTS2006 mapper to output with the
same
structure as 2002 in this scenario?
Has anyone else had trouble migrating maps due to flattening loops?
This is just one example of the issues it is causing.  We are having
others
(possibly more complex).

Sorry if too much or not enough detail this is a very hard situation to
try
and explain.

Cheers,

Bardo
 




 2 Posts in Topic:
BizTalk 2002 --> 2006 map migration issues - value flattening/lo
"Bardo" <bry  2007-04-02 16:45:31 
RE: BizTalk 2002 --> 2006 map migration issues - value flattenin
"Alex"<aruba  2007-10-23 19:36:27 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Thu Nov 20 19:23:26 CST 2008.