Wednesday, December 14, 2011 10:24 PM
So I do know the quick answer to my problem, that is, Modify EDI Receive Pipeline and promote the "ReuseEnvelope" property to True. But it just baffles me that it has to be done this way. Seems too complicated or invasive solution for a relatively simple problem.
Now the question:
I have two BTS 2010 Apps:
1. Takes single EDI's (files) in, via a recieve port and then creates a batch at certain time of day and drops it in another folder with batches.
2. This second app picks up the batched file, open it up, loops through the transaction sets, gathers a list of claim numbers and identification information from each Transaction in the batch and creates a xml file which is sent to a webservice to be filed as "processed" into a custom internal application.
Here is the problem: Application 1 and 2 both resolve to the same party but #1 needs the "Split Interchange...." setting in the agreement or it wont batch the files. but then app #2 needs this setting as "Preserve Interchange...." or it wont recognize the multiple TS Envelope schema i have in app#2 so i can loop through them.
The Split or Preserve setting I'm reffering to is in the Agreement Properties>Interchange Settings>Local Host Settings>Receivers Settings>Inbound batch processing option drop down.
Is there a way to set the Receive ports or the party itself so it can use the interchnage split or preserve according to what app it is?
On that note: I really think this option should not be part of the agreement but part of the receive port because how you want the file to process is not really related to the EDI Header or send receive parties businesses. This way you will be able to process both ways with one party. The Receive port does have an option in pipeline settings called "Preserve Interchange" true or false, but that only works if the message fails to resolve to a party. In my case it does reolve to the party since the header is the same as App #1.
Also in app #2, i do not care about the headers i just need the information in the body. And i know i can use "ReuseEnvelope" context but then again that requires a custom pipeline for app#2.
Is there a creative way to do this without creating custom stuff ??
Thanks for any solutions or ideas in advance.
- Edited by Xeork Wednesday, December 14, 2011 11:44 PM
Tuesday, December 20, 2011 6:28 AM
One simple workaround is to create a copy of original file, then process both files in completly separate ways.
To do so you can use an additional pair of ports: receive -> send before the first receive port.
Leonid Ganeline [BizTalk MVP] BizTalk: Sample: Context Routing and Throttling with orchestration
- Proposed As Answer by Lloyd ZhangMicrosoft Contingent Staff, Moderator Wednesday, December 21, 2011 6:20 AM