Копирование и преобразование данных в Dynamics 365 (Microsoft Dataverse) или Dynamics CRM с помощью Фабрики данных Azure или Azure Synapse Analytics

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье описано, как с помощью действия Copy в Фабрике данных Azure или конвейерах Synapse копировать данные из Dynamics 365 (Microsoft Dataverse) или Dynamics CRM, а также использовать поток данных для преобразования данных в Dynamics 365 (Microsoft Dataverse) или Dynamics CRM. Дополнительные сведения см. в вводных статьях о Фабрике данных Azure и Azure Synapse Analytics .

Поддерживаемые возможности

Этот соединитель поддерживается для действий, указанных ниже.

Поддерживаемые возможности IR
Действие копирования (источник/приемник) ① ②
Поток данных для сопоставления (источник/приемник)
Действие поиска ① ②

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

Список хранилищ данных, поддерживаемых действием копирования в качестве источников и приемников, приведен в таблице Поддерживаемые хранилища данных.

Примечание.

Начиная с ноября 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 online

Dynamics CRM Online
Субъект-служба Microsoft Entra

Office 365

Управляемое удостоверение, назначаемое пользователем
Dynamics Online и субъект-служба Microsoft Entra или проверка подлинности Office 365
Dynamics 365 в локальной среде с развертыванием с подключением к Интернету (IFD)

Dynamics CRM 2016 в локальной среде с IFD

Dynamics CRM 2015 (локальная версия) с IFD
IFD Dynamics (локальная версия) с IFD и IFD Authentication

Примечание.

В связи с прекращением поддержки региональной службы обнаруженияслужба была обновлена, чтобы использовать глобальную службу обнаружения в процессе проверки подлинности Office 365.

Важно!

Если клиент и пользователь настроены в идентификаторе Microsoft Entra для условного доступа и (или) Многофакторной идентификации, вы не сможете использовать тип проверки подлинности Office 365. Для этих ситуаций необходимо использовать проверку подлинности субъекта-службы Microsoft Entra.

В частности, для Dynamics 365 поддерживаются следующие типы приложений:

  • Dynamics 365 for Sales
  • Dynamics 365 for Customer Service
  • Dynamics 365 for Field Service
  • Dynamics 365 for Project Service Automation
  • Dynamics 365 for Marketing

Этот соединитель не поддерживает другие типы приложений, такие как Finance, Operations и Talent.

Совет

Соединитель Dynamics AX также можно использовать для копирования данных из Dynamics 365 Finance и Operations.

Этот соединитель Dynamics создан на основе инструментов Dynamics XRM.

Необходимые компоненты

Чтобы использовать этот соединитель с проверкой подлинности субъекта-службы Microsoft Entra, необходимо настроить проверку подлинности на сервере (S2S) в Dataverse или Dynamics. Сначала зарегистрируйте пользователя приложения (субъект-службу) в идентификаторе Microsoft Entra. Здесь можно узнать, как это сделать. Во время регистрации приложения потребуется создать этого пользователя в Dataverse или Dynamics и предоставить разрешения. Эти разрешения могут быть предоставлены напрямую или косвенно путем добавления пользователя приложения в группу, которой были предоставлены разрешения в Dataverse или Dynamics. Дополнительные сведения о том, как настроить пользователя приложения для проверки подлинности с помощью Dataverse, можно найти здесь.

Начать

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы для Dynamics 365 (Microsoft Dataverse) или Dynamics CRM с помощью пользовательского интерфейса

Выполните следующие действия, чтобы создать связанную службу для Dynamics 365 с помощью пользовательского интерфейса на портале Azure.

  1. Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":

  2. Найдите Dynamics или Dataverse и выберите соединитель Dynamics 365 (Microsoft Dataverse) или Dynamics CRM.

    Screenshot of the Dynamics 365 connector.

    Screenshot of the Dataverse connector.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Screenshot of linked service configuration for Dynamics 365.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей, характерных для Dynamics.

Свойства связанной службы

Для связанной службы Dynamics поддерживаются следующие свойства:

Dynamics 365 и Dynamics CRM Online

Свойство Описание: Обязательное поле
type Для свойства Type надо задать значение "Dynamics", "DynamicsCrm" или "CommonDataServiceForApps". Да
deploymentType Тип развертывания для экземпляра Dynamics. Для Dynamics Online должно быть указано значение "Online". Да
serviceUri URL-адрес службы экземпляра Dynamics тот же, к которому вы обращаетесь из браузера. Например, "https://<имя_организации>.crm[x].dynamics.com". Да
authenticationType Тип проверки подлинности для подключения к серверу Dynamics. Допустимые значения: "AADServicePrincipal", "Office365" и "ManagedIdentity". Да
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"
учетные данные Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных.

