I've an exterior program which will generate an xml document out of the db and pass it to BizTalk. Can you really produce a transaction id or something like that(the id the content as with the DB) in order to keep an eye on the content in BizTalk, and store information inside a BizTalk custom Pipeline towards the database using the given transaction id?
I wish to store whether it failes or otherwise, and that i have custom pipelines that catch these details for storing. I shouldn't be based on HAT for error handling.
How's the easiest method to keep an eye on messages in BizTalk, sent from exterior programs that require to keep details about the BizTalk processing? Any link/book tips could be useful too. Thanks!
From an architectural perspective, out of the box frequently the situation, you will find a number of ways to attain what you would like, and just how the answer would seem like will be different greatly based on your exact scenario.
Within BizTalk, the easiest method to track a flow intiated with a particular message may be the interchage id.
The interchange ID is really a contexy property that flows because the processing of the incomig message progresses and it is replicated in one message to a different through the process(es). Technically it's the message id from the received message that began the interchange.
Should you prefer a single ID to group "everything" together, here it is.
If, inside your scenario you will find the choice to return this to your caller it might have the ability to link it to whatever you need (interior and exterior the database).
If you cannot, however the caller can pass the ID it's designated for this request, you are able to update the database record using the interchange ID to link the 2.
Because the processes progresses (succesfully or otherwise) you are able to alwasys return increase that record while you ALWAYS have the interchange id within BizTalk.
I really hope this will make snese?
Maybe it's a positive thing to actually consider what you would like. Most likely you would like the delivering customer/organs and circulatory system to follow along with their message in some manner, but does the status need to be read by a credit card applicatoin or perhaps is it some customers that requires the status from the message?
One of the ways is, like pointed out above, to provide them a correlating interchange id (inside a response message), however what? It is extremely difficult to setup something that the application can query about status that also is simple to keep (regarding process changes). I have built one and you will get details about all of the instances the content passes, however it will not build your customer any "smarter" given that they most likely cannot translate your orchestration, or pipeline, names into something understandable.
Another approach is by using BAM making a site the client may use to locate status of the message, like the majority of delivery company have, DHL for instance. It could need more effort, however i think it's easier to customized the answer for that needs.
With BAM you are able to extract data without altering your BizTalk projects whatsoever. "Just" evaluate your requirements to discover what data to extract, or aggregate, within the BAM-Stand out, export it to BizTalk database, activate and fasten it using the Monitoring Profile Editor.
You'll be able to show important mile gemstones towards the customer in an internet site. I understand it isn't that simple when i referred to above, but it will likely be good :)
Xox Martin Bring
Should you publish a note to BizTalk, it returns for you automatically the SubmissionHandle. This can be a Context property open to you in the receive port. It may then be taken within an orchestration and accustomed to correlate errors to the initial submission.
Optionally, use a two-way receive HTTP port and send back anything you want towards the calling application. You may either return instantly having a message or wait to come back a failure or success according to what happens throughout processing.
Best Of Luck