Поделиться через


Соединитель Dynamics некорректно обрабатывает null-строки и даты в адаптерах Dynamics CRM и Dynamics GP.

В этой статье приведено решение проблемы, связанной с неправильной обработкой пустых строк и null-значений даты и времени в соединителе Microsoft Dynamics.

Область применения: Microsoft Dynamics CRM 2011
Исходный номер базы знаний: 2562687

Симптомы

При использовании соединителя Microsoft Dynamics с адаптерами Microsoft Dynamics CRM и Microsoft Dynamics GP вы сталкиваетесь с тем, что аннулированные значения в Microsoft Dynamics CRM для интегрированных записей не становятся аннулированными в Microsoft Dynamics GP.

Причина

Следующие карты по умолчанию не содержат логику для обработки значений null:

  • Учетная запись Microsoft Dynamics CRM для клиента Microsoft Dynamics GP (учетная запись к клиенту)
  • Контакт Microsoft Dynamics CRM в Клиенты Microsoft Dynamics GP (Контакт в Клиенты)

В Microsoft Dynamics CRM нулевое значение не будет предоставляться при запросе данных через веб-службы Microsoft Dynamics CRM. Так как для сопоставленного поля не предоставляется никакого значения, это в свою очередь приводит к передаче значений NULL в Microsoft Dynamics GP. Microsoft Dynamics GP трактует NULL как отсутствие данных, поэтому связанное поле в Microsoft Dynamics GP не будет изменено.

Решение

Чтобы устранить эту проблему, необходимо обновить затронутые карты. Необходимо обновить каждое сопоставленное строковое поле и поле даты и времени, чтобы он обрабатывал сценарий, в котором сопоставленное поле больше не содержит данных в Microsoft Dynamics CRM. Это можно сделать, введя функцию в сопоставленное поле. Формат функции будет выглядеть следующим образом, если поле под вопросом в Microsoft Dynamics CRM было All Addresss\Customer Address\Line 3. Для других строковых полей вы замените определенное имя поля именем поля.

=Если(ЯвляетсяЗначениемПоУмолчанию(Все Адреса\Адрес Клиента\Строка 3),"", Все Адреса\Адрес Клиента\Строка 3)

Для полей datetime формат будет выглядеть следующим образом:

=If(IsDefaultValue(Некоторое поле даты), Date(1900, 1, 1), Некоторое поле даты)

Дополнительная информация

Эта проблема рассматривается для решения в одной из следующих версий Microsoft Dynamics Connector.