Создайте одно или несколько управляемых удостоверений, назначаемых пользователем, назначьте их вашей фабрике данных и создайте учетные данные для каждого управляемого удостоверения, назначаемого пользователем.
Да, если тип проверки подлинности — "ManagedIdentity"
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Если значение не указано, это свойство использует среду выполнения интеграции Azure по умолчанию. No

Примечание.

Соединитель Dynamics ранее использовал необязательное свойство organizationName, чтобы идентифицировать экземпляр Dynamics CRM или Dynamics 365 Online. Хотя это свойство по-прежнему действует, предлагается вместо него указать новое свойство 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 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": "ServicePrincipalCert", 
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            } 
        }, 
        "connectVia": { 
            "referenceName": "<name of Integration Runtime>", 
            "type": "IntegrationRuntimeReference" 
        } 
    } 
} 

Пример: Dynamics Online с использованием проверки подлинности 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

hostName и port являются дополнительными свойствами по сравнению с Dynamics Online.

Свойство Описание: Обязательное поле
type Для свойства Type надо задать значение "Dynamics", "DynamicsCrm" или "CommonDataServiceForApps". Да.
deploymentType Тип развертывания для экземпляра Dynamics. Для Dynamics (локальная версия) с IFD необходимо задать значение "OnPremisesWithIfd". Да.
hostName Имя узла локального сервера Dynamics. Да.
port Порт локального сервера Dynamics. № Значение по умолчанию — 443.
оrganizationName Имя организации экземпляра Dynamics. Да.
authenticationType Тип проверки подлинности для подключения к серверу Dynamics. Укажите Ifd для Dynamics (локальная версия) с IFD. Да.
username Имя пользователя для подключения к Dynamics. Да.
password Пароль для учетной записи пользователя, указанной для имени пользователя. Это поле можно пометить как SecureString, чтобы безопасно его хранить. Кроме того, можно сохранить пароль в Key Vault и разрешить извлечение действия копирования при копировании данных. Подробнее о хранении учетных данных в Key Vault. Да.
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Если значение не указано, это свойство использует среду выполнения интеграции Azure по умолчанию. No

Пример. Dynamics (локальная версия) с IFD с использованием проверки подлинности

