Ошибка, полученная после отправки переведенного 4010 xml в устаревший веб-сервис

Добрый день.

Я отправляю 270 в штат (Мичиган) и получаю 271, который затем преобразую в версию 4010 271, чтобы устаревший веб-сервис мог попытаться поглотить данные. Веб-служба использует dbml и LINQ для преобразования сообщения в серию классов, которые представляют базу данных после того, как происходит преобразование, выполняется транзакция и обновляется клиент. Однако я получаю сообщение об ошибке:

Адаптеру не удалось передать сообщение на порт отправки «SendEDI» с URL-адресом «http://biz05/WriteEligibilityResponse/service.svc». Он будет повторно передан после интервала повтора, указанного для этого порта отправки. Подробности: «System.ServiceModel.FaultException: a:InternalServiceFaultБыла предпринята попытка удалить отношение между X12_NM1 и X12_271_2120C. Однако один из внешних ключей отношения (X12_271_2120C.X12_NM1_Id) не может быть установлен равным нулю. Была предпринята попытка удалить связь между X12_NM1 и X12_271_2120C. Однако один из внешних ключей связи (X12_271_2120C.X12_NM1_Id) не может быть установлен равным нулю. В EligibilityLookup.Service.ResponseToSQL.WriteResponse(сообщение)

в SyncInvokeWriteResponse (Объект, Объект [], Объект [])

в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (экземпляр объекта, входы объекта [], объект [] и выходы)

в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)

в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)

в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)

в System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)System.InvalidOperationException

в Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback (результат IAsyncResult)".

Имея в виду, что я не могу изменить код LINQ (я не могу редактировать клиент как часть решения управления, перестройка внешнего интерфейса - это этап 2 проекта), есть ли способ обойти это? Я уже удалил ссылку 5010 на 4010 на карте для этого элемента, и меня также не волнует, получу ли я полный набор данных 271 в устаревшей системе.


person Gregory Saxton    schedule 12.01.2012    source источник


Ответы (1)


Просто погуглив ошибку, я обнаружил следующее: отношения.aspx" rel="nofollow">http://blogs.msdn.com/b/bethmassi/archive/2007/10/02/linq-to-sql-and-one-to-many-relationships.aspx /а>

Если вы не можете изменить модель linq, то, похоже, вам придется сопоставлять данные с документом 4010, который вы отправляете в веб-службу, чтобы данные заполнялись в X12_NM1, который сопоставляется с таблицей X12_271_2120C.

person yieldvs    schedule 13.01.2012