Wednesday, July 30, 2014

Difference between Value & ID Cross References

Have spent some time to know the differences between “id” and “value” cross referencing and I was able to get the below points which I thought of worth sharing.
At a high level, these two concepts will look similar. But they operate with few differences. Here are those:
#
Value Cross Referencing
Id Cross Referencing
1
These cannot me modified during run-time.
These may be set at run-time. Set Common ID functoid is used for this.
2
This occurs between app types.
This occurs between app. instance types.
3
This cross-referencing is commonly between enumeration fields.
This cross-referencing is commonly between entity unique identifiers.
4
This uses caching mechanism. After any changes in database, we have to restart the corresponding host instances to see the changes.
In this, we will hit the database for every call.
5
It’s a many-to-one mapping.
It’s a one-to-one mapping.
6
The mapping is guaranteed in only one direction.
The mapping is guaranteed in both directions.
7
When you want to use them for the reverse mapping for a value which is mapped to multiple inputs, the first value stored in the xref tables is fetched.
Reverse mapping is always in synch with the initial mapping.
8
Apple – Fruit
Banana – Fruit
Grape – Fruit
The above mapping is allowed. So in this case, the reverse mapping may not give the expected output.
Apple – Fruit
Banana – Fruit
Grape – Fruit
The above mapping is not allowed and are restricted by constraints on the Id cross reference tables.
9
We have to use the GetCommonValue & GetApplicationValue functoids in the maps
We have to use the GetCommonId & GetApplicationId functoids in the maps


BizTalk Map Documenter


An excellent utility which all developer need in their project. 

This EXE file can be used to transform your BizTalk Map into an HTML file for documentation purpose. This can then be copied to an Excel file easily. 

You can find all the details : CodePlex: BizTalk Map Documenter

Issue: Schema not found in BizTalk Type Picker of a BizTalk Map

Today I had a different issue when in I started to work on a BizTalk Sample created by a colleague. It has a source and destination schema, which are to be mapped.
A new map is then created and a source schema is added. When I clicked on Select Destination Schema, I was not able to find the destination schema in the BizTalk Type Picker of the BizTalk Map.


There are no build errors and everything looked fine.
The culprit which led to this is the Build Action property of the schema.
This property will be shown when you select the schema in the Solution Explorer.
If this property is set to None, it will not be included in the Build and hence will not be able to use that in BizTalk Tools.
I made the Build Action to BTSCompile and it showed up in the BizTalk Type Picker of the BizTalk Map.
The reason being for this is that the schema was not created using BizTalk Schema Editor rather using an external tool. Hence when this schema was imported to BizTalk Project, its Build Action property was set to None.
So, care should be taken for the schema that is created outside BizTalk Schema Editor.
Hope it helps.


Cannot create new BizTalk projects in Visual Studio 2008 – “Project Creation Failed”

Sometimes when trying to create new BizTalk project in VS 2008, we may encounter above subjected error. In addition to this error in IDE, warning also will be generated in Application Log as “One or more templates do not match any installed project packages.”
The reason is BizTalk projects are internally treated as C# projects. So during any repair or update to VS 2008, a registry entry will be overwritten.
We have 2 solutions for this issue.
1. Doing a repair to BizTalk Server will solve the issue as during BizTalk installation the registry entry will be updated to support BizTalk Projects. You can either run the BizTalk Installation -setup.exe or directly go to Control Panel->Programs and Features->Add/Remove Programs->BizTalk Server 2009 -> Repair.
2. Change the value of the following registry entry from csproj: to csproj;btproj.
The Registry key will be available at
For 32-bit versions of Visual Studio 2008:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Projects\{FAE04EC0-301F-11d3-BF4B-00C04F79EFBC}\PossibleProjectExtensions

For 64-bit versions of Visual Studio 2008:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Projects\{FAE04EC0-301F-11d3-BF4B-00C04F79EFBC}\PossibleProjectExtensions