Rants and Raves on Biztalk Server 2004 and 2006
Wouldnt it be nice to click a DLL and see it's internal schemas and objects contained in a Biztalk DLL , IF you have used ildasm for .net asemblies you know what I am talking about . There is a feature in Biztalk for that , YOu ned to register that dll to get the view in your explorer The extension is the BtsAsmExt.dll and is located in the \Program Files\Microsoft BizTalk Server 2004\Developer Tools subdirectory. To enable this functionality regsvr32 "C:\Program Files\Microsoft BizTalk Server 2004\Developer Tools\BtsAsmExt.dll" You will see the BizTalk Server Assemblies icon in Windows Explorer alongside the drive letters. When you click on the BizTalk Server Assemblies you will a list of all of the deployed assemblies. You can then click on each of the assemblies and you will see the BizTalk artifacts that are used in that specific assembly. These includes Orchestrations, Schemas, Maps and Pipelines. In addition, if you double click on an individual artifact, the Type Content Viewer windows pops up and will show you an XML representation. This tool also includes additional functionality. It adds a BizTalk Server Search pane (found under the View ->Explorer Bar->BizTalk Server Search) which lets you search across the deployed assemblies for any of the BizTalk types. So, I could do a search for any schemas that are referenced by pipelines across all assemblies or Correlation Types referenced by Orchestrations found in assembly X.
If you wnated to access context properties in pipelines and have spent needless time figuring out the correct schema for each property here is a comprehensive list
This content is taken as is from <a href="http://blogs.msdn.com/skaufman/"> Stephen Kaufman's WebLog</a>
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; . . . }
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();
Recently I was debugging a Biztalk solution with a friend of mine Rajesh ,and we noticed a curious Masking issue with BizTalk Suppose you give a mask *.XML Which of these files are picked up ? A) Orders.xml B) Orders.XMLTEST C) Orders.XML.BAK D) Orders.TXT E) ORDERS.XMLINFO F) ORDERS.XML_BACKUP I am sure your answer is only A , but in reality Biztalk picks up all files except C and D for a mask *.xml So instead of looking for a file which starts with * and ending with .xml,It seems Biztalk picks up any file which has wild character starts and has .xml in the name not necessarily ending But the contradiction to that is if there is one more DOT [.] Case C which is not picked up So the way the mask gets applied is wild character then matches the last Dot and then matches charecters followwing the dot Is this an intended behaviour or Bug ?
After a long wait and amongst lot of confusion on Whidbey not releasing in 2005 , Now it seems all the three VisualStudio 2005 , SQL Server 2005 and Biztalk Server 2006 is all going to come out in the Week of November 7. This was announced at TechED 2005 Also the Community Tech Preview (CTP) editions are out for BTS 2006.