早在三周前,就已经收集了所有有关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的定义文件。

定义AppInstance数据

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

定义关联

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

定义具体的数据

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

定义导入数据文件

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

执行导入指令

BTS提供了BTSXRefImport.exe工具。

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

二 开始定义Schema和Mapping

定义输入Schema。

输出的Schema

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

Functoid中的赋值

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

定义一个输入消息实例

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

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


 
Get Application ID 就是取上面视图中appID的值,而Get Common ID就是取commonID的值 。

下面列举了三次执行结果。为了直观一些,我都放在一起了。

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



测试结果如下,相当于是Get Application ID的反操作。

总结

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

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

感谢

网友 upzone 的 《Cross Reference Functoid 》

[BTS]BizTalk学习之Functoid篇(ID Cross-References)相关推荐

  1. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  2. 计算机视觉面试宝典--深度学习机器学习基础篇(四)

    计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...

  3. Vue学习笔记进阶篇——Render函数

    本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编 ...

  4. Vue学习笔记入门篇——数据及DOM

    本文为转载,原文:Vue学习笔记入门篇--数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter ...

  5. MonoRail学习-介绍篇(一)

    MonoRail学习-介绍篇 刚刚结束了使用Castle MonoRail的一个项目,所以想将在项目中的一些片段大家一起共享一样.由于这是一个网站项目,所以使用Monorail,因为他使用MVC模式, ...

  6. Nhibernate学习之many-to-many篇

    学习目的: 通过进一步学习Nhibernate基础知识,掌握用Nhiberate实现多对多的业务逻辑 开发环境+必要准备 开发环境: windows 2003,Visual studio .Net 2 ...

  7. Vue学习笔记进阶篇——多元素及多组件过渡

    本文为转载,原文:Vue学习笔记进阶篇--多元素及多组件过渡 多元素的过渡 对于原生标签可以使用 v-if/v-else.但是有一点需要注意: 当有相同标签名的元素切换时,需要通过 key 特性设置唯 ...

  8. Kubernetes学习-K8S安装篇-Kubeadm安装高可用K8S集群

    Kubernetes学习-K8S安装篇-Kubeadm高可用安装K8S集群 1. Kubernetes 高可用安装 1.1 kubeadm高可用安装k8s集群1.23.1 1.1.1 基本环境配置 1 ...

  9. 渗透学习-SQL注入篇-基础知识的学习(持续更新中)

    提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.SQL注入产生的原因 二.手工注入大致过程 1.判断注入点: 2.猜解列名 3.猜解能 ...

最新文章

  1. Hibernate缓存原理与策略 Hibernate缓存原理:
  2. 独家 | 零售业中的惊涛骇浪——人工智能、机器学习和大数据
  3. 北京周聪项目客商支付join用法
  4. java和python的语法有什么区别?
  5. peewee创建mysql_python – peewee MySQL,如何创建包装SQL构建的ins的自定义字段类型?...
  6. html字段隐藏,如何刮取动态隐藏的HTML字段(UuViewState)值?
  7. Caffe中的卷积实现
  8. 2022中国物联网行业研究报告
  9. 如何识别一个人是web前端程序员
  10. mysql主从同步触发器_Mysql 主从复制触发器问题
  11. [渝粤教育] 广东-国家-开放大学 21秋期末考试市场营销10256k2
  12. CentOS 7.x 安装教程、硬盘分区、LVM、网络配置、软件源配置、制作USB Disk、U盘安装、网络安装...
  13. Android 编写测试用例
  14. 计算机公式计算误差,如何在Excel2016中计算方差和均方误差?
  15. libcef-框架架构中概念介绍-进程-线程-引用计数-字符串等(一)
  16. 苹果服务器是不是在维修,苹果维修中心玩转这些才是真懂iPhone
  17. Macbook安装双系统的方法
  18. Kafka精华问答 | 为什么要用Message Queue?
  19. UICollectionView 自定义布局教程: Pinterest
  20. oracle double 两位小数点,【Oracle】number类型保留小数位

热门文章

  1. nyquist图怎么画matlab,用MATLAB绘制Nyquist图
  2. cent卸载mysql_centos 7.x 安装/卸载MySQL
  3. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)
  4. python难学?对初学者不友好?进来看看,每30s就能学会一个小技巧,你get到了嘛?
  5. 简单介绍C语言使用四种方法初始化结构体
  6. Shell脚本逐行处理文本文件技巧
  7. Centos8中恢复根目录为默认权限
  8. 【MySQL】Java中的 JDBC 编程
  9. HDU4920(矩阵连乘)
  10. 可持久化普通线段树 ---- P2839 [国家集训队]middle 可持久化普通线段树 + 二分 求中位数最大值