【发布时间】:2011-06-01 21:46:23
【问题描述】:
下午好,
问题:
我正在尝试计算 biztalk 映射中的输出节点。 我不想使用记录计数 functoid 或 xslt 转换,因为有很多条件决定是否生成节点。
我尝试了什么:
我创建了一个脚本 functoid 并声明了一个全局变量(在 C# 中)。
// global to save count
public int E1_Record_Count = 0;
我创建了一个脚本 functoid 来输出全局变量并将其绑定到我的输出节点:
public string E1_Records()
{
return E1_Record_Count.ToString();
}
我创建了一个脚本 functoid,它连接到控制是否生成节点的逻辑 functoid。此脚本计算创建的节点数:
public void IncrementE1Count( string isOutput )
{
try
{
if ( System.Convert.ToBoolean( isOutput ) )
++E1_Record_Count;
}
catch
{
}
}
什么不起作用:
我总是得到零作为结果。我已经更改了全局声明并且输出发生了更改,因此全局似乎已正确声明、初始化和输出。为全局创建第二个声明会引发错误,因此该变量只有一个全局实例。
我注释掉了脚本中除了增量行之外的所有内容以更改全局。这让我觉得它永远不会被执行。此脚本 functoid 与控制输出节点(我确实得到)的同一逻辑 functoid 相关联。
有什么想法吗?
我正在使用 Biztalk Server 2010。
【问题讨论】: