none
Outbound Edi Batch RRS feed

  • Question

  • Hi All,

    I'm developing a application to transform our business xml to edi batch. I have try the way to publish the edi message to the BizTalk

    build-in  batch orchestration, it works fine, but I could not custome file name, see my another threads http://social.msdn.microsoft.com/Forums/en-US/biztalkediandas2/thread/da45eb58-1915-41c4-823d-536e63a25844.

    Since I still have no way in the file name at the moment. I'm thinking to try it in another way.

    I plan to contruct a Edi batch interchange Xml myself and then use the default EdiSend pipeline to send it out. I plan to contruct a Xml like:

    X12InterchangeXml

    ISA

    GS

    TransactionSet

    X12_00401_850

    .....

    So, my questions are:

    1. Can this solution work in BizTalk?

    2. If it is work, how can we contruct this message? I know that we can add the X12_BatchSchema.xsd to the project. But there are only on node X12InterchangeXml in X12_BatchSchema.xsd, nothing else, how can I map the DelimiterSetSerializedData property or ISA, GS...... segment/element? I know there are another schema X12_ServiceSchemaExtension.xsd contain the ISA, GS sgement, but you know, X12_BatchSchema.xsd, X12_ServiceSchemaExtension.xsd and X12_00401_850.xsd are three individual schema in the project, so I didn't figure out how to use these 3 schemas to construct the batch interchange?

    Please let me know if my understanding is incorrect.

    Any answers would be approciate.

    Thanks.

    Tuesday, December 14, 2010 10:47 AM

Answers

All replies

  • I am not 100% clear on your goal. Are you trying to batch it or use a custom name for the output. If the goal is the second part of my question, then my sugestion is below.

    There are two ways to get the custom file name out of th ebatch. The easiest would be to have a recieve location from an orchestration pick up the file from where the batch puts it and then use the dynamic ports rename the file as you like. The other way would be to use a custom pipeline that you will use at the send port. Below is the link. That may be the better way to go if you are not using the orchestration.

     

    http://blogs.msdn.com/b/brajens/archive/2006/11/25/how-to-develop-biztalk-custom-pipeline-components-part1.aspx


    Please Indicate "Mark as Answer" if this Post has Answered the Question
    Tuesday, December 14, 2010 1:00 PM
  • Thanks for the response. I'm sorry that my expresstion is not clearly.

    As we know, we can use the BizTalk build-in batch orchestration to send out the EDI by batch, my question is: is there any other ways to send out the EDI by batch besides the build-in batch orchestration?

    Thanks.

    Tuesday, December 14, 2010 11:48 PM
  • Please look at http://test.codit.eu/Blog/post/2009/11/10/Outbound-EDI-batching-in-BizTalk-Server-2009.aspx , this provides another approach to create EDI Batch without using BizTalk Batching Orchestrations
    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    Wednesday, December 15, 2010 12:28 AM
  • Hi Sathish,

    Thanks for the response, I have readed the link you provided, I like this idea, but I'm not figured out how to do it.

    I have addedX12_BatchSchema.xsd to the project, but how to construct the EdifactInterchangeXml?  When we develop the single transaction, we just need to map the information to the trasaction schema, like X12_00401_850.xsd . I thougt I could map the information into X12_BatchSchema.xsd , but when I open it, there is only one node inside X12_BatchSchema.xsd , so my question is how to coustruct the EdifactInterchangeXml or X12_00401_850.xsd in orchestration?

    Thanks.

    Wednesday, December 15, 2010 1:29 AM
  • hi kissedi,

     

    I am also having hte same issue what you have.Tried promoting different porperties but could not come to a solution.So i am placin the filename in the Inforsource NM109 and passing it so that the other application can read from it.I will let you once i have a hit.

     

    thanks...

    SPNBizTalk


    Thanks... SPN
    Wednesday, December 15, 2010 1:30 AM
  • hi kissedi,

     

    I am also having hte same issue what you have.Tried promoting different porperties but could not come to a solution.So i am placin the filename in the Inforsource NM109 and passing it so that the other application can read from it.I will let you once i have a hit.

     

    thanks...

    SPNBizTalk


    Thanks... SPN

    Thanks.
    Wednesday, December 15, 2010 2:00 AM
  • Hi kissedi,

    I'm actually the author of the blog post that is linked above regarding the alternative method to perform outbound EDI batching and I came accross this post.

    The InterchangeXml schema (either Edifact or X12) indeed is only a batch schema. It does not contain any nodes, but has some special functionality. To test this, do the following in VS.net: Add the batch schema to a BizTalk project, together with all of the Edifact/X12 schemas you possibly can have within your outbound interchanges. If they are within the same project namespace and you right-click the batch schema to generate an instance, you should get an example of how your instance should look like.
    If everything is working correctly, you should get a batch instance which contains several different Edifact/X12 transaction sets within the InterchangeXml.

    The proposed solution I describe in the blog post is working with an XSLT-based mapping (I don't like to use the mapper), which would allow you to make an XSLT which can handle any order/count of transaction sets within your interchange.

    Hope his helps,
    Pieter

    Wednesday, December 15, 2010 8:34 AM
  • HI Pieter,

    Thanks for the response, I like your solution in the blog.

    I have added the  X12_BatchSchema.xsd to the project, and success to generate an batch instance.

    Your proposed soulution in the blog is about how to map BusinessXml-->InterchangeXml or InterchangeXml-->BusinessXml? Or both? I use Xsl code directly always and don't like the mapper as well.

    What I not figured out is how to map our BusinessXml to InterchangeXml directly, instead of using the build-in batch orchestration to subscribe edi transactions to bath it, because I have trouble in control the file name.

    Thanks

    Wednesday, December 15, 2010 11:32 PM
  • Hi Kissedi,

    In the blog I am talking about "some format" -> InterchangeXml (= outbound batching).
    The XSLT would handle the conversion itself and that is business logic depending on the specific situation.

    To convert your business xml to the interchangexml, you would need to map all of your messages towards their Edifact/X12 counterpart in the edi interchange. For example: the solution I created prior to the blogpost was an SAP IDoc which needed to translate to multiple Edifact DESADV messages and one IFCSUM message at the end of the interchange.
    The solution provides you with the possibility to have complete flexibility on how many messages you will have in the interchange and in which order you put them. It is all determined by the complexity of your mapping xslt.

    Then, to convert the batch instance to an actual EDI file, you just need to add the proper parameters (see the last part of the blog post for that) and let it pass through the EDISend pipeline and you should get a proper file.

    To determine the filename you can overwrite the property FILE.ReceivedFileName for example in an orchestration or custom pipeline.

    Hope this helps.
    Best regards,

    Pieter

    Thursday, December 16, 2010 8:05 PM
  • Hi Pieter,

    I think I got your idea.

    One more question: as you said, there are no schema for the bath message, and we cannot use the mapper, so we have to use the .NET code to transform it, like XslTransform.Transform(), right?

    Thanks

    Thursday, December 16, 2010 11:30 PM
  • Hi Peter,

    You said  "the solution I created prior to the blogpost was an SAP IDoc which needed to translate to multiple Edifact DESADV messages and one IFCSUM message at the end of the interchange." Can you provide the link about this blog?

    Thanks

    Friday, December 17, 2010 3:34 AM
  • Hello,

    The link to the blog post was already mentioned above, but you can find it here as well: 

    http://www.codit.eu/Blog/post/2009/11/10/Outbound-EDI-batching-in-BizTalk-Server-2009.aspx

    Best regards,
    Pieter

    Friday, December 17, 2010 9:33 AM
  • Hi kissedi,

    You can of course use a BTM file to set your source & destination schema, but you can also set a custom xslt file which contains your xslt (see properties of your btm file).

    Best regards,
    Pieter

    Friday, December 17, 2010 9:35 AM
  • Hi Pieter,

    I know that BTM file could set the source & destination shcema, but if I select  X12_BatchSchema.xsd as the destination schema, there are only one segment in X12_BatchSchema.xsd, so I can use the custom xslt to map the transaction within segments to this single segment?

    Thanks

     

    Friday, December 17, 2010 4:32 PM
  • Hi Pieter,

    I'm trying your solution today, when I try to validate/generate instance by X12_BatchSchema.xsd , it failed. Validate/generate instance can only work fine when there are only X12_BatchSchema.xsd and X12_00401_850.xsd schema in the project.

    I have asked this question in another thread, http://social.msdn.microsoft.com/Forums/en-US/biztalkediandas2/thread/ba4d8173-49e7-47d9-8846-935608a980f4 . have you met this issues? How can I fix it?

    ----------------------

    Regardless the issue above, I continue to try the solution as below:

    1. Add bxml.xsd(My business xml schema)  X12_BatchSchema.xsd and X12_00401_850.xsd to the project;

    2. Create a new map, select bxml.xsd as the source schema, select X12_BatchSchema.xsd as the destination schema.

    3. Create a custom xsl to transform bxml to the batch xml, configure this custom xsl to the map  by property--Custom XSL Path.

    4. Add an instance as input, Rigth-click the map-->Test Map.

    Then there are so much errors like:

    Output validation error: Could not find schema information for the attribute 'DelimiterSetSerializedData'.
    Output validation error: Could not find schema information for the element 'http://schemas.microsoft.com/Edi/X12ServiceSchema:ISA'.
    Output validation error: Could not find schema information for the element 'ISA01'.
    Output validation error: Could not find schema information for the element 'ISA02'.
    Output validation error: Could not find schema information for the element 'ISA03'.
    Output validation error: Could not find schema information for the element 'ISA04'.
    Output validation error: Could not find schema information for the element 'ISA05'.
    Output validation error: Could not find schema information for the element 'ISA06'.
    Output validation error: Could not find schema information for the element 'ISA07'.
    Output validation error: Could not find schema information for the element 'ISA08'.
    Output validation error: Could not find schema information for the element 'ISA09'.
    Output validation error: Could not find schema information for the element 'ISA10'.
    Output validation error: Could not find schema information for the element 'ISA11'.
    Output validation error: Could not find schema information for the element 'ISA12'.
    Output validation error: Could not find schema information for the element 'ISA13'.
    Output validation error: Could not find schema information for the element 'ISA14'.
    Output validation error: Could not find schema information for the element 'ISA15'.
    Output validation error: Could not find schema information for the element 'ISA16'.
    Output validation error: Could not find schema information for the element 'FunctionalGroup'.
    Output validation error: Could not find schema information for the attribute 'DocType'.
    ..........

    I check the output file, the structrue is the same as the generate instance. If my understanding of your solution is incorrect, please let me know.

    Thanks for your patience.

    Monday, December 20, 2010 6:25 AM
  • Hi,

    Please refer to http://blog.tsathish.com/?p=166 for creating custom EDI batch. Hope this Solves your issue


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    • Marked as answer by kissedi Friday, January 7, 2011 10:11 AM
    Wednesday, December 22, 2010 4:07 AM
  • Hi Sathish,

    Thank you very much for your solution. I like it.

    • Proposed as answer by SPN Biztalk Monday, January 3, 2011 9:09 PM
    Tuesday, December 28, 2010 1:24 AM
  • I would like to know about your solution. I am looking for am altnernative batching solution in my BTS2010. The party batching take log time for generating 3501 batch of cliams.

    The link is not working. Let me know if ther anyother location to find this.

    Thanks

    • Edited by BuildSystem Friday, February 14, 2014 7:26 PM
    Friday, February 14, 2014 7:26 PM
  • Hi Pieter,

    I went thru your blog and like to try your solution.

    Our existing batching (party/ trading parter) is very time consuming. It take 6 hours to create a file for 3501 batches of claims.

    I was following your steps to building the solution. So I added X12_BatchSchema to my project and try to generate the instance. The output file contains only envolope information there was no information about document schema.

    Could you please send some sample code?

    Thanks 


    • Edited by BuildSystem Friday, February 14, 2014 7:32 PM
    Friday, February 14, 2014 7:32 PM
  • 6 hours to create a batch of 3500 transactions sounds like another problem, meaning not specifically with the Batching Orchestration.  Before you explore a custom solution, I recommend starting a new thread describing your situation.  Maybe we can help with that.
    Saturday, February 15, 2014 4:11 AM