none
Deploy X12 00401_850 to 2 different applications RRS feed

  • Question

  • Hi, I have 2 apps where they need the X12_00401_850, when testing the 2nd app I am getting the following error:

    Cannot locate document specification because multiple schemas matched the message type "http://schemas.microsoft.com/BizTalk/EDI/X12/2006#X12_00401_850"

    I understand that schema type should be unique inan application but it seems that it is unique to the whole plateforme.

    My question is what is needed to be done? I tried to change the node-root name but not able to acheive this, I would appreciate if you can point me to some steps or instructions to acheive this.

    Thanks in advance

    Thursday, August 28, 2014 1:47 PM

Answers

  • I think you're looking at the .Net namespace for the Schema artifact.

    In this case, I'm referring to the Xml namespace.  Open the Schema in the editor, select the <Schema> node, then look in the Properties list.  There, you will find the Target Namespace field, which is the Xml namespace.

    Yes, on the Local Host setting section, the Target namespace is the xml namespace.  Same thing.

    Note, your custom Xml namespace will not appear in the list until at least one schema is deployed and you will have to restart BizTalk Administrator.

    • Marked as answer by Pengzhen Song Wednesday, September 3, 2014 9:00 AM
    Friday, August 29, 2014 3:41 AM

All replies

  • You can find a similar discussion here: http://social.msdn.microsoft.com/Forums/en-US/626498cf-e81b-420d-96ac-83248f279180/biztalk-common-schemas?forum=biztalkgeneral

    As for EDI specifically, first, you cannot change the root node name. That will make the schema effectively invisible to the EDI Disassembler.

    The way to differentiate transactions across different apps is by changing the namespace.  In practice, I always change the namespace for EDI schemas to something owned by the app, meaning not the default Microsoft namespace.  This is fully supported.

    So, what you should do is change the namespace in both of the 850 schemas to something that indicates which app they belong to:

    The, on the Local Host Setting section of the Agreement, you select the appropriate namespace for that Agreement/Trading Partner either by simple changing the Default, or setting it by specific document type.

    Thursday, August 28, 2014 2:44 PM
  • So many thanks. I went through the schema, I can not find a tag for namespace as you can notice in the snippet I pasted hereunder, I noticed that in VS when clicking on the file, in the property pane we have a field called "namespace" which seems default to the project name, did you mean changing this one by "http://x12.850.contoso?. You mentioned "Local Host Setting section of the Agreement", in this section, we have Target namespace " and not namespace 

    Can you please confirm.

     <?xml version="1.0" encoding="utf-16" ?>
    <xs:schema xmlns="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:btsedi="http://schemas.microsoft.com/BizTalk/2005/EdiSchemaEditorExtension" targetNamespace="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:annotation>
    <xs:appinfo>
      <schemaEditorExtension:schemaInfo namespaceAlias="btsedi" extensionClass="Microsoft.BizTalk.Edi.SchemaEditorExtension.EdiSchemaExtension" standardName="EDI" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
      <b:schemaInfo version="1.0" document_type="850" standard="EDI" standards_version="00401" root_reference="X12_00401_850" displayroot_reference="X12_00401_850" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" X12ConditionDesignator_Check="No" />
      </xs:appinfo>
      </xs:annotation>
    <xs:annotation>
      <xs:documentation xml:lang="en">copyright © Microsoft Corporation. All rights reserved.</xs:documentation>
      </xs:annotation>
    <xs:annotation>
      <xs:documentation>Schema name: X12_4010_850</xs:documentation>
      </xs:annotation>
    <xs:element name="X12_00401_850">
    <xs:annotation>
    <xs:appinfo>
      <b:recordInfo structure="delimited" field_order="postfix" delimiter_type="inherit_record" count_ignore="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" notes="Purchase Order" />
      </xs:appinfo>
      </xs:annotation>
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="ST">
    <xs:annotation>
    <xs:appinfo>
      <b:recordInfo notes="Transaction Set Header" />

    Thursday, August 28, 2014 3:30 PM
  • I think you're looking at the .Net namespace for the Schema artifact.

    In this case, I'm referring to the Xml namespace.  Open the Schema in the editor, select the <Schema> node, then look in the Properties list.  There, you will find the Target Namespace field, which is the Xml namespace.

    Yes, on the Local Host setting section, the Target namespace is the xml namespace.  Same thing.

    Note, your custom Xml namespace will not appear in the list until at least one schema is deployed and you will have to restart BizTalk Administrator.

    • Marked as answer by Pengzhen Song Wednesday, September 3, 2014 9:00 AM
    Friday, August 29, 2014 3:41 AM
  • Fantastic, it worked like a charm. Of course, we need to change the MessageType on the sendpot filter as well.
    Friday, August 29, 2014 8:30 AM