早在三周前,就已经收集了所有有关Cross-Reference Functoid的资源,虽然现在看来,它并不是很难,但想真正的应用它,还是需要花费一些心思的研究一下,不过,托了三周时间,还是写完了[BTS]BizTalk学习之Functoid篇(ID Cross-References)


任务目标

1.数据如何导入
2.使用Get Application ID Functoid
3.使用Get Common ID Functoid
4.测试Mapping
5.总结应该场景


一. 数据导入

就象前面的《[BTS]BizTalk学习之Functoid篇(Database Lookup) 》一样,Cross-Reference也是需要数据库表的,只不过,它的数据定义有自己的规则,并且数据是保存在BizTalkMgmtDB中,表以xref_开头。

定义Application Type数据

ApplicationType:应用类型,可以理解成应用程序名或系统名。
我是程序员,我把它当成类名(Class MyClass)
这个名称必须是唯一的,不能重复。
下面是一个AppType的定义文件。

[BTS]BizTalk学习之Functoid篇(ID Cross-References)



定义AppInstance数据

instance:应用实例,一个应用的实例名,也必须是唯一的。
type:就是前面我们定义的应用名称
我理解成一个类的实例(MyClass c1 = new MyClass())
数据定义文件如下:

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 


定义关联

name:关联的名称
(没想好怎么说)

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 


定义具体的数据

commonID:通用ID号
appID:应用ID号
我理解成类中的一个索引。
在后面,我们需要这需ID,来相互转换。
数据定义文件如下:
[BTS]BizTalk学习之Functoid篇(ID Cross-References) 


定义导入数据文件

内容比较简单,对应相应的文件路径就可以了。

[BTS]BizTalk学习之Functoid篇(ID Cross-References)
 

执行导入指令

BTS提供了BTSXRefImport.exe工具。

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

导入后,数据可以在BTSMgmtDB中找到。我简单使用了一个视图,显示它们的关系和数据。

[BTS]BizTalk学习之Functoid篇(ID Cross-References)
 

二 开始定义Schema和Mapping

定义输入Schema。

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

输出的Schema
[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

创建一个Mapping文件,托入一个Get Application ID Functoid。

[BTS]BizTalk学习之Functoid篇(ID Cross-References)

Functoid中的赋值

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

使用先前网友给我提的意思,直接用Mapping中的Test功能来测试。

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

定义一个输入消息实例

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

执行测试后执行结果如下:

[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

如果我用数据库查询的方式显示一下,就是下面的样子。

[BTS]BizTalk学习之Functoid篇(ID Cross-References)
 
Get Application ID 就是取上面视图中appID的值,而Get Common ID就是取commonID的值 。

下面列举了三次执行结果。为了直观一些,我都放在一起了。
[BTS]BizTalk学习之Functoid篇(ID Cross-References)
 

Get Common ID 测试, 与Get Application ID的方式差不多,这里,只需要修改一下输入数据, 修改Mapping中的functoid,这里就不再详细说明了。
看看图就懂了。

[BTS]BizTalk学习之Functoid篇(ID Cross-References)
[BTS]BizTalk学习之Functoid篇(ID Cross-References)
[BTS]BizTalk学习之Functoid篇(ID Cross-References) 

测试结果如下,相当于是Get Application ID的反操作。
[BTS]BizTalk学习之Functoid篇(ID Cross-References)

总结

        Cross-Reference适合应用于一个消息中某节点的值,在不同应用程序或系统中的显示值不一至时的映射中。
比如都是表示优先级的节点,可能在App1中用1,2,3,4,5表示;在App2中用最高,高,一般,低,极低;
当你要从App1的消息映射成App2的消息时,用Cross-Reference是最适合的了。

        经过测试,直接修改数据库中的记录后,新的数据可以直接被Mapping中使用。


感谢

网友 upzone《Cross Reference Functoid 》


转载于:https://www.cnblogs.com/xuzhong/archive/2007/06/16/785331.html

相关文章:

  • 2021-06-26
  • 2022-01-28
  • 2022-02-15
  • 2022-02-15
  • 2021-06-26
  • 2022-01-11
  • 2022-01-25
  • 2021-05-23
猜你喜欢
  • 2021-12-17
  • 2021-12-23
  • 2022-01-30
  • 2021-11-25
  • 2021-10-10
  • 2022-01-31
相关资源
相似解决方案