편집

다음을 통해 공유


여러 Power Apps 인스턴스 간의 최종 일관성

Microsoft Power Platform
Microsoft Dataverse
Azure Logic Apps

이 문서에서는 가상의 미국 기반 고객인 Contoso가 최근 유럽에 본사를 둔 다른 회사를 인수하고 두 회사 간의 CRM 및 ERP 시스템을 진행 중인 시나리오를 간략하게 설명합니다. 이 통합의 일환으로 완전히 통합될 때까지 Dynamics 365 Dataverse 엔터티의 일부를 동기화 상태로 유지해야 합니다. Conotso 전용 LOB(기간 업무) 앱은 두 시스템의 데이터를 모두 사용하며 데이터가 동기화를 기다리고 있거나 누락된 경우 요청을 수락할 수 있어야 합니다. 다음 가이드에서는 Power Platform 인스턴스 간의 최종 일관성을 고려하는 방법을 보여 줍니다.

건축학

GUID 또는 대체 키에 따라 항상 upsert하는 플러그 인/흐름

실패한 다중 시스템 동기화에 대한 솔루션을 제공하는 데이터 버스 플러그 인을 보여 주는 다이어그램

이 아키텍처의 Visio 파일 다운로드합니다.

워크플로

이 솔루션은 플러그 인 수명 주기 내에서 여러 플러그 인 단계로 빌드할 수 있습니다. 만드는 엔터티가 필수인 경우 PreValidation 단계사용합니다. PreValidation 데이터베이스 트랜잭션이 시작되기 전에 발생합니다. 필드가 필수인 경우 기본 옵션입니다. 그러나 일부 시나리오에서는 PreCreate 플러그 인 단계로 충분합니다.

  1. 미국 인스턴스 논리 앱을 통해 Europe Instance 새 계정을 동기화하려고 시도합니다. 가동 중지 시간 또는 업그레이드로 인해 Europe Instance 연결할 수 없습니다.
  2. Contoso LOB 앱은 US Instance주 계정 엔터티를 읽습니다. Europe Instance복제되지 않은 계정 엔터티를 참조하는 API 호출을 제출하려고 합니다. 즉, 동기화가 작동하지 않아 레코드가 존재하지 않으므로 API 호출이 실패합니다.
  3. 그러나 preCreate 플러그 인을PreValidation은 먼저 제공된 엔터티 GUID 및 제공된 참조 데이터를 기반으로 upsert 수행합니다. 이미 있는 경우 아무것도 변경되지 않습니다. 없는 경우 대부분의 필드가 비어 있는 새 계정이 만들어집니다.
  4. 지정된 ID를 가진 계정이 시스템에 있기 때문에 API 호출이 성공합니다. 플러그 인이 작업을 가로채 누락된 레코드를 정상적으로 처리했습니다. LOB 애플리케이션의 보고서가 성공적으로 생성됩니다.

메모

두 인스턴스를 참조할 때 플랫폼 중단을 처리하기 위해 이 솔루션의 일부로 백오프하고 다시 시도하기 위해 사용자 지정 코드에 회로 차단기 패턴을 도입하는 것이 좋습니다. 회로 차단기 사용에 대한 자세한 내용은 회로 차단기 패턴참조하세요.

대안

위에서 설명한 시나리오에서는 사용자 지정 논리 앱을 복제 방법으로 사용합니다. 그러나 Dataverse 인스턴스 간에 데이터를 복제하는 방법에는 여러 가지가 있습니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • Logic Apps
  • Azure Functions의 함수 앱
  • Azure Data Factory
  • Azure Synapse Analytics
  • Power Automate

시나리오 세부 정보

조직에서는 일반적으로 Dataverse 엔터티의 하위 집합인 두 개 이상의 Power Platform 인스턴스를 동기화 상태로 유지해야 하는 경우가 있습니다. 이 요구 사항은 조직에서 지리적 격리를 위해 의도적으로 새 인스턴스를 추가했지만 모든 지역에서 공통 데이터 집합이 필요한 경우에 발생할 수 있습니다. 또는 Power Platform 통합이 완료되기 전에 두 조직이 병합되는 경우에 발생할 수 있습니다.

동기화 프로세스가 설계된 대로 작동하면 두 인스턴스에서 사용하는 기간 업무 애플리케이션에는 문제가 없습니다. 그러나 동기화 메커니즘은 오류 증명이 되지 않습니다. 중단 또는 예기치 않은 문제가 발생할 수 있습니다. 이 경우 불완전한 데이터를 처리하려면 두 인스턴스의 데이터를 사용하는 기간 업무 애플리케이션을 빌드해야 합니다.

