Welcome to MSDN Blogs Sign in | Join | Help

How to get the source file name in a pipeline component

In previous entries I have shown how to access Pipeline Context items.  There are a number of 'built in' promoted properties that provide important information.  There are different items for the receive and send pipelines.

 

The 14 receive pipeline items are (including the associated namespace):

 1.  ReceivedFileName (http://schemas.microsoft.com/BizTalk/2003/file-properties)

 2.  InboundTransportLocation (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 3.  InterchangeID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 4.  ReceivePortID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 5.  ReceivePortName (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 6.  WasSolicitResponse (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 7.  AuthenticationRequiredOnReceivePort (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 8.  InboundTransportType (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 9.  LRPMsgBodyTracking (http://schemas.microsoft.com/BizTalk/2003/system-properties)

10. MessageExchangePattern (http://schemas.microsoft.com/BizTalk/2003/system-properties)

11. PortName (http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties)

12. ReceivePipelineID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

13. MessageType (http://schemas.microsoft.com/BizTalk/2003/system-properties)

14. SchemaStrongName (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 

While the 31 send pipeline items are

1.  CopyMode (http://schemas.microsoft.com/BizTalk/2003/file-properties)

2.  LTPMsgBodyTracking (http://schemas.microsoft.com/BizTalk/2003/system-properties)

3.  ReceivedFileName (http://schemas.microsoft.com/BizTalk/2003/file-properties)

4.  SPID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

5.  ActualRetryCount (http://schemas.microsoft.com/BizTalk/2003/system-properties)

6.  FileName (http://schemas.microsoft.com/BizTalk/2003/file-properties)

7.  PartyName (http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties)

8.  ReceivePortName (http://schemas.microsoft.com/BizTalk/2003/system-properties)

9.  WasSolicitResponse (http://schemas.microsoft.com/BizTalk/2003/system-properties)

10. AllowCacheOnWrite (http://schemas.microsoft.com/BizTalk/2003/file-properties)

11. RetryInterval (http://schemas.microsoft.com/BizTalk/2003/system-properties)

12. OutboundTransportCLSID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

13. SPName (http://schemas.microsoft.com/BizTalk/2003/system-properties)

14. InboundTransportLocation (http://schemas.microsoft.com/BizTalk/2003/system-properties)

15. InterchangeID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

16. ReceivePortID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

17. SPTransportID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

18. TransmitPipelineID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

19. AuthenticationRequiredOnReceivePort (http://schemas.microsoft.com/BizTalk/2003/system-properties)

20. InboundTransportType (http://schemas.microsoft.com/BizTalk/2003/system-properties)

21. LRPMsgBodyTracking (http://schemas.microsoft.com/BizTalk/2003/system-properties)

22. MessageExchangePattern (http://schemas.microsoft.com/BizTalk/2003/system-properties)

23. OutboundTransportLocation (http://schemas.microsoft.com/BizTalk/2003/system-properties)

24. PortName (http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties)

25. ReceivePipelineID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

26. SourcePartyID (http://schemas.microsoft.com/BizTalk/2003/system-properties)

27. MessageType (http://schemas.microsoft.com/BizTalk/2003/system-properties)

28. OutboundTransportType (http://schemas.microsoft.com/BizTalk/2003/system-properties)

29. PartNames (http://schemas.microsoft.com/BizTalk/2003/messageagent-properties)

30. RetryCount (http://schemas.microsoft.com/BizTalk/2003/system-properties)

31. SchemaStrongName (http://schemas.microsoft.com/BizTalk/2003/system-properties)

 

 

To get access to these properties you need to get access to the context object.  The following method shell shows how we can do that.

 

public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)

{

IBaseMessageContext context = pInMsg.Context;

 

Place code here to work with the context object (look at this blog entry to get more details on this method)

.

.

.

}

 

Now that we have a method to gain access to the context, what if we want to get access to the internal promoted properties?  We can iterate through all of the default promoted properties by using the context.ReadAt method (which produces the list of the items above).  This method takes an index and returns, through 2 out parameters, the name and namespace of the properties. 

 

We can also use the context.Read method to access the value of each of these promoted properties.  The Read method returns an object type containing the value of the promoted property when passing in the name and namespace of the property.

 

So, to retrieve the source file name we would use this following line of code:

 

string srcFileName = context.Read("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties").ToString();

Published Sunday, October 24, 2004 10:14 PM by skaufman
Filed under:

Comments

# My first Biztalk 2004 Pipeline

Friday, February 11, 2005 9:37 AM by Rolando Ramirez's WebLog

# My first Biztalk 2004 Pipeline

Friday, February 11, 2005 6:34 PM by Rolando Ramirez's WebLog

# Accessing 'promoted properties' in a custom pipeline component

Monday, June 26, 2006 9:02 AM by Rudolf Henning
After I received a request to have BizTalk zip files for some application that must have the data compressed...

# Access message properties inside custom pipeline component

Saturday, July 01, 2006 6:26 PM by Afanaat.nl | Sander Schutten
Just recently I was looking for some default message properties and how to read and write them inside...

# Accessing and Listing Message Context Properties in Pipeline Components

Thursday, August 10, 2006 3:54 AM by Mattias talks about BizTalk, .NET, etc.
Stephen Kaufman has in a blog listed all message properties that you can access when you are in a pipeline...
Anonymous comments are disabled
 
Page view tracker