您的位置:首页 > 移动开发

灵活使用Script Functoid 增强BizTalk Mapping功能

2013-01-28 21:47 253 查看
我们知道Biztalk为 定义Schema之间的映射提供了多种多样的Functoid,可以符合大部分映射的需求,尽管如此还是有些情况Biztalk自带的Functoid 不能完成所需要的映射,一个方法是通过扩展Functoid来实现,另外一个可以通过Script Function通过C#代码帮助实现一些简单的转换功能,下面通过一个简单的例子来说明,我们知道 Iteration 可以把记录的序号映射到目标Schema中:

上面的映射可以把InvoiceLine 的序号映射到目标Schema 的 InvoiceLine 的第7个字段(本例是使用的Flat File Schema,实际可以使用任意类型的Schema),映射之后 InvoiceLine 的 InvoiceLine_Child7 的值为 1,2,3,4但如果目标Schema对该字段具有格式要求,比如长度必须为4,从0001-9999,不足四位的以0补足。此时我们就可以借助Script Functoid 来实现。在Iteration和目标元素之间添加一个scripts Functoid (如上图)。双击Scripts 打开其属性窗口:

可以看到我们只使用了一个输入参数,为Iteration的输出。如果有多个输入,这里则显示多个输入。然后选择Scripts Functoid Configuration 来编写脚本

可以使用不同的脚本语言来编写脚本,这里我们使用C#来编写脚本,函数名称一般为MyConcat ,输入的参数个数由前面所说的输入参数个数决定,本例我们只需一个参数,因此可以使用C#编写如下脚本:
public string MyConcat(string param1)
{
	return param1.PadLeft(4,'0');
}

最后生成的文本文件(Flat File) 的序号格式为0001-9999.


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