Search code examples
azure-logic-appsx12

Logic Apps adding Schema to X12 Agreement


I was asked to process a X12 document from an SFTP server which will have multiple GS/ST segments. So I decided to use Logic Apps with Enterprise Integration Pack. I've handled flat files before, but this solution will require me to use the X12. So I got to the point of adding the schemas to the Agreement, but it says there are "No schemas found". I assume by this message, it's not allowing me to use the flat file schema I uploaded. I can't find any documentation on this, other than how to upload, update and delete a schema file. What schema format should I be using for the agreement? Are they available anywhere?


Solution

  • The X12 Agreement would only recognize the schemas that come with BizTalk. The Logic App's Agreements would not recognize "homemade" schemas.

    I eventually found where I can get the BizTalk schemas. Here is what you can do to get it:

    How to Install EDI Schema Files

    What I did was

    1. create a Windows 2016 VM
    2. install VS 2013
    3. install BizTalk 2013 R2 Evaluation
    4. copy the file from C:\Program Files (x86)\Microsoft BizTalk Server 2013 R2\XSD_Schema\EDI\MicrosoftEdiXSDTemplates to my local machine
    5. run the executable on my machine

    FYI: This executable stopped being available with free versions of BizTalk starting with 2016. This is why I used 2013 R2.

    There were some subtle differences between these schemas and the ones the Schema Editor created.

    BizTalk schemas had:

    <xs:schema xmlns:btsedi="http://schemas.microsoft.com/BizTalk/2005/EdiSchemaEditorExtension" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" targetNamespace="http://schemas.microsoft.com/BizTalk/EDI/X12/2006" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    

    The SDK Schema Editor created:

    <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    

    The BizTalk schemas had extra attributes. They had:

    1. targetNamespace="http://schemas.microsoft.com/BizTalk/EDI/X12/2006"
    2. xmlns:btsedi="http://schemas.microsoft.com/BizTalk/2005/EdiSchemaEditorExtension"

    Also to note, the Editor would create the first element as Root, and I believe the X12's wanted a very specific name in the format: X12_{veriosn}_{TransactionSet}. Also the X12 were UTF-8, whereas the Editor created UTF-16.