本系列初步打算总共分为9篇,第一篇先写些比较简单的,后面会由浅入深,通过这个系列向大家介绍一些BizTalk在2010这个版本中功能上的改进,欢迎大家拍砖!~废话不多说了,开始第一篇的介绍。
在 BizTalk Server 2010 中,为了帮助用户处理复杂映射,BizTalk 映射器引入了一组可用性增强功能。本篇文章将介绍BizTalk Server 2010 映射器中的增强功能:
支持剪切、复制和粘贴
支持在页(Page)间移动Functoid和链接
增强的Functoid配置界面
自动链接架构元素
架构链接的智能感应
优化显示映射窗口中的链接
将选定对象置于视图中
突出选定对象
Grid Preview
关联视图
支持搜索
目前我们有一个已经完成的BizTalk项目(Solution),在这个项目中,有很多的链接(Link)和Functoid是可以重复使用的,为方便理解,我们暂且将这个项目命名为“Abandoned Solution”。同时我们还拥有另一个全新的BizTalk项目(Solution),该项目是一个全新的项目,我们将其命名为“MapLab”,下面我们将利用BizTalk Server 2010中映射器的一些全新的功能去开发这个新项目“MapLab”。
首先让我们先来看一下“MapLab”项目中的内容,如下图所示,“MapLab”项目包含两个工程(Project):MapLab.Maps和MapLab.Schema,在MapLab.Maps中对MapLab.Schema进行了引用。
我们再来看一下之前已经完成的“Abandoned Solution”项目,“Abandoned Solution”项目包含两个架构文件(SalesOrder.xsd和SalesOrder_FF.xsd)和一个映射文件(SalesOrder_FF_to_SalesOrder_XML.btm)。这个Map实现了两个Schema之间的关系匹配,如下图所示:
下面我们来看看BizTalk Server 2010的新功能为我们带来了便利
链接的剪切、复制和粘贴:
现在,我们要在新的项目“MapLab”中实现上图中同样的映射关系以及使用相同的Functoid。
1. 打开“Abandoned Solution”项目,选择所需的映射链接和Functoid,我们可以在映射窗口中用鼠标拖拽来框选这些链接和Functoid,或者也可以按住CTRL键逐个选择,选择好之后右键->复制或CTRL + C进行复制。
2. 在“MapLab”项目中,打开SalesOrderFF_to_SalesOrder映射文件,在映射窗口中,右键->粘贴或CTRL + V,这时我们可以看到,BizTalk将刚才复制的链接和Functoid粘贴到了新项目当中,并且自动建立了两个Schema间的匹配关系。
3. 我们给Page 1重新命名为“SalesOrderFF_to_SalesOrder”,随后按下CTRL + M CTRL + A创建一个新的Page,按F2将其命名为CustomerInfo,重复上述步骤我们再建立一个新Page并重命名为Items,怎么样?在用户体验上是不是感觉比以前要方便很多呢?这些快捷键也是BizTalk 2010中新添加的功能,在细节上帮助我们提升了开发效率。
支持在页(Page)间移动Functoid和链接
还记得刚才我们创建的两个新的Page么?对,没错,CustomerInfo和Items,这两个Page现在还没有任何的内容,这里的内容指的是Functoid和链接,在项目开发过程中,重复的劳动是我们每个人都不愿意看到的,如要避免这种情况的发生,就需要有一个强大工具为我们提供一条捷径才行,在这里我会带着大家慢慢去发现这条捷径。
1. 首先在CustomerInfo页上建立如下4个映射关系,稍后我们会把这4个映射关系也建立到Items页上面,难道使用相同的方法么?当然不是了,我们的目标是 - 要避免重复的劳动(呵呵,当然也要没有蛀牙)。
Source Element (CustomerInfo)
Destination Element (Residence)
Address
Street
Town
City
Region
State
ZipCode
PostalCode
2. 在CustomerInfo页上建立好映射关系之后,下面我们选中这4个映射关系的链接,然后点击右键->移动到页(Move To Page),在Move To Page的对话框中,选择Items页,点击OK,至此,我们已经找到了一条捷径,让我们不用再去重复之前的劳动,可以看到在Items页中已经自动创建好了这4个映射关系。
3. 还挺方便的吧?这还不够,我们还可以对那些Functoids进行移动,有的人问Functoids是什么?它是工具箱当中的一些小函数块,转换当中的一些操作可以通过它来实现,BizTalk为我们提供了很多这样的函数块,比如求平均值、字符串格式的转换,到数据库轮询数据表等等等等…还有一个特殊的Functoid,叫做Scripting,顾名思义在这里我们可以自己编写C#、JS、VB以及XSLT等代码来实现映射当中的一些转换规则。对Functoid做了个非常简单的介绍,回到我们的项目当中,打开我们假设之前完成的那个项目,还记得叫什么来着不?“Abandoned Solution”,我们现在需要把它里面用来转换数据的Functoid进行复用,里面的代码和数据库轮询条件不会让我们重新再写一遍吧?当然不会,我们可以将这些Functoid复制粘贴到现在正在开发的项目当中,这些规则也都相应的自动匹配到了每一个字段上面。