how to use the BizTalk Flat File Mapping Wizard for nested repeating items?

这一生的挚爱 提交于 2019-12-13 18:48:51

问题


I have a flat file with some repeating sections in it, and I'm confused how to create the schema via the BT flat file mapping wizard. The file looks like this:

001,bunch of data
002,bunch of data
006,bunch of data
006A,bunch of data
006B,bunch of data
006B,bunch of data
006,bunch of data
006A,bunch of data
006B,bunch of data

As you can see, the 006* records can repeat. I'm going to want to wind up with XML that looks like this:

<001Stuff>...</001Stuff>
<002Stuff>...</002Stuff>
<006Loop>
   <006Stuff>...</006Stuff>
   <006AStuff>...</006AStuff>
   <006BStuff>...</006BStuff>
   <006BStuff>...</006BStuff>
</006Loop>
<006Loop>
   <006Stuff>...</006Stuff>
   <006AStuff>...</006AStuff>
   <006BStuff>...</006BStuff>
</006Loop>

Obviously I can't just set the first group of 006* records to "Repeating record" and Ignore the second set. I'm used to dealing with single repeating rows via the wizard (i.e. another 006 row right after the first one) and not nested things like this - any suggestions on how to proceed? Thanks!


回答1:


Working with the Flat File Schema Wizard is quite hard and there is only so much it can help you with. I always seem to have to tweak its output a little bit.

In order to make things a little bit easier, I suggest you should restrict your sample document to a single occurrence of the whole <006> structure. You will not have to set many lines to Ignored using the Flat File Schema Wizard :

001,bunch of data
002,bunch of data
006,bunch of data
006A,bunch of data
006B,bunch of data
006B,bunch of data

Next, each repeating structure should be wrapped inside a corresponding Repeating Record in the definition of your Xml Schema.

Please, note that you can always run the Flat File Schema Wizard recursively on nested structures to have more fine-grained control. So I would suggest, first, to run the wizard with an all-encompassing repeating <006> structure, like so :

Then, you can right click on the structure, and provide a more detailed definition of nested child structures, only highlighting a subset of the sample contents, like so:

Then, the most important part: you need to tweak the Child Order property to Conditional Default for both repeating structures, because there is only one empty line at the end of your document file and the Wizard cannot help you out with this situation.

For reference, your resulting structure should look like so:

With the following settings:

  • BunchOfStuff (Root) : Delimited, 0x0D 0x0A, Suffix.
  • _001Stuff : Delimited, ,, Prefix, Tag Identifier 001.
  • _002Stuff : Delimited, ,, Prefix, Tag Identifier 002.
  • _006Loop : Delimited, 0x0D 0x0A, Conditional Default.
  • _006Stuff : Delimited, ,, Prefix, Tag Identifier 006.
  • _006AStuff : Delimited, ,, Prefix, Tag Identifier 006A.
  • _006BLoop : Delimited, 0x0D 0x0A, Conditional Default.
  • _006BStuff : Delimited, ,, Prefix, Tag Identifier 006B.

Hope this helps.




回答2:


Treat everything from the first start of the first 006, record to the start of the second 006, record as one record. When you define 006 record, set it up as a repeating record also. This should create a node for each 660, group and nodes for each 600 under it.

That is what I would try.

Here is my output after 2 minutes of work. Except for the node/element names I think it is what you want. You would still have to create seperate elements for each of the fields in your data.

<_x0030_01 xmlns="">001,bunch of data <_x0030_02 xmlns="">002,bunch of data <_x0030_06 xmlns=""> <_x0030_06_Child1>bunch of data <_x0030_06_Child2> <_x0030_06_Child2_Child1>A,bunch of data <_x0030_06_Child2> <_x0030_06_Child2_Child1>B,bunch of data <_x0030_06_Child2> <_x0030_06_Child2_Child1>B,bunch of data <_x0030_06 xmlns=""> <_x0030_06_Child1>bunch of data <_x0030_06_Child2> <_x0030_06_Child2_Child1>A,bunch of data <_x0030_06_Child2> <_x0030_06_Child2_Child1>B,bunch of data



来源:https://stackoverflow.com/questions/5022251/how-to-use-the-biztalk-flat-file-mapping-wizard-for-nested-repeating-items

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!