Contoso의 새로운 유럽 자회사를 Contoso의 비즈니스 구조에 통합하려면 Power Platform의 한 인스턴스에서 다른 인스턴스로 계정 및 연락처를 동기화해야 합니다. 이 시나리오에서 Power Platform의 미국 인스턴스는 사용자 지정 논리 앱을 통해 일일 참조 데이터 일괄 처리를 유럽 인스턴스에 동기화합니다. 독점 Contoso LOB 앱은 사용자가 만든 문제 티켓에 대한 보고를 생성합니다. 이 작업을 완료하기 위해 LOB 앱은 두 Dataverse 인스턴스에서 사용자 데이터를 읽어 관련 데이터, 미국 인스턴스의 기본 참조 키 및 유럽 인스턴스의 티켓 데이터를 가져옵니다. 가동 중지 시간, 유지 관리 또는 다른 통신 문제로 인해 동기화 프로세스가 완료되지 않은 경우 요청은 유럽 인스턴스에서 누락된 엔터티로 인해 오류를 생성합니다.

잠재적인 사용 사례

이 패턴은 다음과 같은 상황에서 유용할 수 있습니다.

  • 참조 데이터를 보내는 시스템이 다운되었습니다.
  • 데이터 동기화에 시간이 오래 걸리거나 프로세스가 지연됩니다.
  • 사용 시스템에는 생성되는 엔터티 만들기에 대한 논리가 없습니다.

이 방법을 사용하는 경우

다음 시나리오에서 이 방법을 사용합니다.

  • 지정된 키가 있는 레코드가 존재하도록 보장하려고 하며 레코드가 완전히 수화되지 않는 것은 중요하지 않습니다.
  • 데이터가 아직 동기화되지 않은 경우에도 생성을 수락해야 합니다.

이 패턴은 다음 시나리오에서 적합하지 않을 수 있습니다.

  • 레코드를 만들 때 논리가 적용됩니다. 데이터는 수화되지 않으므로 사용 가능한 특정 속성을 사용하는 것은 안전하지 않습니다.

예제

다음 예제에서는 잠재적인 경험 및 동기화 지연의 결과를 보여 줍니다.

예제 1 - 중단 또는 일시적인 오류 없이 성공한 경로

성공적인 다중 시스템 동기화를 보여 주는 다이어그램

이 아키텍처의 Visio 파일 다운로드합니다.

  1. US 인스턴스 논리 앱을 통해 Europe Instance 새 계정을 동기화합니다. 일시적인 오류 또는 중단이 발생하지 않아서 모두 작동합니다.
  2. Contoso LOB 앱은 US Instance 주 계정 엔터티를 읽고 Europe Instance복제된 계정 엔터티를 참조하는 API 호출을 제출하려고 합니다. 모든 것이 작동했고 중단이나 일시적인 오류가 발생하지 않아 작동합니다. LOB 애플리케이션의 보고서가 성공적으로 생성됩니다.

예제 2 - 동기화가 중단되거나 지연된 실패한 경로

실패한 다중 시스템 동기화를 보여 주는 다이어그램

이 아키텍처의 Visio 파일 다운로드합니다.

  1. 미국 인스턴스 논리 앱을 통해 Europe Instance 새 계정을 동기화하려고 시도합니다. 가동 중지 시간, 유지 관리 또는 다른 통신 문제로 인해 Europe Instance 연결할 수 없습니다.
  2. Contoso LOB 앱은 US Instance 주 계정 엔터티를 읽고 Europe Instance복제되지 않은 계정 엔터티를 참조하는 API 호출을 제출하려고 합니다. 지정된 식별자가 있는 계정이 Europe Instance 만들어지지 않았고 보고서가 생성되지 않아 API 호출이 실패합니다.

고려 사항

아직 수화되지 않은 엔터티에 비즈니스 논리가 미치는 영향을 고려합니다. 엔터티가 아직 완전히 수화되고 동기화되지 않은 시나리오를 고려합니다. 일부 속성은 null이므로 이 방법을 사용할 때 데이터에 대한 모든 결정을 고려해야 합니다.

다음 단계

관련 아키텍처:

  • Power Platform 사용하여 시민 AI
  • 대규모 Power Automate 배포

웹 개발 지침: