Biztalk LAST_UPDATE_DATE, UPDATEDUSER, CREATEDUSER, CREATION_DATE - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно создать один интерфейс для чтения CSV-файла и отправить запрос в систему SQL для вставки данных.

В сгенерированной для запроса SQL схеме есть поле createate, которое имеет тип данных datetime и Nillable как true.

Проблема возникает, когда я получаю файл с пустым значением для этого поля, получая значение ниже ошибки

Строка '' не является допустимым значением AllXsd. в System.Xml.Schema.XsdDateTime..ctor (текст строки, виды XsdDateTimeFlags)

Я пробовал значение по умолчанию NULL (В БД, если я использую вставку в использование таблицы запросов sql, допускается значение NULL) Но когдаЯ установил нулевое значение в запросе, отправленном biztalk, его нет. "

Адаптеру не удалось передать сообщение, отправляющееся на отправку порта" SQLPORTNAME "с URL-адресом" SQLSERVERCONNECTIONDETAILS ". Оно будет повторно передано после интервала повторных попыток, указанного для этого порта отправки. Подробности:" Microsoft.ServiceModel. Channels.Common.XmlReaderParsingException: входные данные для поля / параметра «CreatedDate» являются недопустимыми в соответствии с ожидаемым SqlDbType DateTime. ---> System.FormatException: строка '' не является допустимым значением AllXsd.
в System.Xml.Schema.XsdDateTime..ctor (текст строки, виды XsdDateTimeFlags) в System.Xml.XmlConvert.ToDateTime (Strings, XmlDateTimeSerializationMode dateTimeOption) в Microsoft.Adapters.Sql.MetadataHelper.ConvertXmlValueToDotNetObject (String xmlString, строковое полеParameterName, SqlDbType sqlDbType, внутренний * 101 * внутренний * 101 * исключительная ситуация * 101 * исключительная ситуация

исключительная ситуация * 101 * исключительная ситуация * 101 * исключительная ситуация *1015* исключительная длина * исключительная ситуация) * исключительная ситуация: * * * * * * исключительная точностьтрассировка стека: в System.Runtime.AsyncResult.End [TAsyncResult] (результат IAsyncResult)

в System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End (результат SendAsyncResult) в System.SernelnelSEntChannelShannelChannelChannelChannel. , Object [] ауты, результат IAsyncResult) в System.ServiceModel.Channels.ServiceChannel.EndRequest (результат IAsyncResult)

Исключение, переброшенное в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleRessurnMessreqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) в System.ServiceModel.Channels.IRequestChannel.EndRequest (результат IAsyncResult) "

Ожидаемый результат - запрос должен идти в SQL без каких-либо проблем дляпустые / пустые значения

1 Ответ

0 голосов
/ 18 октября 2019

Измените поле даты и времени схемы на строковый (обнуляемый) тип. Это делает разбор проще и менее ограничительным.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...