Может ли схема плоского файла Biztalk проверять количество записей в нижнем колонтитуле по сравнению с фактическим количеством записей?

У нас есть плоский файл CSV, подобный следующему:

aaa,bbb,ccc  
ddd,eee,fff  
ggg,hhh,iii  
~~~0003

«~~~ 0003» - это нижний колонтитул, что означает, что в файле 3 записи.

Возможно ли иметь схему плоского файла в BizTalk, чтобы счетчик можно было сравнить с фактическим количеством записей, так что проверка не удалась с использованием конвейера дизассемблера плоских файлов, если количество записей в нижнем колонтитуле не совпадает?


person hosir    schedule 04.04.2014    source источник


Ответы (2)


То, о чем вы спрашиваете, невозможно.

Хотя это довольно легко проверить, но вам придется использовать оркестровку.

В сообщении с BTS.LastInterchangeMessage == true проверьте BTS.InterchangeSequenceNumber на значение в нижнем колонтитуле.

person Johns-305    schedule 04.04.2014

No.

Вы бы либо

  1. Напишите пользовательский компонент конвейера дизассемблера плоских файлов (возможно, расширяющий стандартный)

  2. Имейте карту, которая отображает документ, который имеет как количество нижних колонтитулов, так и количество фактических строк. Затем, в зависимости от того, является ли это только обмен сообщениями или если вы используете оркестровку,

    а. Сделайте оба этих счетчика продвигаемым свойством и создайте правило маршрутизации для случаев, когда они равны, и другое - для случаев, когда они не равны.

    б. Имейте их как отличительное свойство и форму решения в оркестровке, которая сравнивает два значения.

Вариант 2. Самый простой в реализации.

person Dijkgraaf    schedule 04.04.2014