Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Все записи Dynamics 365 Customer Engagement (on-premises) имеют уникальные идентификаторы, определенные как идентификаторы GUID. Это первичный ключ для каждой сущности. При интеграции с внешним хранилищем данных у вас может быть возможность добавить во внешние таблицы базы данных столбец, который будет содержать ссылку на уникальный идентификатор Customer Engagement. Это позволяет получить локальную ссылку на запись Customer Engagement. Однако в некоторых случаях вносить изменения во внешнюю базу данных нельзя. С помощью альтернативных ключей теперь можно определить атрибут в сущности Customer Engagement, который будет соответствовать уникальному идентификатору (или уникальному сочетанию столбцов), используемому внешним хранилищем данных. Этот альтернативный ключ можно использовать для уникальной идентификации записи в Customer Engagement вместо первичного ключа. Вы должны иметь возможность определить, какие атрибуты представляют уникальное идентификатор для записей. После идентификации атрибутов, уникальных для сущности, их можно объявить в качестве альтернативных ключей с помощью пользовательского интерфейса настройки или кода. В этом разделе содержатся сведения об определении альтернативных ключей в модели данных.
Создание альтернативных ключей
Альтернативные ключи можно создавать программным способом или с помощью средств настройки. Дополнительные сведения об использовании средств настройки см. в разделе Определение альтернативных ключей для ссылки на записи CRM.
Чтобы определить альтернативные ключи программным способом, сначала необходимо создать объект типа EntityKeyMetadata (или использовать EntityKeyMetadata EntityType при работе с веб-API). Этот класс содержит ключевые атрибуты. После задания ключевых атрибутов можно использовать CreateEntityKey для создания ключей для сущности. Это сообщение принимает имя сущности и EntityKeyMetadata значения в качестве входных данных для создания ключа.
При создании альтернативных ключей следует учитывать следующие ограничения:
Допустимые типы атрибутов в определениях ключей
В определения альтернативных ключей можно включить только атрибуты следующих типов:
Тип атрибута Отображаемое имя DecimalAttributeMetadata Десятичное число IntegerAttributeMetadata Целое число StringAttributeMetadata Однострочный текст DateTimeAttributeMetadata Дата Время LookupAttributeMetadata Lookup PicklistAttributeMetadata Picklist
Замечание
Атрибуты DateTime, Lookup и Picklist недоступны для локальных версий Dynamics 365 Customer Engagement.
Атрибуты должны быть допустимыми для создания и обновления
Каждый атрибут, используемый в ключе, должен поддерживать как создание, так и обновление. Дополнительные сведения: допустимые операции с атрибутами
Атрибуты не должны применять безопасность на уровне поля
Атрибуты не должны быть логическими или унаследованными
Большинство логических и унаследованных атрибутов настраиваются как доступные только для чтения. Однако многие атрибуты, содержащие сведения об адресе в таких сущностях, как учетная запись и контакт, являются логическими и не могут использоваться в ключе, даже если они доступны для записи. Дополнительные сведения: Логические атрибуты
Допустимый размер ключа
Когда ключ создан, система проверяет, что ключ может поддерживаться платформой, включая то, что полный размер ключа не нарушает ограничения индекса на основе SQL, такие как 900 байт на ключ и 16 столбцов на ключ. Если размер ключа не соответствует этим ограничениям, появляется сообщение об ошибке.
Максимальное число определений альтернативных ключей для сущности
В экземпляре Customer Engagement может быть не более 5 определений альтернативных ключей.
Специальные символы в значении ключа
Если данные в поле, которое используется в альтернативном ключе, будут содержать один из символов
/,<,>,*,%,&,:,\\действия get и patch не будут работать. Если вам нужна только уникальность, то этот способ будет работать, но если необходимо использовать эти ключи как часть интеграции данных, то рекомендуется создать ключ на основе полей, которые не будут содержать эти знаки.
Получение и удаление альтернативных ключей
Если вам нужно получить или удалить альтернативные ключи, можно использовать пользовательский интерфейс настройки для этого без написания кода. Однако пакет SDK предоставляет следующие два сообщения для программного извлечения и удаления альтернативных ключей.
| Класс запроса сообщения | Description |
|---|---|
| RetrieveEntityKeyRequest | Извлекает указанный альтернативный ключ. |
| DeleteEntityKeyRequest | Удаляет указанный альтернативный ключ. |
Чтобы получить все ключи для сущности, используйте новое Keys свойство EntityMetadata (EntityMetadata EntityType или EntityMetadata class). Он получает массив ключей для сущности.
Мониторинг создания индекса для альтернативных ключей
Альтернативные ключи используют индексы базы данных для обеспечения уникальности и оптимизации производительности поиска. Если в таблице есть много существующих записей, создание индекса может быть длительным процессом. Вы можете увеличить скорость реагирования пользовательского интерфейса настройки и импорта решения, выполнив создание индекса в качестве фонового процесса. Свойство EntityKeyMetadata.AsyncJob (EntityKeyMetadata EntityType или EntityKeyMetadata) ссылается на асинхронное задание, выполняющее создание индекса. Свойство EntityKeyMetadata.EntityKeyIndexStatus указывает статус ключа в качестве выполнения задания создания индекса. Статус может быть любой из следующих:
- В ожидании
- В процессе
- Active
- Неудача
Если альтернативный ключ создается с помощью API, при сбое создания индекса можно детализировать сведения о причине сбоя, исправить проблемы и повторно активировать запрос ключа с помощью ReactivateEntityKey (действие ReactivateEntityKey или сообщения ReactivateEntityKeyRequest).
Если альтернативный ключ удаляется, пока задание создания индекса по-прежнему ожидается или выполняется, задание отменяется и индекс удаляется.
См. также
Использование альтернативных ключей
Отслеживание изменений используется для синхронизации данных с внешними системами
Вставка или изменение записи с помощью операции upsert