{
    "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": "Ifd",
            "username": "test@contoso.onmicrosoft.com",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. В этом разделе содержится список свойств, поддерживаемых набором данных Dynamics.

Для копирования данных из Dynamics и в него поддерживаются свойства, указанные ниже.

Свойство Описание: Обязательное поле
type Для свойства Type набора данных надо задать значение "DynamicsEntity", "DynamicsCrmEntity" или "CommonDataServiceForAppsEntity". Да
entityName Логическое имя сущности, которое требуется получить. "Нет" для источника, если для источника действия указано "query", и "Да" для приемника.

Пример

{
    "name": "DynamicsDataset",
    "properties": {
        "type": "DynamicsEntity",
        "schema": [],
        "typeProperties": {
            "entityName": "account"
        },
        "linkedServiceName": {
            "referenceName": "<Dynamics linked service name>",
            "type": "linkedservicereference"
        }
    }
}

Свойства действия копирования

Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры и действия в фабрике данных Azure. Этот раздел содержит список свойств, поддерживаемых типами источника и приемника Dynamics.

Dynamics в качестве источника данных

Для копирования данных из Dynamics в разделе источника действия копирования поддерживаются свойства, указанные ниже.

Свойство Описание: Обязательное поле
type Для свойства Type источника действия копирования надо установить значение "DynamicsSource", "DynamicsCrmSource" или "CommonDataServiceForAppsSource". Да
query FetchXML — это защищаемый язык запросов, используемый в Dynamics Online и локальной версии Dynamics. См. следующий пример. Дополнительные сведения см. в разделе Создание запросов с помощью FetchXML. "Нет", если в наборе данных указано entityName.

Примечание.

Столбец первичного ключа будет копироваться всегда, даже если он отсутствует в проекции столбца, настроенной в запросе FetchXML.

Важно!

  • При копировании данных из Dynamics явное сопоставление столбцов из Dynamics и приемника является необязательным. Однако мы настоятельно рекомендуем использовать сопоставление, чтобы обеспечить детерминированный результат копирования.
  • Если служба импортирует схему в пользовательский интерфейс разработки, она выводит схему. Это осуществляется путем выборки верхних строк из результата запроса Dynamics для инициализации списка исходных столбцов. В этом случае столбцы без значений в верхних строках опускаются. Такие же действия также применяются к предварительному просмотру данных и выполнению копирования, если нет явного сопоставления. Можно просматривать и добавлять в сопоставление дополнительные столбцы, которые обрабатываются при выполнении копирования.

Пример

"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 в разделе приемника действия копирования поддерживаются действия, указанные ниже.

Свойство Описание: Обязательное поле
type Для свойства Type приемника действия копирования надо задать значение "DynamicsSink", "DynamicsCrmSink" или "CommonDataServiceForAppsSink". Да.
writeBehavior Поведение операции при записи. Необходимо задать значение "Upsert". Да
alternateKeyName Альтернативное имя ключа, определенное в сущности для выполнения операции upsert.
writeBatchSize Количество строк данных, записываемых в Dynamics в каждом пакете. № Значение по умолчанию — 10.
ignoreNullValues Следует ли игнорировать значения NULL из входных данных, кроме ключевых полей, во время операции записи.

Допустимые значения — TRUE и FALSE.
  • TRUE: при выполнении операции upsert или обновления (update) оставьте данные в целевом объекте без изменений. При выполнении операции вставки (insert) вставьте определенное значение по умолчанию.
  • FALSE: при выполнении операции upsert или обновления (update) обновите данные в целевом объекте до значения NULL. При выполнении операции вставки (insert) вставьте значение NULL.
№ Значение по умолчанию — FALSE.
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No

Примечание.

Значение по умолчанию для приемника writeBatchSize и действия копирования parallelCopies для приемника Dynamics равно 10. Поэтому в Dynamics по умолчанию одновременно отправляются 100 записей.

Для Dynamics 365 online существует ограничение в 52 одновременных пакетных вызовов для каждой организации. Если это ограничение превышено, исключение "Сервер занят" выдается до того, как будет выполнен первый запрос. Сохраняйте значение writeBatchSize равным 10 или меньше, чтобы избежать такого регулирования количества одновременных вызовов.

Оптимальное сочетание writeBatchSize и parallelCopies зависит от схемы сущности. К элементам схемы относятся: количество столбцов, размер строк и количество подключаемых модулей, рабочих процессов или действий рабочего процесса, привязанных к этим вызовам. Значение по умолчанию параметра writeBatchSize (10) × parallelCopies (10) — это рекомендация службы Dynamics. Это значение подходит для большинства сущностей Dynamics, хотя может не обеспечивать наилучшей производительности. Вы можете настроить производительность путем корректировки комбинации в настройках активности копирования.

Пример

"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
            }
        }
    }
]

Получение данных из представлений

Чтобы получить данные из представлений 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 Логический
AttributeType.Customer GUID ✓ (См. руководство)
AttributeType.DateTime Datetime
AttributeType.Decimal Десятичное число
AttributeType.Double Двойной
AttributeType.EntityName Строка
AttributeType.Integer Int32
AttributeType.Lookup GUID ✓ (См. руководство)
AttributeType.ManagedProperty Логический
AttributeType.Memo Строка
AttributeType.Money Десятичное число
AttributeType.Owner GUID ✓ (См. руководство)
AttributeType.Picklist Int32
AttributeType.Uniqueidentifier GUID
AttributeType.String Строка
AttributeType.State Int32
AttributeType.Status Int32

Примечание.

Не поддерживаются следующие типы данных Dynamics: AttributeType.CalendarRules, AttributeType.MultiSelectPicklist, AttributeType.PartyList.

Запись данных в поле поиска

Чтобы записать данные в поле поиска с несколькими целевыми объектами, такими как Customer и Owner, следуйте указаниям и см. пример.

  1. Убедитесь, что источник содержит как значение поля, так и соответствующее имя целевой сущности.

    • Если все записи сопоставлены с одной целевой сущностью, убедитесь в одном из следующих условий:
      • В исходных данных имеется столбец, в котором хранится имя целевой сущности.
      • В источнике действия копирования добавлен дополнительный столбец для определения целевой сущности.
    • Если разные записи сопоставляются с разными целевыми сущностями, убедитесь, что в исходных данных имеется столбец, в котором хранится соответствующее имя целевой сущности.
  2. Сопоставьте столбцы значений и ссылок на сущность источника и приемника. Столбец ссылки на сущность надо сопоставить с виртуальным столбцом со специальным шаблоном именования {lookup_field_name}@EntityReference. Фактически в Dynamics этот столбец отсутствует. Его используют для обозначения того, что это столбец метаданных заданного поля поиска multitarget.

Например, предположим, что источник содержит следующие два столбца:

  • CustomerField, столбец типа GUID, который является значением первичного ключа целевой сущности в Dynamics.
  • Target, столбец типа String, который является логическим именем целевой сущности.

