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

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

20130128001

上面的映射可以把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 打开其属性窗口:

20130128002可以看到我们只使用了一个输入参数,为Iteration的输出。如果有多个输入,这里则显示多个输入。

然后选择Scripts Functoid Configuration 来编写脚本

20130128003

可以使用不同的脚本语言来编写脚本,这里我们使用C#来编写脚本,函数名称一般为MyConcat ,输入的参数个数由前面所说的输入参数个数决定,本例我们只需一个参数,因此可以使用C#编写如下脚本:

public string MyConcat(string param1)
{
	return param1.PadLeft(4,'0');
}

最后生成的文本文件(Flat File) 的序号格式为0001-9999.
20130128004
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值