Я делаю доказательство концепции по обнаружению ошибки проверки в оркестровке. В конце концов, мы можем захотеть сопоставить их обратно с ответным сообщением.
Я создал форму выражения, которая вызывает конвейер получения с проверкой (как описано здесь: https://docs.microsoft.com/en-us/biztalk/core/how-to-use-expressions-to-execute-pipelines).
Это атомарная область, в которой есть обработчик компенсации, но нет обработчика исключений. Конвейер взорвался при проверке и завершил оркестровку. Как я могу зафиксировать это и посмотреть на данные, которые он генерирует? В конце концов, я попробую этот компонент, который перехватывает несколько исключений:
rcvPipelineOutputMsgs1 =
Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline
(typeof(Myapp.Pipelines.ValidateAtlastRequestPipeline), msg_In);
Ошибка была записана в журнал событий. Данные неверны, и я хочу получить ошибку, но я хочу ее поймать.
Shape name: Call Validation
ShapeId: efe2529a-acaa-416b-ad8e-c3faef9624c5
Exception thrown from: segment 2, progress 3
Inner exception: There was a failure executing pipeline "Myapp.Pipelines.ValidateAtlastRequestPipeline". Error details: "The XML Validator failed to validate.
Details: The element 'LtlTenderRequest' has invalid child element 'DocumentName'. List of possible elements expected: 'Tenders'.. ".
Exception type: XLANGPipelineManagerException