Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <h2><strong>Creating the Schema from Scratch</strong></h2> <p>I think using the Flat File Schema Wizard even for moderately complex structures, like this one, is not worth the trouble. My suggestion, is to think about the overall structure, and provide an outline using the Schema Editor.</p> <p>So, you example calls for a schema that has the following structure :</p> <p><em>A single <code>Header</code> record typed <code>00</code>, followed by a sequence of records typed <code>07</code>, <code>08</code>, <code>09</code>and <code>10</code> respectively. Each typed record is a structure in and of itself, which contains any number of repeating records. Finally, the structure ends with a single <code>GroupTrailer</code> record typed <code>16</code>, followed by an overall <code>Trailer</code>record, typed <code>17</code>.</em></p> <p>This maps nicely to the following schema in BizTalk :</p> <p><img src="https://i.stack.imgur.com/g2Bkf.png" alt="Flat File Schema Structure"></p> <p>Now, you need to tweak various properties of the nodes in order to instruct the Flat File Disassembler how to parse your incoming messages.</p> <p><strong>Root Record</strong></p> <p>The <code>Root</code> record is just there to group the various child records together and is required for a properly structured XML document. However, it does not participate in the parsing of the incoming structure.</p> <p>Therefore, you should set the <code>Child Delimiter Type</code> to <code>None</code>.</p> <p><strong>Header, GroupTrailer and Trailer Records</strong></p> <p>The <code>Header</code>, <code>GroupTrailer</code> and <code>Trailer</code> records each occur a single time, so leave their <code>Min Occurs</code> and <code>Max Occurs</code> properties to their default value of <code>1</code>.</p> <p>Furthermore, each of these records are identified by an appropriate <code>Tag Identifier</code> of <code>00</code>, <code>16</code> and <code>17</code> respectively.</p> <p>Finally, those records each end with a trailing CR/LF pair or characters. Therefore, set their <code>Child Delimiter Type</code> properties to <code>Hexadecimal</code>, and their <code>Child Order</code> properties to <code>Postfix</code>.</p> <p><strong>Type07, Type08, Type09 and Type10 Structures</strong></p> <p>This is the tricky part.</p> <p>One way to look at those structures is that they <em>contain</em> repeating records, each delimited with a trailing CR/LF. However, the structures themselves <em>appear only once</em>.</p> <p>Another important point is that you only need a single CR/LF pair as a delimiter for both the structures and their child records. So, the settings of the <code>Child Delimiter Type</code> properties should reflect that.</p> <p>For the <code>Type07</code>, <code>Type08</code>, <code>Type09</code> and <code>Type10</code> records, leave the default settings. That is, set the <code>Child Delimiter Type</code> property to <code>None</code> and the <code>Child Order</code> property to <code>Conditional Default</code>. In particular, there is no <code>Tag Identifier</code> set for these records.</p> <p><strong>Type07_Record, Type08_Record, Type09_Record and Type10_Record Structures</strong></p> <p>However, the <code>Type07_Record</code>, <code>Type08_Record</code>, <code>Type09_Record</code> and <code>Type10_Record</code> are set to occur multiple times. Set their <code>Min Occurs</code> properties to <code>0</code> and <code>Max Occurs</code> properties to <code>unbounded</code>.</p> <p>Additionnaly, each repeating record ends with a trailing CR/LF pair. Therefore, set their <code>Child Delimiter Type</code> properties to <code>Hexadecimal</code>, their <code>Child Order</code> properties to <code>Postfix</code> and their <code>Child Delimiter</code> properties to <code>0x0D 0x0A</code>. </p> <p><strong>Reference</strong></p> <p>For reference, the resulting settings are :</p> <ul> <li><p><code>Root</code> : Delimited, None, Conditional Default.</p></li> <li><p><code>Header</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>00</code>.</p></li> <li><p><code>&lt;Sequence&gt;</code> : <em>(optional)</em>, MinOccurs: 1, MaxOccurs: 1</p></li> <li><p><code>Type07</code> : Delimited, None, Conditional Default.</p></li> <li><p><code>Type07_Record</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>07</code>.</p></li> <li><p><code>Type08</code> : Delimited, None, Conditional Default.</p></li> <li><p><code>Type08_Record</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>08</code>.</p></li> <li><p><code>Type09</code> : Delimited, None, Conditional Default.</p></li> <li><p><code>Type09_Record</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>09</code>.</p></li> <li><p><code>Type10</code> : Delimited, None, Conditional Default.</p></li> <li><p><code>Type10_Record</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>10</code>.</p></li> <li><p><code>GroupTrailer</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>16</code>.</p></li> <li><p><code>Trailer</code> : Delimited, Hexadecimal, <code>0x0D 0x0A</code>, Postfix, Tag Identifier <code>17</code>.</p></li> </ul>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload