Home » BizTalk ServerRSS

Outbound Edi Batch

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.

 

17 Answers Found

 

Answer 1

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

 

Answer 2

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.

 

Answer 3

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
 

Answer 4

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.

 

Answer 5

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

 

Answer 6

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.
 

Answer 7

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

 

Answer 8

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

 

Answer 9

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

 

Answer 10

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

 

Answer 11

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

 

Answer 12

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

 

Answer 13

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

 

Answer 14

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

 

 

Answer 15

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.

 

Answer 16

Hi,

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

 

Answer 17

Hi Sathish,

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

 
 
Search for  Outbound Edi Batch
 

<< Previous      Next >>


Microsoft   |   Windows   |   Visual Studio   |   Follow us on Twitter