Monday, July 23, 2007

Couple of BizTalk 2006 Resources

These are worth your attention:

1) BizTalk Server Documenter - generates CHM documentation on BT artifacts (orchestrations, etc.) You'll need the Microsoft's Help Compiler in order to user it as well. Notice that you may need to make modification to the config file - depends on where you have the hcc.exe located. Works like charm with BT 2006, you can choose assemblies or even orchestrations that you want to document. It generates pictorial description of orchestrations too. Extremely helpful!

2) BizTalk Server Pattern Wizard - this one can be a bit tricky to set up and use. After download, execute the "BTPatternsWizardSS\BizTalkPatternWizards\Debug\setup.exe" to install the wizards into your VS. Then start a new project, and find the templates under "Biztalk Projects/Pattern Templates". I also highly recommend reading the "BTPatternsWizardSS\WizardDocumentation.doc" - it contains links to detailed descriptions of the patterns. Finally, there are videos (370MB) available which describe the patterns on examples.

Thursday, July 19, 2007

SharepointServices - crawler error

You may receive "Access Denied" erros in EventLog (Application) from SharepointServices, that it can't crawl... something like "The start address cannot be crawled". Here you can find nice description why. And here is the fix.

Short story: Create a DWORD registry key at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Lsa named DisableLoopbackCheck and set the value to 1, for TRUE, to disable the loopback checking.

BizTalk 2006 - working with WebServices

To effectively call WebService (WS) from BizTalk (BT), you have perform couple of steps. I'm going to list one of the scenarios, where you call WS from orchestration and you need to pass parameters along as well. To make this work, do following:
1) Add WebRefernce to your BT project
2) In the orchestration, add new port and select existing port type (select appropriate WS port in the "Web Port Types" at the bottom. You can either specify now or later.
3) Add Send and Receive shapes to your orchestration
4) Add 2 messages to the orchestration (msgRequest, msgResponse). The message types are in "Web Message Types" - just select appropriate for your method call and request/response.
5) Connect the send/receive shapes with appropriate methods on the port.

This sounds simple enough, but now you have create the request and populate with parameters. This can get tricky, depending on whether you're using primitive types (int, string, etc.) for parameters or complex types. Here is excellent description.
I would only add that in case you work with primitive types and want to simply assign values from some other message, you need to make sure that the fields you want to use are distinguished (otherwise you'll not see them on the message when you "." it)!

Finally, when you deploy, you'll have to create physical port in BT (unless you used "specify now" option). You need to create Send Port, type "SOAP", Send/Receive pipelines are "PassThruTransmit". In the "Configure" section, put the ASMX link to the URL. Note that you can specify authentication there as well, which may be very handy if your WS doesn't allow anonymous access.

Should any errors occur, you'll find them in the Event Viewer - also check for suspended (dehydrated) orchestrations in the BT admin console.