Невозможно прочитать поток, созданный конвейером - Имя параметра: формат - PullRequest
0 голосов
/ 14 января 2019

У меня есть решение BizTalk 2016 FP3. С помощью мастера я создал схему плоского файла для моего порта отправки, чтобы собрать из xml в текстовый файл с фиксированной позицией.

Когда я запускаю BizTalk, я получаю приостановленный экземпляр со следующей информацией об ошибке:

Unable to read the stream produced by the pipeline. 
 Details: Value cannot be null.
Parameter name: format 

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

На порте отправки (который содержит только компоненты сборщика файлов Microsoft Flat) я заполнил как свойство «DocumentSpecName» требуемое имя_схемы, имя_сборки . На самом деле это не требуется, поскольку BizTalk может определять схему из продвигаемого пространства имен # rootnode, поэтому я попытался без установки свойства, но все же получил тот же результат.

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Боюсь, что это было исправлено без моего ведома. Эта проблема сводила меня с ума в течение нескольких часов, поэтому я вернулся к основам и создал новое решение на другой виртуальной машине разработчика - это сработало! Итак, я вернулся к своей основной виртуальной машине, и проблема больше не была. Теперь я не верю в магию, поэтому я уверен, что я что-то изменил, но с тех пор я пытался воссоздать ошибку, вмешиваясь во входной файл и схему плоского файла, и я не смог.

Я узнал, что использование VS для «генерирования экземпляра» плоского файла для данного XML-файла бесполезно - он создает файл, но использует имена элементов XML в качестве данных. Лучше использовать FFAsm.exe, который можно найти в D: \ Program Files (x86) \ Microsoft BizTalk Server 2016 \ SDK \ Utilities \ PipelineTools

Отключено, чтобы завершить тестовый модуль вокруг него на случай, если ошибка снова возникнет.

0 голосов
/ 15 января 2019

просто возглавьте ту же проблему вчера, попробуйте заменить конвейер другим, применить и затем переключиться обратно на правильный конвейер. Тестовое задание. Надеюсь, это поможет вам.

0 голосов
/ 14 января 2019

Существует несколько ситуаций, которые могут привести к этой ошибке.

  1. Схема на самом деле не является схемой плоских файлов (но вы уже это проверили), см. MSDN Невозможно прочитать поток, созданный конвейером, Flat Send Pipeline
  2. Это схема фиксированной длины, и одно из обязательных полей отсутствует (см. Сведения об ошибке: невозможно прочитать поток, созданный конвейером. Детали: Не удается найти определение для ввода: {Запись, Элемент или Атрибут} , а также Сборщик плоских файлов Решено путем принудительного создания дополнительных элементов из исходной схемы.
...