Microsoft KB Archive/325767

= INFO: The Value of HL04 Is Incorrect in BizTalk Server Editor =

Article ID: 325767

Article Last Modified on 6/4/2003

-

APPLIES TO


 * Microsoft BizTalk Server 2000 Standard Edition
 * Microsoft BizTalk Server 2002 Standard Edition

-



This article was previously published under Q325767



SUMMARY
When you use the BizTalk Server Editor to validate a data instance by using the X12 schema, you may receive the following error message:

The value of HL04 is incorrect. The parser failed to convert the document due to processing errors. See the following messages for details.

NOTE: This error may also appear in the BizTalk Server application log when you submit an X12 data instance to BizTalk Server.

Some X12 schemas contain nested Hierarchical Level (HL) segments which require special attention before they are implemented in BizTalk Server. This article discusses how to modify an existing X12 specification with nested HL segments to use with BizTalk Server.



MORE INFORMATION
In some X12 schemas, a document type can contain a recursively nested structure through HL segments. HL segments are nested as children of other HL segments, and integer references are used to maintain an unambiguous hierarchy. The default X12 schemas that are included with BizTalk Server contain only one level for the HL segment (except for the 856 schemas that are installed with BizTalk Server 2002.) To use any of these schemas with data that contains multiple levels of HL segments, you must edit the default schemas to handle these nested levels.

To edit the default schemas, follow these steps:
 * 1) Copy and paste the HLLoop segment as the last child loop to itself. You must do this for as many levels that occur in the data instances that are expected. For example, if you expect data that has HL segments that are five levels deep, you must copy and paste the HLLoop segment four times.
 * 2) Manually edit the source tag identifiers for each element that you copy and paste. Remove the Source Tag Identifier from any looping elements, and then edit the Source Tag Identifier to match the Source Tag Identifier from the same element in the original HL segment from any non-looping elements.
 * 3) Select mutually exclusive code lists on the Code List tab for every HL03 field that is contained in a nested HL segment in the Editor. Mutually non-exclusive code lists for the HL03 field that is contained in a nested HL segment do not cause validation failures in the Editor, but they cause validation failures when a message is processed against the schema in the BizTalk Messaging engine.

To view an example, review the template for the 4010/856 schema that is installed with BizTalk Server 2002. This schema has two levels for the HL segment: HLLoopShipment and HLLoopOrder. Notice that HLLoopOrder is a child of HLLoopShipment and contains the same structure.

To review Item 1, follow these steps:  Open the 856 schema in BizTalk Editor. To do this follow these steps:  Click Start, point to Programs, point to Microsoft BizTalk Server 2002, and then click BizTalk Editor.

NOTE: If you are using Microsoft BizTalk Server 2000, the Program menu points to Microsoft BizTalk Server 2000. Click File, and then click New. Double-click the X12 folder. Double-click the 4010 folder. Double-click 856Schema.xml.</ol> </li> Expand HLLoopShipment, and then expand HLLoopOrder.</li> Examine the element and field structure, and notice that HLLoopShipment and HLLoopOrder are exactly the same.</li></ol>

To review Item 2, follow these steps:
 * 1) With HLLoopShipment expanded, click to select the HL element.
 * 2) In the right pane, click the Parse tab.
 * 3) Notice that the Source Tag Identifier property is set to HL.
 * 4) Under HLLoopOrder, click to select the HL1 element.
 * 5) The Parse tab is still the active tab, but if not click to select the Parse tab.
 * 6) Notice that the Source Tag Identifier property for the HL1 element under HLLoopOrder is the same as the HL element under HLLoopShipment. NOTE: This is important because when you copy and paste the original HLLoop segment as a child to itself, the Source Tag Identifier properties of the newly pasted children have digits appended to them and you must manually edit them to match the original element.

To review Item 3, follow these steps:
 * 1) With HLLoopShipment expanded, expand the HL element, and then click to select HL03.
 * 2) In the right pane, click the Code List tab.
 * 3) Click to select all values that appear in this HL03 field in your data.

The Code List properties also configure the enumeration property for this field, and the Trigger field for the HLLoop parent of the field.

NOTE: You must edit the Code List for each HL03 element at each HL segment level.

<div class="references_section">