Azure Data Factory 또는 Azure Synapse Analytics를 사용하여 Dynamics 365(Microsoft Dataverse) 또는 Dynamics CRM에서 데이터 복사 및 변환
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
이 문서에서는 Azure Data Factory 또는 Synapse 파이프라인에서 복사 작업을 사용하여 Dynamics 365(Microsoft Dataverse) 또는 Dynamics CRM 간에 데이터를 복사하고 데이터 흐름을 사용하여 Dynamics 365(Microsoft Dataverse) 또는 Dynamics CRM에서 데이터를 변환하는 방법을 간략하게 설명합니다. 자세한 내용은 Azure Data Factory 및 Azure Synapse Analytics 소개 문서를 참조하세요.
지원되는 기능
이 커넥터는 다음과 같은 작업에 지원됩니다.
지원되는 기능 | IR |
---|---|
복사 작업(원본/싱크) | 3,4 |
매핑 데이터 흐름(원본/싱크) | 9 |
조회 작업 | 3,4 |
① Azure 통합 런타임 ② 자체 호스팅 통합 런타임
복사 작업에서 원본 및 싱크로 지원되는 데이터 저장소의 목록은 지원되는 데이터 저장소 표를 참조하세요.
참고 항목
2020년 11월부터 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 사용자 할당 관리 ID |
Dynamics 온라인 및 Microsoft Entra 서비스 주체 또는 Office 365 인증 |
IFD(인터넷 연결 배포)를 사용하는 Dynamics 365 온-프레미스 IFD로 Dynamics CRM 2016 온-프레미스 IFD로 Dynamics CRM 2015 온-프레미스 |
IFD | IFD 및 IFD 인증을 사용하는 Dynamics 온-프레미스 |
참고 항목
지역 검색 서비스 지원 중단에 따라 서비스가 업그레이드되어 Office 365 인증을 사용하는 동안 전역 검색 서비스를 활용하게 되었습니다.
Important
테넌트와 사용자가 Microsoft Entra ID에 조건부 액세스를 위해 구성되어 있거나 Multi-Factor Authentication이 필요한 경우 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
이 커넥터는 재무, 운영, 인재 같은 다른 애플리케이션 유형을 지원하지 않습니다.
팁
Dynamics 365 Finance and Operations에서 데이터를 복사하려면 Dynamics AX 커넥터를 사용하면 됩니다.
이 Dynamics 커넥터는 Dynamics XRM 도구를 기반으로 빌드됩니다.
필수 조건
Microsoft Entra 서비스 주체 인증과 함께 이 커넥터를 사용하려면 Dataverse 또는 Dynamics에서 S2S(서버 간) 인증을 설정해야 합니다. 먼저 Microsoft Entra ID에 애플리케이션 사용자(서비스 주체)를 등록합니다. 이 작업을 수행하는 방법은 여기에서 찾을 수 있습니다. 애플리케이션을 등록하는 동안 Dataverse 또는 Dynamics에서 해당 사용자를 만들고 권한을 부여해야 합니다. 이러한 권한은 Dataverse 또는 Dynamics에서 사용 권한이 부여된 팀에 애플리케이션 사용자를 추가하여 직접 또는 간접적으로 부여할 수 있습니다. 애플리케이션 사용자를 설정하여 Dataverse로 인증하는 방법에 대한 자세한 내용은 여기에서 찾을 수 있습니다.
시작하기
파이프라인에 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용하면 됩니다.
UI를 사용하여 Dynamics 365(Microsoft Dataverse) 또는 Dynamics CRM에 연결된 서비스 만들기
다음 단계에 따라 Azure Portal UI에서 Dynamics 365에 연결된 서비스를 만듭니다.
Azure Data Factory 또는 Synapse 작업 영역에서 관리 탭으로 이동하여 연결된 서비스를 선택하고 새로 만들기를 클릭합니다.
Dynamics 또는 Dataverse를 검색하고 Dynamics 365(Microsoft Dataverse) 또는 Dynamics CRM 커넥터를 선택합니다.
서비스 세부 정보를 구성하고, 연결을 테스트하고, 새로운 연결된 서비스를 만듭니다.
커넥터 구성 세부 정보
다음 섹션에서는 Dynamics에 한정된 엔터티를 정의하는 데 사용되는 속성에 대해 자세히 설명합니다.
연결된 서비스 속성
Dynamics 연결 서비스에 다음 속성이 지원됩니다.
Dynamics 365 및 Dynamics CRM Online
속성 | 설명 | 필수 |
---|---|---|
type | type 속성은 "Dynamics", "DynamicsCrm" 또는 "CommonDataServiceForApps"로 설정되어야 합니다. | 예 |
deploymentType | Dynamics 인스턴스의 배포 유형입니다. Dynamics 온라인의 값은 "Online"이어야 합니다. | 예 |
serviceUri | 브라우저에서 액세스하는 것과 동일한 Dynamics 인스턴스의 서비스 URL입니다. 예를 들면 “https://<organization-name>.crm[x].dynamics.com”입니다. | 예 |
authenticationType | Dynamics 서버에 연결하기 위한 인증 유형입니다. 유효한 값은 “AADServicePrincipal”, “Office365”, “ManagedIdentity”입니다. | 예 |
servicePrincipalId | Microsoft Entra 애플리케이션의 클라이언트 ID입니다. | 인증이 "AADServicePrincipal"인 경우 예 |
servicePrincipalCredentialType | 서비스 사용자 인증에 사용할 자격 증명 유형입니다. 유효한 값은 "ServicePrincipalKey" 및 "ServicePrincipalCert"입니다. 참고: ServicePrincipalKey를 사용하는 것이 좋습니다. ServicePrincipalCert 자격 증명 유형에는 서비스가 키 자격 증명 모음에서 비밀을 검색하지 못하는 일시적인 문제가 발생할 수 있는 알려진 제한 사항이 있습니다. |
인증이 "AADServicePrincipal"인 경우 예 |
servicePrincipalCredential | 서비스 사용자 자격 증명입니다. "ServicePrincipalKey"를 자격 증명 유형으로 사용하는 경우 servicePrincipalCredential 은 연결된 서비스 배포 시 서비스에서 암호화하는 문자열일 수 있습니다. 또는 Azure Key Vault의 비밀에 대한 참조일 수 있습니다. "ServicePrincipalCert"를 자격 증명으로 사용하는 경우 servicePrincipalCredential 은 Azure Key Vault의 인증서에 대한 참조여야 하며 인증서 콘텐츠 형식이 PKCS #12인지 확인해야 합니다. |
인증이 "AADServicePrincipal"인 경우 예 |
사용자 이름 | Dynamics에 연결할 사용자 이름입니다. | 인증이 "Office365"인 경우 예 |
password | 사용자 이름으로 지정한 사용자 계정의 암호입니다. 이 필드를 "SecureString"으로 표시하여 안전하게 저장하거나, Azure Key Vault에 저장된 비밀을 참조합니다. | 인증이 "Office365"인 경우 예 |
credentials | 사용자가 할당한 관리 ID를 자격 증명 개체로 지정합니다. 하나 이상의 사용자가 할당한 관리 ID를 만들고, 데이터 팩터리에 할당하고, 각 사용자가 할당한 관리 ID에 대한 자격 증명을 만듭니다. |
인증이 “ManagedIdentity”인 경우 예 |
connectVia | 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다. 값이 지정되지 않은 경우 속성은 기본 Azure Integration Runtime을 사용합니다. | 아니요 |
참고 항목
Dynamics 커넥터는 이전에 선택적 organizationName 속성을 사용하여 Dynamics CRM 또는 Dynamics 365 Online 인스턴스를 식별했습니다. 해당 속성이 계속 작동하는 동안 인스턴스 검색 성능을 높이려면 대신 새 serviceUri 속성을 지정하는 것이 좋습니다.
예: Microsoft Entra 서비스 주체 및 키 인증을 사용하는 Dynamics 온라인
{
"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"
}
}
}
예: Microsoft Entra 서비스 주체 및 인증서 인증을 사용하는 Dynamics 온라인
{
"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"
}
}
}
예: Office365 인증을 사용하는 Dynamics 온라인
{
"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"
}
}
}
예: 사용자가 할당한 관리 ID 인증을 사용하는 Dynamics 온라인
{
"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"
}
}
}
IFD로 Dynamics 365 및 Dynamics CRM 온-프레미스
Dyanmics 온라인과 비교되는 추가 속성은 hostName 및 port입니다.
속성 | 설명 | 필수 |
---|---|---|
type | type 속성은 "Dynamics", "DynamicsCrm" 또는 "CommonDataServiceForApps"로 설정되어야 합니다. | 예 |
deploymentType | Dynamics 인스턴스의 배포 유형입니다. IFD를 사용하는 Dynamics 온-프레미스의 값은 "OnPremisesWithIfd"여야 합니다. | 예 |
hostName | 온-프레미스 Dynamics 서버의 호스트 이름입니다. | 예 |
port | 온-프레미스 Dynamics 서버의 포트입니다. | 아니요. 기본값은 443입니다. |
organizationName | Dynamics 인스턴스의 조직 이름입니다. | 예 |
authenticationType | Dynamics 서버에 연결하기 위한 인증 유형입니다. IFD를 사용하여 Dynamics 온-프레미스에 대해 "ActiveDirectoryAuthentication"을 지정합니다. | 예 |
도메인 | 사용자 자격 증명을 확인할 Active Directory 도메인입니다. | 예 |
사용자 이름 | Dynamics에 연결할 사용자 이름입니다. | 예 |
password | 사용자 이름에 지정한 사용자 계정의 암호입니다. 이 필드를 "SecureString"으로 표시하여 안전하게 저장할 수 있습니다. 또는 Key Vault에 암호를 저장하고 데이터를 복사할 때 여기에서 복사 작업을 끌어올 수 있습니다. Key Vault에 자격 증명 저장에서 자세히 알아봅니다. | 예 |
connectVia | 데이터 저장소에 연결하는 데 사용할 통합 런타임입니다. 값이 지정되지 않은 경우 속성은 기본 Azure Integration Runtime을 사용합니다. | 아니요 |
참고 항목
2024년 8월 31일까지 Ifd 인증 유형이 종료되므로 현재 사용 중인 경우 해당 날짜 이전에 Active Directory 인증 유형으로 업그레이드하시기 바랍니다.
예: Active Directory 인증을 사용하여 IFD로 Dynamics 온-프레미스
{
"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 간에 데이터를 복사하려는 경우 다음과 같은 속성이 지원됩니다.
속성 | 설명 | 필수 |
---|---|---|
type | 데이터 세트의 type 속성은 "DynamicsEntity", "DynamicsCrmEntity" 또는 "CommonDataServiceForAppsEntity"로 설정되어야 합니다. | 예 |
entityName | 검색할 엔터티의의 논리적 이름입니다. | 작업 원본이 "query"로 지정된 경우 아니요, 싱크의 경우 예 |
예시
{
"name": "DynamicsDataset",
"properties": {
"type": "DynamicsEntity",
"schema": [],
"typeProperties": {
"entityName": "account"
},
"linkedServiceName": {
"referenceName": "<Dynamics linked service name>",
"type": "linkedservicereference"
}
}
}
복사 작업 속성
작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요. 이 섹션에서는 Dynamics 원본 및 싱크 형식에서 지원하는 속성의 목록을 제공합니다.
원본 유형인 Dynamics
Dynamics에서 데이터를 복사하려는 경우 복사 작업 원본 섹션에서는 다음 속성을 지원합니다.
속성 | 설명 | 필수 |
---|---|---|
type | 복사 작업 원본의 유형 속성은 "DynamicsSource", "DynamicsCrmSource" 또는 "CommonDataServiceForAppsSource"로 설정되어야 합니다. | 예 |
query | FetchXML은 재산적 가치가 있는 쿼리 언어로, Dynamics 온라인 및 온-프레미스에서 사용됩니다. 다음 예를 참조하세요. 자세한 내용을 알아보려면 FeachXML로 쿼리 작성을 참조하세요. | 데이터 세트에 entityName 이(가) 지정되지 않은 경우 아니요 |
참고 항목
PK 열은 FetchXML 쿼리에서 구성한 열 프로젝트에 포함되지 않은 경우에도 항상 복사됩니다.
Important
- Dynamics에서 데이터를 복사할 때 Dynamics에서 싱크로의 명시적 열 매핑은 선택 사항입니다. 하지만 결정적인 복사 결과를 보장하려면 매핑을 사용하는 것이 좋습니다.
- 서비스가 작성 UI에서 스키마를 가져올 때 스키마를 유추합니다. 이때 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 | 복사 작업 싱크의 유형 속성은 "DynamicsSink", "DynamicsCrmSink" 또는 "CommonDataServiceForAppsSink"로 설정되어야 합니다. | 예. |
writeBehavior | 작업의 쓰기 동작입니다. 값은 "Upsert"여야 합니다. | 예 |
alternateKeyName | upsert를 수행하기 위해 엔터티에 정의된 대체 키 이름입니다. | 아니요. |
writeBatchSize | 각 일괄 처리에서 Dynamics에 작성된 데이터의 행 수입니다. | 아니요. 기본값은 10입니다. |
ignoreNullValues | 쓰기 작업 중에 키 필드를 제외한 입력 데이터에서 null 값을 무시할지 여부입니다. 유효한 값은 TRUE 및 FALSE입니다.
|
아니요. 기본값은 FALSE입니다. |
maxConcurrentConnections | 작업 실행 중 데이터 저장소에 설정된 동시 연결의 상한입니다. 동시 연결을 제한하려는 경우에만 값을 지정합니다. | 아니요 |
참고 항목
Dynamics 싱크에 대한 싱크 writeBatchSize 및 복사 작업 parallelCopies의 기본값은 모두 10입니다. 따라서 기본적으로 레코드 100개가 Dynamics에 동시 제출됩니다.
Dynamics 365 Online의 경우 조직당 동시 일괄 처리 호출 52개라는 제한이 있습니다. 이 제한을 초과하면 첫 번째 요청이 실행되기도 전에 "서버 작업 중" 예외가 throw됩니다. 이러한 동시 호출의 제한을 방지하려면 writeBatchSize를 10개 이하로 유지합니다.
최적의 writeBatchSize/parallelCopies 조합은 엔터티의 스키마에 따라 달라집니다. 스키마 요소에는 열 수, 행 크기 및 이러한 호출에 연결된 플러그 인, 워크플로 또는 워크플로 활동의 수가 포함됩니다. writeBatchSize(10) x 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는 지원되지 않습니다.
조회 필드에 데이터 쓰기
고객 및 소유자와 같은 여러 대상이 포함된 조회 필드에 데이터를 쓰려면 이 참고 자료와 예제를 따릅니다.
원본에 필드 값과 해당 대상 엔터티 이름이 모두 포함되도록 합니다.
- 모든 레코드가 동일한 대상 엔터티에 매핑되는 경우 다음 조건 중 하나를 확인합니다.
- 원본 데이터에는 대상 엔터티 이름을 저장하는 열이 하나 있습니다.
- 대상 엔터티를 정의하기 위해 복사 작업 원본에 다른 열을 추가했습니다.
- 다른 레코드가 다른 대상 엔터티에 매핑되는 경우, 원본 데이터에 해당 대상 엔터티 이름을 저장하는 열이 하나 있는지 확인합니다.
- 모든 레코드가 동일한 대상 엔터티에 매핑되는 경우 다음 조건 중 하나를 확인합니다.
값 및 엔터티-참조 열을 모두 원본에서 싱크로 매핑합니다. 엔터티-참조 열은
{lookup_field_name}@EntityReference
특수 명명 패턴을 사용하여 가상 열에 매핑되어야 합니다. 이 열이 Dynamics에 실제로 존재하지는 않습니다. 이는 해당 열이 지정된 멀티 타기팅 조회 필드의 메타데이터 열인지를 나타내는 데 사용됩니다.
예를 들어 원본에 다음의 두 열이 있다고 가정해 보겠습니다.
- Dynamics 대상 엔터티의 기본 키 값인 GUID 형식의 Customerfield 열
- 대상 엔터티의 논리적 이름인 String 형식의 Target 열
또한 이러한 데이터를 Customer 형식의 싱크 Dynamics 엔터티 필드인 CustomerField로 복사하려는 경우를 가정해 보겠습니다.
복사-작업 열 매핑에서 두 열을 다음과 같이 매핑합니다.
- CustomerField를 CustomerField로 매핑. 이 매핑은 표준 필드 매핑입니다.
- Target을 CustomerField@EntityReference에 매핑. 싱크 열은 엔터티 참조를 나타내는 가상의 열입니다. 스키마를 가져오면 표시되지 않으므로 매핑에 이러한 필드 이름을 입력합니다.
모든 원본 레코드가 동일한 대상 엔터티에 매핑되고 원본 데이터가 대상 엔터티 이름을 포함하지 않는 경우, 여기에 바로 가기(복사 작업 원본에서 다른 열 추가)가 있습니다. {lookup_field_name}@EntityReference
패턴을 사용하여 새 열의 이름을 지정하고 값을 대상 엔터티 이름으로 설정한 다음, 평소와 같이 열 매핑을 진행합니다. 원본 및 싱크 열 이름이 동일한 경우 기본적으로 복사 작업에서는 이름을 기준으로 열을 매핑하기 때문에 명시적 열 매핑을 건너뛸 수도 있습니다.
대체 키를 통해 조회 필드에 데이터 쓰기
대체 키 열을 사용하여 조회 필드에 데이터를 쓰려면 다음 지침과 예제를 따르세요.
원본에 모든 조회 키 열이 포함되어 있는지 확인합니다.
대체 키 열은 특수 명명 패턴
{lookup_field_name}@{alternate_key_column_name}
이 있는 열에 매핑되어야 합니다. 열이 Dynamics에 존재하지 않습니다. 이 열은 대상 엔터티의 레코드를 조회하는 데 사용됨을 나타내는 데 사용됩니다.매핑 데이터 흐름의 싱크 변환에서 매핑 탭으로 이동합니다. 조회 필드 아래의 출력 열로 대체 키를 선택합니다. 다음 값은 이 대체 키의 키 열을 나타냅니다.
선택되면 대체 키 열이 자동으로 아래에 표시됩니다.
왼쪽의 입력 열을 출력 열과 매핑합니다.
참고 항목
현재 이는 매핑 데이터 흐름의 싱크 변환에서 인라인 모드를 사용하는 경우에만 지원됩니다.
매핑 데이터 흐름 속성
매핑 데이터 흐름에서 데이터를 변환하는 경우 Dynamics에서 테이블에 대한 읽기 및 쓰기를 수행할 수 있습니다. 자세한 내용은 매핑 데이터 흐름에서 원본 변환 및 싱크 변환을 참조하세요. Dynamics 데이터 세트 또는 인라인 데이터 세트를 원본 및 싱크 유형으로 사용하도록 선택할 수 있습니다.
원본 변환
다음 표에는 Dynamics에서 지원하는 속성이 나열되어 있습니다. 이러한 속성은 원본 옵션 탭에서 편집할 수 있습니다.
이름 | 설명 | 필수 | 허용된 값 | 데이터 흐름 스크립트 속성 |
---|---|---|---|---|
엔터티 이름 | 검색할 엔터티의의 논리적 이름입니다. | 예 인라인 데이터 세트 사용 시 | - | (인라인 데이터 세트에만 해당) 개체 |
쿼리 | FetchXML은 재산적 가치가 있는 쿼리 언어로, Dynamics 온라인 및 온-프레미스에서 사용됩니다. 다음 예를 참조하세요. 자세한 내용을 알아보려면 FeachXML로 쿼리 작성을 참조하세요. | 아니요 | 문자열 | 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 싱크에서 지원하는 속성이 나열되어 있습니다. 해당 속성은 싱크 옵션 탭에서 편집할 수 있습니다.
이름 | 설명 | 필수 | 허용된 값 | 데이터 흐름 스크립트 속성 |
---|---|---|---|---|
대체 키 이름 | 업데이트, upsert 또는 삭제를 수행하기 위해 엔터티에 정의된 대체 키 이름입니다. | 아니요 | - | alternateKeyName |
Update 메서드 | 데이터베이스 대상에서 허용되는 작업을 지정합니다. 기본값은 삽입만 허용하는 것입니다. 행을 업데이트, upsert 또는 삭제하려면 해당 작업을 위해 행에 태그를 지정하는 데 행 변경 변환이 필요합니다. |
예 | true 또는 false |
insertable updateable upsertable deletable |
엔터티 이름 | 쓰려는 엔터티의 논리적 이름입니다. | 예 인라인 데이터 세트 사용 시 | - | (인라인 데이터 세트에만 해당) 개체 |
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
조회 작업 속성
속성에 대한 자세한 내용을 알아보려면 조회 작업을 참조하세요.
관련 콘텐츠
지원되는 데이터 목록의 경우 복사 작업은 원본 및 싱크로 저장합니다. 지원되는 데이터 저장소를 참조하세요.