Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Ack/Nack without orchestration
- This topic has 2 replies, 1 voice, and was last updated 9 years, 2 months ago by
community-content.
-
AuthorPosts
-
-
July 9, 2013 at 10:12 AM #26090
I have scenario where I need a set of send ports to send an ACK when it successfully delivers a file and a NACK otherwise. The send ports are physical ports that are not bound to any logical orchestration ports. I have a few orchestrations that receive untyped messages and promote various properties that the physical send ports filter off of to get the information to the right place.
In order to get ACK/NACKs from the send ports I created a very simple pipeline component that I call from the Encode stage of my send pipelines. This is the Execute statement :
Public Function Execute(ByVal pc As Microsoft.BizTalk.Component.Interop.IPipelineContext, ByVal inmsg As Microsoft.BizTalk.Message.Interop.IBaseMessage) As Microsoft.BizTalk.Message.Interop.IBaseMessage Implements Microsoft.BizTalk.Component.Interop.IComponent.Execute
Dim ackProcessOriginator As String = inmsg.Context.Read(“AckProcessOriginator”, “https://CHN.ASO.Shared.Schemas.Common_Properties”)
inmsg.Context.Promote(“AckRequired”, “http://schemas.microsoft.com/BizTalk/2003/system-properties”, True)
inmsg.Context.Promote(“AckProcessOriginator”, “https://CHN.ASO.Shared.Schemas.Common_Properties”, ackProcessOriginator)
Return inmsg
End Function
AckProcessOriginator is a distinguished field and is in the message context when it gets to the pipeline, however I need it promoted so I can filter on it. The AckRequired property is being set and promoted as expected because I am getting ACK messages back, however the AckProcessOriginator is not promoted (it exists but is not promoted). Can I not promote my own properties to an ACK/NACK message that is generated by BizTalk? I’m guessing ACK/NACKs are a special type of message within BizTalk?
I have a generic orchestration with a direct bound receive port that is filtering for these ACK/NACKs so I can write some success/failure information to BAM. However, I don’t want to create another orchestration down the line that uses Delivery Notification on a logical send port and have this generic orchestration pick up the ACK/NACK messages created by that. I only want it picking up ACK/NACK messages set by these send ports (which may also have more added down the road)
-
July 9, 2013 at 12:27 PM #26091
Hi,
See the following article for a list of properties from the BTS namespace that you can use to build a filter:
http://msdn.microsoft.com/en-us/library/aa559421(v=bts.10).aspx
I suspect that the reason why you cannot promote the property AckProcessOriginator comes from this statement:
“When an ACK or NACK is published, all of the message context properties from the message that caused the ACK/NACK are demoted.”
Good luck.
-
July 12, 2013 at 8:57 AM #26095
That last part:
"When an ACK or NACK is published, all of the message context properties from the message that caused the ACK/NACK are demoted."
Was what I needed to know. Thanks for the help. I'll just have to accept every ack/nack from every port set to us it and then end the orchestration when certain criteria aren't met I suppose.
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.