Получена ошибка после отправки переведенного 4010 xml в устаревший веб-сервис - PullRequest
0 голосов
/ 13 января 2012

Добрый день.

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

Адаптер не смог передать сообщение, отправляющее на порт "SendEDI" с URL-адресом "http://biz05/WriteEligibilityResponse/service.svc".. Оно будет повторно передано после интервала повторения, указанного для этого порта отправки.Подробности: "System.ServiceModel.FaultException: a: InternalServiceFaultAn была предпринята попытка удалить связь между 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 (Object, Object [], Object [])

в System.ServiceModel.Dispatcher.SyncMethodInvoker.In, Object [] входные данные, Object [] и выходные данные)

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

в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime5.rpc)

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

в System.ServiceModel.Dispatcher.MessageRpc.Process (логический * логический * 10OctionContext)* at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback (результат IAsyncResult) ".

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

1 Ответ

0 голосов
/ 13 января 2012

Просто прибегнув к поиску ошибки, получилось следующее: 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.

...