У меня есть Biztalk 2013 Orchestration, где я работаю над элементом, который дебатирует сообщение с помощью вызова конвейера. Затем я беру рассмотренные сообщения, используя их для создания запросов адаптера SQL WCF для получения подробной информации, а затем проверяю ответы и записываю их в систему.
Образцы XML:
Конверт с заказами
<Orders>
<Order>
<OrderNum>1</OrderNum>
</Order>
<Order>
<OrderNum>2</OrderNum>
</Order>
<Order>
<OrderNum>3</OrderNum>
</Order>
<Order>
<OrderNum>4</OrderNum>
</Order>
<Order>
<OrderNum>5</OrderNum>
</Order>
<Order>
<OrderNum>6</OrderNum>
</Order>
<Order>
<OrderNum>7</OrderNum>
</Order>
</Orders>
Разбирается в отдельных сообщениях с заказами:
<Order>
<OrderNum>1</OrderNum>
</Order>
.
.
.
Это передается в SQL путем создания сохраненного сообщения вызова процедуры с порядковым номером в качестве параметра.
Ответ:
<OrderDetails>
<OrderDetail>
<ItemID>1</ItemID>
<Price>23.40</Price>
</OrderDetail>
.
.
.
</OrderDetails>
Затем я перехожу к отдельным записям OrderDetail, используя конвейер в оркестровке.
В любом случае, когда я вызываю SQL Server и получаю ответ, я получаю ошибку при компиляции о
"an atomic scope may not contain or call a service or scope that contains both the send and the corresponding receive of a requestresponse operation on a 'uses' port or servicelink".
Я изменяю уровень транзакции объекта области (необходимого для дебатчинга) с атомарного на длительный и получаю эту ошибку.
"a non-serializable object type 'Microsoft.XLANGs.Pipeline.ReceivePipelineOutputMessages GetBatchPipelineOutput' can only be declared within an atomic scope or service"
Мне нужно получить отдельные элементы в списке (это может быть длинный список, поэтому я использовал конвейер) и передать их в качестве аргументов серверу SQL, но, похоже, я не могу.
Любые идеи?