BizTalk Mapper and Altova MapForce are both tools used to data from one schema to another. A schema internally is treated as XML, but may represent a flat file, CSV, a SQL table to stored proc, or a web service request/response message. Typically the job of a B2B developer is to map data from one format to the other. In this blog, I compare mapping from schema “Flight” to schema “FlightNew” using both tools.
BizTalk
Below is a sample BizTalk Map.
BizTalk has various functions called Functoids. Internally, these are implemented in C# embedded in the XSLT code. There is a red concatenate Functoid in the sample above, and two Scripting Component Functoids. A Scripting Component allows you to type or paste-in your own custom C# code. So this is how I implemented the difference in the two dates.
You can right-click on the map properties in the Solution Explorer, and set the desired XML input file. Then right-click the map name in Solution Explorer, and click “Test Map”. After the map runs, you will see some text in the Output window. You can CNTL-CLICK on the output file, then you will then see the results below.
Altova MapForce
MapForce has a “datetime-diff” function, but the output has to go to a field defined with a type of xs:duration. I had actually never heard of this data type before. You can see the “concat” function in XSLT is essentially identical to the one in BizTalk.
Click the “Output” tab under the map to view the conversion of the data to the new schema format:
However, some functions are only supported in C# and Java. When switching to XSLT, I found the function below to be unavailable. You can see the striped lines appear in the function below.
I didn’t have time to try to reimplement that function in XSLT. So below is the same map without being able to compute the difference between ScheduledDateTIme and ActualDateTime.
When in XSLT mode, and XSLT tab appears below the mapper. Below is the view of the XSLT code generated from the visual tool.
One of the advantages of MapForce is that it can build XSLT, and has a two-way editor. You can edit the visual mapper, or edit the XSLT code directly, and the other automatically syncs.
Altova can also generate Java, C# or C++ code to perform the transformation. You can take that code, and call it from your application. MapForce has EDI functionality built in, so you can map for example 850 Purchase Orders into XML data.
One of the advantages of MapForce is that it can build XSLT, and has a two-way editor. You can edit the visual mapper, or edit the XSLT code directly, and the other automatically syncs.
By the way, BizTalk does support XSLT, but once you switch to what they call “Custom XSLT”, you can no longer use the visual “GUI” editor.
So in this overview, we see two ways to map data using two different but similar tools. We saw that the scripting functions can be quite different in the two products.