Добрый день,
Проблема:
Я пытаюсь подсчитать выходные узлы в сопоставлении 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();
}
Я создал скрипт-функтоид, который связан с логическим функтоидом, который управляет созданием узла.Этот скрипт подсчитывает количество созданных узлов:
public void IncrementE1Count( string isOutput )
{
try
{
if ( System.Convert.ToBoolean( isOutput ) )
++E1_Record_Count;
}
catch
{
}
}
Что не работает:
В результате я всегда получаю ноль.Я изменил глобальное объявление, и выходные данные изменились, так что глобальное, кажется, объявляется, инициализируется и выводится правильно.Создание второго объявления для глобального генерирует ошибку, поэтому есть только один глобальный экземпляр переменной.
Я закомментировал все, кроме строки приращения в скрипте, чтобы изменить глобальное.Это заставляет меня думать, что это никогда не выполняется.Этот скрипт-функтоид связан с тем же логическим функтоидом, который управляет выходными узлами (что я получаю).
Есть идеи, что не так?
Я использую Biztalk Server 2010.