zoukankan      html  css  js  c++  java
  • [BTS]BizTalk学习之Functoid篇(ID CrossReferences)

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


    任务目标

    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的定义文件。

    BizTalk Functoid ID Cross-References



    定义AppInstance数据

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

    BizTalk Functoid ID Cross-References 


    定义关联

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

    BizTalk Functoid ID Cross-References 


    定义具体的数据

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


    定义导入数据文件

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

    BizTalk Functoid ID Cross-References
     

    执行导入指令

    BTS提供了BTSXRefImport.exe工具。

    BizTalk Functoid ID Cross-References 

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

    BizTalk Functoid ID Cross-References
     

    二 开始定义Schema和Mapping

    定义输入Schema。

    BizTalk Functoid ID Cross-References 

    输出的Schema
    BizTalk Functoid ID Cross-References 

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



    Functoid中的赋值

    BizTalk Functoid ID Cross-References 

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

    BizTalk Functoid ID Cross-References 

    定义一个输入消息实例

    BizTalk Functoid ID Cross-References 

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

    BizTalk Functoid ID Cross-References 

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

    BizTalk Functoid ID Cross-References
     
    Get Application ID 就是取上面视图中appID的值,而Get Common ID就是取commonID的值 。

    下面列举了三次执行结果。为了直观一些,我都放在一起了。
    BizTalk Functoid ID Cross-References
     

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

    BizTalk Functoid ID Cross-References
    BizTalk Functoid ID Cross-References
    BizTalk Functoid ID Cross-References 

    测试结果如下,相当于是Get Application ID的反操作。
    BizTalk Functoid ID Cross-References

    总结

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

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


    感谢

    网友 upzone《Cross Reference Functoid 》


  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/xuzhong/p/785331.html
Copyright © 2011-2022 走看看