Также предположим, что необходимо скопировать такие данные в поле сущности приемника Dynamics CustomerField типа Customer.

При сопоставлении столбцов действия копирования сопоставьте два столбца как указано ниже.

  • CustomerField с CustomerField. Это сопоставление является обычным сопоставлением полей.
  • Target с CustomerField@EntityReference. Столбец приемника — это виртуальный столбец, представляющий ссылку на сущность. Введите соответствующие имена полей в сопоставлении, поскольку они не будут отображаться при импорте схем.

Dynamics lookup-field column mapping

Если все исходные записи сопоставляются с одной и той же целевой сущностью, а исходные данные не содержат имени целевой сущности, имеется ярлык для добавления дополнительного столбца в источнике действия копирования. Назовите новый столбец с помощью шаблона {lookup_field_name}@EntityReference, установите значение в поле имени целевой сущности, затем выполните обычное сопоставление столбцов. Если имена столбцов источника и приемника идентичны, можно пропустить явное сопоставление столбцов, поскольку действие копирования по умолчанию сопоставляет столбцы по имени.

Dynamics lookup-field adding an entity-reference column

Запись данных в поле подстановки с помощью альтернативных ключей

Чтобы записать данные в поле подстановки с помощью альтернативных ключевых столбцов, следуйте приведенным ниже рекомендациям и примеру:

  1. Убедитесь, что источник содержит все ключевые столбцы подстановки.

  2. Альтернативные ключевые столбцы должны быть сопоставлены со столбцом с помощью специального шаблона именования {lookup_field_name}@{alternate_key_column_name}. В Dynamics этот столбец отсутствует. Он используется для указания того, что этот столбец используется для поиска записи в целевой сущности.

  3. Перейдите на вкладку Сопоставление в преобразовании приемника потоков данных для сопоставления. Выберите альтернативный ключ в качестве выходных столбцов в поле подстановки. Следующее значение указывает ключевые столбцы этого альтернативного ключа.

    Screenshot shows selecting alternate key columns.

  4. После выбора столбцы альтернативного ключа будут автоматически отображаться ниже.

    Screenshot shows mapping columns to lookup fields via alternate keys step 1.

  5. Сопоставьте входные столбцы слева с выходными столбцами.

    Screenshot shows mapping columns to lookup fields via alternate keys step 2.

Примечание.

В настоящее время это поддерживается только при использовании встроенного режима в преобразовании приемника потоков данных для сопоставления.

Свойства потока данных для сопоставления

При преобразовании данных в потоке данных для сопоставления можно выполнять операции чтения и записи в таблицах в Dynamics. Дополнительные сведения см. в описаниях преобразования источника и преобразования приемника в разделе, посвященном потокам данных для сопоставления. В качестве типа источника и приемника можно выбрать набор данных Dynamics или встроенный набор данных.

Преобразование источника

В приведенной ниже таблице перечислены свойства, поддерживаемые Dynamics. Изменить эти свойства можно на вкладке Source options (Параметры источника).

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Имя объекта Логическое имя сущности, которое требуется получить. Да, если используется встроенный набор данных - (только для встроенного набора данных)
Сущность
Query FetchXML — это защищаемый язык запросов, используемый в Dynamics Online и локальной версии Dynamics. См. следующий пример. Дополнительные сведения см. в разделе Создание запросов с помощью FetchXML. Нет Строка query

Примечание.

Если в качестве типа входных данных выбрать запрос, не удастся получить тип столбца из таблиц. По умолчанию он будет считаться строковым.

Пример сценария источника 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. Эти свойства можно изменить на вкладке Параметры приемника.

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Альтернативное имя ключа Альтернативное имя ключа, определенное в сущности для выполнения операций update, upsert или delete. No - alternateKeyName
Метод обновления Укажите, какие операции разрешены в назначении базы данных. По умолчанию разрешены только операции вставки.
Для выполнения обновления (update), обновления или вставки (upsert) или удаления (delete) строк требуется преобразование alter-row, чтобы отметить строки для этих действий.
Да true или false Вставляемый
updateable
подлежит обновлению или вставке
подлежит удалению
Имя объекта Логическое имя сущности, которое требуется записать. Да, если используется встроенный набор данных - (только для встроенного набора данных)
Сущность

Пример сценария приемника 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

Свойства действия поиска

Подробные сведения об этих свойствах см. в статье Действие поиска.

Список хранилищ данных, которые поддерживаются действием Copy в качестве источников и приемников, см. в разделе Поддерживаемые хранилища данных.