Manual batching of outbound documents RRS feed

  • Question

  • I have a set of invoices in XML and I want to send out an EDI batch.  None of the release mechanisms in the batching model works for me however, because the group of invoices is already set.  Ideally, I'd like to just map the invoices to the batch schema and then send them out the EDI send pipeline. 

    I've had a map working but I get errors when the message gets to the send pipeline because I haven't properly setup the X12 interchange XML with the right attributes. 

    I realize the batching is a great feature, but right now it is overhead and I don't want to have to create a batch definition when I have all the data in a single input document and I could create a single output document. 

    First, is this possible and/or supported in BizTalk Server 2010? 

    Second, what schema do I use for the outbound batch?  I've been trying to use the X12InterchangeXml batch schema.

    Third, what additional information do I have to put in the outgoing XML so the EDI send pipeline can correctly create the batch for me and send it out? 

    Thanks for any help or pointers. 



    Free Guest Pass – Experience .NET training the way it should be.

    Monday, March 25, 2013 1:54 PM

All replies

  • Hi,

    I am trying to involve someone familiar with this topic to further look at this issue. There might be some time delay. Appreciate your patience.

    Best Regards,

    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Wednesday, March 27, 2013 6:25 AM
  • Hi Matt,

    Yes, what you want can be done.  At least the plausible variations I'm reading in your request.

    Couple things.  A schema for what the EDI Assembler expects is not actually provided, just the root schema so if you want to see what it looks like, the best course is to 1) create a batch or 2) receive with Preserver Interchange and send it through a pass through.  The Envelope segments are defined in the X12 service schema so building a full batch schema isn't much effort.

    Sorry, I don't remember exactly which but some (not all) fields have to be populated in the envelope.  Check here for DelimiterSetSerializedData info:  The last 4(?) are EDIFACT UNA related.

    If all your invoices are in a single message, mapping should be pretty easy.

    If not, it'll take a bit more effort, which what the Batching Service is really for.  If you want to give the Batching Service a go, you can keep on the lookout for last interchange message and use it to create the batch override control message.  However, this will not guarantee you one-in-one-out.



    Thursday, March 28, 2013 3:19 PM
  • Thanks, that gets me closer. 

    If I create the whole envelope, including IS, IE, GS, GE segments, then it processes and I get the output file.

    Unfortunately, I'm having to hard code the identifiers and control numbers, plus dates, etc.

    When I look at a batch message leaving the batching orchestration, it has placeholders "*" for those values to be replaced.  When I put those in my message and send it to the edi assembler, it suspends the message for invalid characters. 

    Is there one or more context properties I need to write/promote in order for the assembler to replace those placeholders? 

    Thanks again, the information on the DelimiterSetSerializedData got me past my first hurdle, and the schemas got me most of the way there. Now I think I just have this one last thing to resolve. 

    I appreciate the help,


    Pluralsight – Experience .NET training the way it should be.

    Thursday, March 28, 2013 11:43 PM
  • Any further information on this?

    If I create a batch message using the batch, and save it out to file, then try to send it through my send port, I get errors about the ISA and GS placeholder fields (auth info, dates, times, control numbers).

    I'm using a custom pipeline that promotes all the party information (AgreementPartIdForSender, etc.) that I see on a message coming from the batching orchestration and my message looks identical. But for some reason, I keep getting errors about those invalid values. 

    I'd love to get this working. 



    Pluralsight – Experience .NET training the way it should be.

    Tuesday, April 2, 2013 3:29 AM
  • I finally figured out the one missing piece of this.

    I was populating the context property PopulateInterchangeValues with "true" which is a string, and not true, a Boolean.  The code is specifically looking for a Boolean value in the context.  Once I fixed my pipeline component to write a Boolean, all I needed was the relevant party information to resolve the party in the EDI send pipeline.

    Thanks for the pointers to the DelimiterSetSerializedData, that was helpful and should be in the TechNet documentation. 


    Pluralsight – Experience .NET training the way it should be.

    Tuesday, April 9, 2013 9:11 PM