Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К:
Azure Data Factory
Azure Synapse Analytics
Tip
Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.
В этой статье описывается, как использовать действие копирования в конвейерах Azure Data Factory или Synapse для копирования данных из Dynamics 365 (Microsoft Dataverse) или Dynamics CRM и использования потока данных для преобразования данных в Dynamics 365 ( Microsoft Dataverse) или Dynamics CRM. Дополнительные сведения см. в статьях Azure Data Factory и Azure Synapse Analytics.
Поддерживаемые возможности
Этот соединитель поддерживается для действий, указанных ниже.
| Поддерживаемые возможности | IR |
|---|---|
| Копирование данных (источник/приемник) | (1) (2) |
| Сопоставление потока данных (источник/приемник) | ① |
| Поисковая активность | (1) (2) |
(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции
Список хранилищ данных, поддерживаемых действием копирования в качестве источников и приемников, приведен в таблице Поддерживаемые хранилища данных.
Note
В ноябре 2020 года Common Data Service переименована в Microsoft Dataverse. Эта статья обновлена для учета новейшей терминологии.
Этот соединитель Dynamics поддерживает Dynamics версии 7–9 для сети и локальной среды. В частности:
- Версия 7 сопоставляется с Dynamics CRM 2015.
- Версия 8 сопоставляется с Dynamics CRM 2016 и ранней версией Dynamics 365.
- Версия 9 сопоставляется с более поздней версией Dynamics 365.
Ознакомьтесь со следующей таблицей поддерживаемых типов проверки подлинности и конфигураций для Dynamics версий и продуктов.
| версии Dynamics | Типы аутентификации | Примеры связных служб |
|---|---|---|
| Dataverse Dynamics 365 в Интернете Dynamics CRM online |
учетная запись службы Microsoft Entra Office 365 Управляемое удостоверение, назначаемое пользователем |
Dynamics в режиме онлайн, аутентификация субъекта-службы Microsoft Entra или Office 365 |
| Dynamics 365 локальная версия с развертыванием и подключением к Интернету (IFD) Dynamics CRM 2016 в локальной среде с IFD Dynamics CRM 2015 в локальной среде с IFD |
IFD | Dynamics на месте с авторизацией IFD |
Note
С переходом в режим устаревания региональной службы обнаружения, служба была обновлена для использования глобальной службы обнаружения с проверкой подлинности Office 365.
Important
Если арендатор и пользователь настроены в Microsoft Entra ID для условного доступа и/или многофакторной аутентификации, вы не сможете использовать тип аутентификации Office 365. Для этих ситуаций необходимо использовать аутентификацию учетной записи службы Microsoft Entra.
В частности, для Dynamics 365 поддерживаются следующие типы приложений:
- Dynamics 365 для продаж
- Dynamics 365 для службы клиентов
- Dynamics 365 для службы полей
- Dynamics 365 для автоматизации проектных услуг
- Dynamics 365 для маркетинга
Этот соединитель не поддерживает другие типы приложений, такие как Finance, Operations и Talent.
Tip
Чтобы скопировать данные из Dynamics 365 Finance and Operations, можно использовать коннектор Dynamics AX.
Этот соединитель Dynamics создан на основе инструментов Dynamics XRM.
Prerequisites
Чтобы использовать этот соединитель с проверкой подлинности с помощью служебного принципала Microsoft Entra, необходимо настроить сервер-серверную (S2S) проверку подлинности в Dataverse или Dynamics. Сначала зарегистрируйте пользователя приложения (субъект-службу) в Microsoft Entra ID. Здесь можно узнать, как это сделать. Во время регистрации приложения необходимо создать этого пользователя в Dataverse или Dynamics и предоставить разрешения. Эти разрешения можно предоставить напрямую или косвенно, добавив пользователя приложения в команду, которая была предоставлена разрешения в Dataverse или Dynamics. Дополнительные сведения о том, как настроить пользователя приложения для проверки подлинности с помощью Dataverse, можно найти здесь.
Get started
Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:
- Средство копирования данных
- портал Azure
- SDK .NET
- пакет SDK Python
- Azure PowerShell
- REST API
- шаблон Azure Resource Manager
Создание связанной службы для Dynamics 365 (Microsoft Dataverse) или Dynamics CRM с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу для Dynamics 365 в пользовательском интерфейсе портала Azure.
Перейдите на вкладку Manage в рабочей области Azure Data Factory или Synapse и выберите связанные службы, а затем выберите New:
Найдите Dynamics или Dataverse и выберите соединитель Dynamics 365 (Microsoft Dataverse) или Dynamics CRM.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
В следующих разделах содержатся сведения о свойствах, которые используются для определения сущностей, относящихся к Dynamics.
Свойства подключенной службы
Следующие свойства поддерживаются для связанной службы Dynamics.
Dynamics 365 и Dynamics CRM online
| Property | Description | Required |
|---|---|---|
| type | Свойство type должно иметь значение "Dynamics", "DynamicsCrm" или "CommonDataServiceForApps". | Yes |
| deploymentType | Тип развертывания экземпляра Dynamics. Значение должно быть "Online" для онлайн-версии Dynamics. | Yes |
| serviceUri | URL-адрес службы вашего экземпляра Dynamics, тот самый, к которому вы обращаетесь через браузер. Например, "https://<имя_организации>.crm[x].dynamics.com". | Yes |
| authenticationType | Тип проверки подлинности для подключения к серверу Dynamics. Допустимые значения: "AADServicePrincipal", "Office365" и "ManagedIdentity". | Yes |
| servicePrincipalId | Идентификатор клиента приложения Microsoft Entra. | Да, если аутентификация — "AADServicePrincipal" |
| servicePrincipalCredentialType | Тип учетных данных для использования при проверке подлинности субъекта-службы. Допустимые значения: "ServicePrincipalKey" и "ServicePrincipalCert". Примечание. Рекомендуется использовать ServicePrincipalKey. Существует известное ограничение для типа учетных данных ServicePrincipalCert, где служба может столкнуться с временной проблемой, из-за которой не удалось получить секрет из хранилища ключей. |
Да, если аутентификация — "AADServicePrincipal" |
| servicePrincipalCredential | Учетные данные субъекта-службы. При использовании "ServicePrincipalKey" в качестве типа учетных данных servicePrincipalCredential может быть строкой, которую служба шифрует при развертывании связанной службы. Или это может быть ссылка на секрет в Azure Key Vault. При использовании "ServicePrincipalCert" в качестве учетных данных servicePrincipalCredential должен быть ссылкой на сертификат в Azure Key Vault, и удостоверитесь, что тип содержимого сертификата PKCS #12. |
Да, если аутентификация — "AADServicePrincipal" |
| username | Имя пользователя для подключения к Dynamics. | Да, если аутентификация — "Office 365" |
| password | Пароль для учетной записи пользователя, указанной в качестве имени пользователя. Пометьте это поле как "SecureString" для безопасного хранения или сослаться на секрет, хранящийся в Azure Key Vault. | Да, если аутентификация — "Office 365" |
| credentials | Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных. Создайте одно или несколько управляемых удостоверений, назначаемых пользователем, назначьте их вашей фабрике данных и создайте учетные данные для каждого управляемого удостоверения, назначаемого пользователем. |
Да, если тип проверки подлинности — "ManagedIdentity" |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Если значение не указано, свойство использует среду выполнения интеграции Azure по умолчанию. | No |
Note
Коннектор Dynamics ранее использовал необязательное свойство organizationName для определения экземпляра Dynamics CRM или Dynamics 365 онлайн. Хотя это свойство по-прежнему действует, предлагается вместо него указать новое свойство serviceUri, чтобы повысить производительность обнаружения экземпляра.
Пример: Dynamics Online с использованием объекта-службы Microsoft Entra и проверки подлинности с помощью ключа
{
"name": "DynamicsLinkedService",
"properties": {
"type": "Dynamics",
"typeProperties": {
"deploymentType": "Online",
"serviceUri": "https://<organization-name>.crm[x].dynamics.com",
"authenticationType": "AADServicePrincipal",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": "<service principal key>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример: использование Dynamics в Интернете с помощником службы Microsoft Entra и аутентификацией по сертификатам
{
"name": "DynamicsLinkedService",
"properties": {
"type": "Dynamics",
"typeProperties": {
"deploymentType": "Online",
"serviceUri": "https://<organization-name>.crm[x].dynamics.com",
"authenticationType": "AADServicePrincipal",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalCredential": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<AKV reference>",
"type": "LinkedServiceReference"
},
"secretName": "<certificate name in AKV>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример: Dynamics в Сети с помощью проверки подлинности Office 365
{
"name": "DynamicsLinkedService",
"properties": {
"type": "Dynamics",
"typeProperties": {
"deploymentType": "Online",
"serviceUri": "https://<organization-name>.crm[x].dynamics.com",
"authenticationType": "Office365",
"username": "test@contoso.onmicrosoft.com",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример: Dynamics Online с помощью аутентификации управляемой идентичности, назначенной пользователем
{
"name": "DynamicsLinkedService",
"properties": {
"type": "Dynamics",
"typeProperties": {
"deploymentType": "Online",
"serviceUri": "https://<organization-name>.crm[x].dynamics.com",
"authenticationType": "ManagedIdentity",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Dynamics 365 и Dynamics CRM в локальной среде с IFD
Дополнительные свойства, сравнимые с Dynamics online, это hostName и port.
| Property | Description | Required |
|---|---|---|
| type | Свойство type должно иметь значение "Dynamics", "DynamicsCrm" или "CommonDataServiceForApps". | Yes |
| deploymentType | Тип развертывания экземпляра Dynamics. Значение должно быть "OnPremisesWithIfd" для локальной среды Dynamics с IFD. | Yes |
| hostName | Имя узла локального сервера Dynamics. | Yes |
| port | Порт локального сервера Dynamics. | No. Значение по умолчанию — 443. |
| organizationName | Имя организации экземпляра Dynamics. | Yes |
| authenticationType | Тип проверки подлинности для подключения к серверу Dynamics. Укажите "ActiveDirectoryAuthentication" для локальной среды Dynamics при помощи IFD. | Yes |
| domain | Домен Active Directory, который проверяет учетные данные пользователя. | Yes |
| username | Имя пользователя для подключения к Dynamics. | Yes |
| password | Пароль для учетной записи пользователя, указанной для имени пользователя. Это поле можно пометить как SecureString, чтобы безопасно его хранить. Кроме того, вы можете сохранить пароль в Key Vault и настроить действие копирования для получения его оттуда при копировании данных. Дополнительные сведения о учетных данных Store см. в Key Vault. | Yes |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Если значение не указано, свойство использует среду выполнения интеграции Azure по умолчанию. | No |
Note
В связи с прекращением поддержки типа проверки подлинности Ifd 31 августа 2024 года обновитесь до типа проверки подлинности Active Directory до этого срока, если вы в настоящее время его используете.
Пример: Dynamics локально с IFD и аутентификацией Active Directory
{
"name": "DynamicsLinkedService",
"properties": {
"type": "Dynamics",
"description": "Dynamics on-premises with IFD linked service using IFD authentication",
"typeProperties": {
"deploymentType": "OnPremisesWithIFD",
"hostName": "contosodynamicsserver.contoso.com",
"port": 443,
"organizationName": "admsDynamicsTest",
"authenticationType": "ActiveDirectoryAuthentication",
"domain": "< Active Directory domain >",
"username": "test@contoso.onmicrosoft.com",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. В этом разделе представлен список свойств, поддерживаемых Dynamics набором данных.
Для копирования данных из и в Dynamics поддерживаются следующие свойства:
| Property | Description | Required |
|---|---|---|
| type | Свойство типа набора данных должно иметь значение "DynamicsEntity", "DynamicsCrmEntity" или "CommonDataServiceForAppsEntity". | Yes |
| entityName | Логическое имя сущности, которое требуется получить. | "Нет" для источника, если для источника действия указано "query", и "Да" для приемника. |
Example
{
"name": "DynamicsDataset",
"properties": {
"type": "DynamicsEntity",
"schema": [],
"typeProperties": {
"entityName": "account"
},
"linkedServiceName": {
"referenceName": "<Dynamics linked service name>",
"type": "linkedservicereference"
}
}
}
Свойства Copy activity
Полный список разделов и свойств, доступных для определения действий, см. в статье Конвейеры. В этом разделе представлен список свойств, поддерживаемых Dynamics типами источников и приемников.
Dynamics в качестве типа источника
Чтобы скопировать данные из Dynamics, раздел источник действия копирования поддерживает следующие свойства:
| Property | Description | Required |
|---|---|---|
| type | Свойство type источника действия копирования должно быть установлено в "DynamicsSource", "DynamicsCrmSource" или "CommonDataServiceForAppsSource". | Yes |
| query | FetchXML — это собственный язык запросов, используемый в Dynamics в сети и локальной среде. См. следующий пример. Дополнительные сведения см. в разделе Создание запросов с помощью FetchXML. | "Нет", если в наборе данных указано entityName. |
Note
Столбец первичного ключа всегда будет копироваться, даже если он отсутствует в проекции столбцов, которую вы настроили в запросе FetchXML.
Important
- При копировании данных из Dynamics явное сопоставление столбцов с приемником необязательно. Однако мы настоятельно рекомендуем использовать сопоставление, чтобы обеспечить детерминированный результат копирования.
- Когда служба импортирует схему в пользовательский интерфейс разработки, она интерпретирует эту схему. Это делается путем выборки верхних строк из результата запроса Dynamics, чтобы инициализировать список исходных столбцов. В этом случае столбцы без значений в верхних строках опускаются. Такое же поведение также применяется к предварительному просмотру данных и выполнению копирования, если нет явного сопоставления. Можно просматривать и добавлять в сопоставление дополнительные столбцы, которые учитываются во время выполнения копирования.
Example
"activities":[
{
"name": "CopyFromDynamics",
"type": "Copy",
"inputs": [
{
"referenceName": "<Dynamics input dataset>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "DynamicsSource",
"query": "<FetchXML Query>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Образец запроса FetchXML
<fetch>
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<attribute name="marketingonly" />
<attribute name="modifiedon" />
<order attribute="modifiedon" descending="false" />
<filter type="and">
<condition attribute ="modifiedon" operator="between">
<value>2017-03-10 18:40:00z</value>
<value>2017-03-12 20:40:00z</value>
</condition>
</filter>
</entity>
</fetch>
Dynamics в качестве типа приемника
Чтобы скопировать данные в Dynamics, в разделе sink действия копирования поддерживаются следующие свойства:
| Property | Description | Required |
|---|---|---|
| type | Для свойства type приемника действия копирования необходимо задать значение "DynamicsSink", "DynamicsCrmSink" или "CommonDataServiceForAppsSink". | Yes. |
| writeBehavior | Поведение операции при записи. Необходимо задать значение "Upsert". | Yes |
| alternateKeyName | Альтернативное имя ключа, определенное в сущности для выполнения операции upsert. | No. |
| writeBatchSize | Количество строк, записанных в Dynamics в каждом пакете. | No. Значение по умолчанию — 10. |
| ignoreNullValues | Следует ли игнорировать значения NULL из входных данных, кроме ключевых полей, во время операции записи. Допустимые значения — TRUE и FALSE.
|
No. Значение по умолчанию — FALSE. |
| maxConcurrentConnections | Верхний лимит одновременных подключений, установленных для хранилища данных во время выполнения действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. | No |
| bypassBusinessLogicExecution | Обход пользовательской бизнес-логики для отключения пользовательских подключаемых модулей и рабочих процессов, кроме следующих: • Подключаемые модули, которые являются частью основной системы Microsoft Dataverse или части решения, где Microsoft является издателем. • Рабочие процессы, включенные в решение, в котором Microsoft является издателем. Значение может быть CustomSync, CustomAsync. CustomSync,CustomAsync Вы также можете вручную ввести идентификаторы GUID (разделенные запятыми) в качестве значения, чтобы указать, какие зарегистрированные шаги подключаемого модуля следует обойти. Это позволяет обойти указанный шаг подключаемого модуля вместо всей синхронной и асинхронной пользовательской логики.Обратите внимание, что у вас должна быть привилегия prvBypassCustomBusinessLogic . По умолчанию только пользователи с ролью безопасности системного администратора имеют эту привилегию. Любой пользователь Dataverse, принадлежащий команде Dataverse с типом владельца, автоматически наследует привилегии, связанные с ролями безопасности команды. Дополнительные сведения см. в этой статье. |
No |
| bypassPowerAutomateFlows | Обход потоков Power Automate. Дополнительные сведения см. в этой статье. | No |
Note
Значение по умолчанию для writeBatchSize приемника данных и parallelCopies операции копирования для приемника данных Dynamics равно 10. Таким образом, по умолчанию в Dynamics одновременно отправляется 100 записей.
Для Dynamics 365 в Сети существует ограничение 52 одновременных пакетных вызовов для каждой организации. Если это ограничение превышено, исключение "Сервер занят" выдается до того, как будет выполнен первый запрос. Сохраняйте значение writeBatchSize равным 10 или меньше, чтобы избежать такого регулирования количества одновременных вызовов.
Оптимальное сочетание writeBatchSize и parallelCopies зависит от схемы сущности. К элементам схемы относятся: количество столбцов, размер строк и количество подключаемых модулей, рабочих процессов или действий рабочего процесса, привязанных к этим вызовам. Параметр по умолчанию writeBatchSize (10) × parallelCopies (10) является рекомендацией в соответствии со службой Dynamics. Это значение работает для большинства Dynamics сущностей, хотя это может не обеспечить лучшую производительность. Вы можете настроить производительность путем корректировки комбинации в настройках активности копирования.
Example
"activities":[
{
"name": "CopyToDynamics",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Dynamics output dataset>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "DynamicsSink",
"writeBehavior": "Upsert",
"writeBatchSize": 10,
"ignoreNullValues": true
}
}
}
]
При выборе эластичных таблиц в модуле назначения операции копирования сопоставление столбцов поддерживает partitionid. Столбец исходных данных можно сопоставить с столбцом приемника partitionid . Если не сопоставлено, значение первичного ключа используется в качестве значения по умолчанию для столбца partitionid .
partitionid можно использовать в альтернативных ключах Dataverse или сценариях первичного ключа в пути записи. Каждая эластичная таблица partitionid содержит системно-определённый столбец и имеет альтернативный ключ KeyForNoSqlEntityWithPKPartitionId, который объединяет первичный ключ таблицы со столбцом partitionid. Дополнительные сведения см. в этой статье.
Получение данных из представлений
Чтобы получить данные из представлений Dynamics, необходимо получить сохраненный запрос представления и использовать запрос для получения данных.
Существует два сущности, которые хранят разные типы представления: "сохраненный запрос" хранит системное представление и "запрос пользователя" сохраняет представление пользователя. Для получения сведений о представлениях обратитесь к следующему запросу FetchXML и замените "TARGETENTITY" на savedquery или userquery. Для каждого типа сущности имеются дополнительные доступные атрибуты, которые можно добавить в запрос в соответствии с потребностями. Подробнее о сущности savedquery и сущности userquery.
<fetch top="5000" >
<entity name="<TARGETENTITY>">
<attribute name="name" />
<attribute name="fetchxml" />
<attribute name="returnedtypecode" />
<attribute name="querytype" />
</entity>
</fetch>
Кроме того, можно добавить фильтры для фильтрации представлений. Например, добавьте нижеуказанный фильтр, чтобы получить представление "Мои активные учетные записи" в сущности учетной записи.
<filter type="and" >
<condition attribute="returnedtypecode" operator="eq" value="1" />
<condition attribute="name" operator="eq" value="My Active Accounts" />
</filter>
Сопоставление типов данных для Dynamics
При копировании данных из Dynamics в следующей таблице показаны сопоставления типов данных из Dynamics с промежуточными типами данных в службе. Сведения о том, как действие копирования сопоставляется с исходной схемой и как карта типа данных сопоставляется с приемником, см. в разделе "Схемы и сопоставления типов данных".
Настройте соответствующий промежуточный тип данных в структуре набора данных, основанной на вашем исходном типе данных Dynamics, используя следующую таблицу сопоставления.
| тип данных Dynamics | Промежуточный служебный тип данных | Поддерживается в качестве источника | Поддерживается в качестве приемника |
|---|---|---|---|
| AttributeTypeCode.BigInt | Long | ✓ | ✓ |
| AttributeTypeCode.Boolean | Boolean | ✓ | ✓ |
| AttributeType.Customer | GUID | ✓ | ✓ (См. руководство) |
| AttributeType.DateTime | Datetime | ✓ | ✓ |
| AttributeType.Decimal | Decimal | ✓ | ✓ |
| AttributeType.Double | Double | ✓ | ✓ |
| AttributeType.EntityName | String | ✓ | ✓ |
| AttributeType.Integer | Int32 | ✓ | ✓ |
| AttributeType.Lookup | GUID | ✓ | ✓ (См. руководство) |
| AttributeType.ManagedProperty | Boolean | ✓ | |
| AttributeType.Memo | String | ✓ | ✓ |
| AttributeType.Money | Decimal | ✓ | ✓ |
| AttributeType.Owner | GUID | ✓ | ✓ (См. руководство) |
| AttributeType.Picklist | Int32 | ✓ | ✓ |
| AttributeType.Uniqueidentifier | GUID | ✓ | ✓ |
| AttributeType.String | String | ✓ | ✓ |
| AttributeType.State | Int32 | ✓ | ✓ |
| AttributeType.Status | Int32 | ✓ | ✓ |
Note
Типы данных Dynamics AttributeType.CalendarRules, AttributeType.MultiSelectPicklist и AttributeType.PartyList не поддерживаются.
Запись данных в поле поиска
Чтобы записать данные в поле поиска с несколькими целевыми объектами, такими как Customer и Owner, следуйте указаниям и см. пример.
Убедитесь, что источник содержит как значение поля, так и соответствующее имя целевой сущности.
- Если все записи сопоставлены с одной целевой сущностью, необходимо выполнить одно из следующих условий:
- В исходных данных имеется столбец, в котором хранится имя целевой сущности.
- Вы добавили дополнительный столбец в источник действия копирования для определения целевой сущности.
- Если разные записи сопоставляются с разными целевыми сущностями, убедитесь, что в исходных данных имеется столбец, в котором хранится соответствующее имя целевой сущности.
- Если все записи сопоставлены с одной целевой сущностью, необходимо выполнить одно из следующих условий:
Сопоставьте столбцы значений и ссылочных сущностей из источника к приемнику. Столбец ссылки на сущность надо сопоставить с виртуальным столбцом со специальным шаблоном именования
{lookup_field_name}@EntityReference. Столбец фактически не существует в Dynamics. Его используют для обозначения того, что это столбец метаданных заданного многоцелевого поля поиска.
Задание поля "Владелец"
При настройке поля "Владелец" в Dynamics 365 (Microsoft Dataverse) или Dynamics CRM важно указать действительную ссылку. Допустимые параметры для @EntityReference:
-
systemuser: это относится к отдельному пользователю в системе. -
team: это относится к группе пользователей в организации.
Убедитесь, что указанное значение соответствует одному из этих параметров, чтобы избежать ошибок во время преобразования данных.
Например, предположим, что источник содержит следующие два столбца:
- CustomerField столбец типа GUID, являющийся основным ключевым значением целевой сущности в Dynamics.
- Target, столбец типа String, который является логическим именем целевой сущности.
Кроме того, предполагается, что вы хотите скопировать такие данные в поле сущности приемника Dynamics CustomerField типа Customer.
При сопоставлении столбцов действия копирования сопоставьте два столбца как указано ниже.
- CustomerField в CustomerField. Это сопоставление является обычным сопоставлением полей.
- Target в CustomerField@EntityReference. Столбец приемника — это виртуальный столбец, представляющий ссылку на сущность. Введите соответствующие имена полей в сопоставлении, поскольку они не будут отображаться при импорте схем.
Если все ваши исходные записи соответствуют одной и той же целевой сущности, а исходные данные не содержат имя схемы целевой сущности, вот как можно упростить задачу: в источнике операции копирования добавьте дополнительный столбец. Назовите новый столбец с помощью шаблона {lookup_field_name}@EntityReference, установите значение в поле имени целевой сущности, затем выполните обычное сопоставление столбцов. Если имена столбцов источника и приемника идентичны, можно пропустить явное сопоставление столбцов, поскольку действие копирования по умолчанию сопоставляет столбцы по имени.
Запись данных в поле подстановки с помощью альтернативных ключей
Чтобы записать данные в поле подстановки с помощью альтернативных ключевых столбцов, следуйте приведенным ниже рекомендациям и примеру:
Убедитесь, что источник содержит все поисковые ключевые столбцы.
Альтернативные ключевые столбцы должны быть сопоставлены со столбцом с помощью специального шаблона именования
{lookup_field_name}@{alternate_key_column_name}. Столбец не существует в Dynamics. Он используется для указания того, что этот столбец используется для поиска записи в целевой сущности.Перейдите на вкладку Сопоставление в преобразовании приемника потоков данных для сопоставления. Выберите альтернативный ключ в качестве выходных столбцов в поле подстановки. Следующее значение указывает ключевые столбцы этого альтернативного ключа.
После выбора столбцы альтернативного ключа будут автоматически отображаться ниже.
Сопоставьте входные столбцы слева с выходными столбцами.
Note
В настоящее время это поддерживается только при использовании встроенного режима в преобразовании приемника потоков данных для сопоставления.
Свойства потока данных для сопоставления
При преобразовании данных в потоках данных сопоставления, вы можете считывать и записывать данные в таблицы Dynamics. Дополнительные сведения см. в описаниях преобразования источника и преобразования приемника в разделе, посвященном потокам данных для сопоставления. Вы можете использовать набор данных Dynamics или набор данных inline в качестве типа источника и приемника.
Преобразование источника
В таблице ниже перечислены свойства, поддерживаемые Dynamics. Изменить эти свойства можно на вкладке Source options (Параметры источника).
| Name | Description | Required | Допустимые значения | Свойство скрипта для потока данных |
|---|---|---|---|---|
| Имя объекта | Логическое имя сущности, которое требуется получить. | Да, если используется встроенный набор данных | - |
(только для встроенного набора данных) entity |
| Query | FetchXML — это собственный язык запросов, используемый в Dynamics в сети и локальной среде. См. следующий пример. Дополнительные сведения см. в разделе Создание запросов с помощью FetchXML. | No | String | query |
Note
Если в качестве типа входных данных выбрать запрос, не удастся получить тип столбца из таблиц. По умолчанию он будет считаться строковым.
Пример исходного скрипта Dynamics
При использовании набора данных Dynamics в качестве исходного типа используемый скрипт потока данных будет:
source(allowSchemaDrift: true,
validateSchema: false,
query: '<fetch mapping='logical' count='3 paging-cookie=''><entity name='new_dataflow_crud_test'><attribute name='new_name'/><attribute name='new_releasedate'/></entity></fetch>') ~> DynamicsSource
Если используется встроенный набор данных, связанный сценарий потока данных будет следующим:
source(allowSchemaDrift: true,
validateSchema: false,
store: 'dynamics',
format: 'dynamicsformat',
entity: 'Entity1',
query: '<fetch mapping='logical' count='3 paging-cookie=''><entity name='new_dataflow_crud_test'><attribute name='new_name'/><attribute name='new_releasedate'/></entity></fetch>') ~> DynamicsSource
Преобразование приемника
В таблице ниже перечислены свойства, поддерживаемые приемником Dynamics. Эти свойства можно изменить на вкладке Параметры приемника.
| Name | Description | Required | Допустимые значения | Свойство скрипта для потока данных |
|---|---|---|---|---|
| Альтернативное имя ключа | Альтернативное имя ключа, определенное для вашей сущности, чтобы выполнить операции обновления, вставки или удаления. | No | - | alternateKeyName |
| Метод обновления | Укажите, какие операции разрешены в назначении базы данных. По умолчанию разрешены только операции вставки. Для обновления, вставки или удаления строк требуется преобразование Alter row, чтобы пометить строки для выполнения этих действий. |
Yes |
true или false |
insertable updateable upsertable deletable |
| Имя объекта | Логическое имя сущности, которое требуется записать. | Да, если используется встроенный набор данных | - |
(только для встроенного набора данных) entity |
Пример скрипта приемника Dynamics
При использовании набора данных Dynamics в качестве типа приемника данных соответствующий скрипт потока данных:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:true,
insertable:true,
updateable:true,
upsertable:true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> DynamicsSink
Если используется встроенный набор данных, связанный сценарий потока данных будет следующим:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
store: 'dynamics',
format: 'dynamicsformat',
entity: 'Entity1',
deletable: true,
insertable: true,
updateable: true,
upsertable: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> DynamicsSink
Свойства действия поиска
Подробные сведения об этих свойствах см. в статье Действие поиска.
Связанный контент
Для списка хранилищ данных, поддерживаемых операцией копирования в качестве источников и приемников, см. раздел Поддерживаемые хранилища данных.