다음을 통해 공유


Azure Logic Apps의 워크플로에서 Microsoft Dataverse에 연결

적용 대상: Azure Logic Apps(사용량 + 표준)

Microsoft Dataverse 데이터베이스와 함께 작동하는 작업을 자동화하려면 Azure Logic Apps의 워크플로와 함께 Microsoft Dataverse 커넥터를 사용할 수 있습니다.

예를 들어 행을 만들고, 행을 업데이트하고, 다른 작업을 수행하는 워크플로를 작성할 수 있습니다. Dataverse 데이터베이스에서 정보를 가져와서 워크플로에서 사용할 다른 작업에 출력을 사용할 수 있도록 할 수도 있습니다. 예를 들어 Dataverse 데이터베이스에서 행을 추가, 업데이트 또는 삭제할 때 Office 365 Outlook 커넥터를 사용하여 전자 메일을 보낼 수 있습니다.

Dataverse 커넥터는 이전에 Common Data Service 2.0 커넥터로 알려졌으며 원래 Dynamics 365 커넥터로 알려졌습니다. Dataverse 커넥터를 사용하여 Microsoft Dynamics 365 Sales, Microsoft Dynamics 365 Customer Service, Microsoft Dynamics 365 Field Service, Microsoft Dynamics 365 Customer Insights - Journeys 및 Microsoft Dynamics 365 Project Service Automation에 액세스할 수 있습니다.

이 가이드에서는 워크플로에 Dataverse 트리거 또는 작업을 추가하는 방법과 매개 변수 옵션의 작동 방식을 보여 줍니다.

중요합니다

2023년 10월부터 새 워크플로는 현재 Dataverse 커넥터 작업을 사용해야 합니다. 레거시 Dataverse 커넥터 작업은 더 이상 새 워크플로에서 사용할 수 없습니다.

이전 버전과의 호환성을 지원하기 위해 레거시 Dataverse 커넥터 작업은 사용 중단 공지 날짜로부터 1년이 지난 후 기존 워크플로에서 계속 작업했습니다. 특정 종료 날짜가 없더라도 현재 커넥터 작업을 사용하도록 기존 워크플로를 즉시 업데이트해야 합니다. 자세한 내용은 Azure Logic Apps용 Microsoft Dataverse(레거시) 커넥터가 더 이상 사용되지 않으며 다른 커넥터로 대체됨을 참조하세요.

커넥터 참조

작업, 제한 및 기타 세부 정보와 같은 커넥터의 Swagger 설명을 기반으로 하는 기술 정보는 관리되는 커넥터 참조 페이지를 참조하세요.

필수 조건

  • Azure 계정 및 구독 무료 Azure 계정을 가져옵니다.

  • Dataverse Data Service 환경 및 데이터베이스는 조직이 Dataverse 데이터베이스에서 비즈니스 데이터를 저장, 관리 및 공유하는 위치입니다.

    자세한 내용은 다음을 참조하세요.

    비고

    일부 시나리오에서는 논리 앱 리소스에 대한 액세스 제한을 사용하도록 설정하여 공용 네트워크의 인바운드 액세스를 제어해야 할 수 있습니다. Power Platform의 인바운드 통신이 PowerPlatformInfra 서비스 태그를 사용하여 워크플로를 트리거하도록 허용하는 경우 비지역 버전을 사용해야 합니다.

  • Azure Logic Apps에 대한 기본 지식과 함께, 사용하고자 하는 Consumption 또는 Standard 논리 앱 리소스 및 워크플로를 통해 Dataverse 데이터베이스에 접근하려는 경우 필요한 정보입니다. Dataverse 트리거를 사용하려면 빈 워크플로가 필요합니다. Dataverse 작업을 사용하려면 시나리오에 적합한 트리거로 시작하는 워크플로가 필요합니다.

    자세한 내용은 다음을 참조하세요.

Dataverse 트리거 추가

소비 또는 표준 논리 앱 워크플로가 있는지 여부에 따라 해당 단계를 수행합니다.

  1. Azure Portal의 디자이너에서 논리 앱 워크플로를 엽니다.

  2. 일반적인 단계에 따라 시나리오에 적합한 Microsoft Dataverse 트리거를 추가합니다.

    이 예제에서는 행을 추가, 수정 또는 삭제할 때라는 트리거를 계속합니다.

  3. 프롬프트에서 Dataverse 환경 또는 데이터베이스에 로그인합니다.

  4. 트리거 정보 상자에서 필요한 매개 변수 값을 제공합니다.

    다음 예제에서는 샘플 트리거를 보여줍니다.

    스크린샷은 소비 워크플로 디자이너 및 예제 트리거를 보여줍니다.

  5. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

  6. 이제 트리거가 발생할 때 수행할 워크플로에 대해 하나 이상의 작업을 추가합니다.

    예를 들어 트리거의 출력에 따라 이메일을 보내는 Dataverse 작업 또는 작업을 추가할 수 있습니다.

Dataverse 작업 추가

  1. Azure Portal의 디자이너에서 논리 앱 워크플로를 엽니다.

  2. 일반적인 단계에 따라 시나리오에 적합한 Microsoft Dataverse 작업을 추가합니다.

    이 예제에서는 새 행 추가라는 작업을 계속합니다.

  3. 프롬프트에서 Dataverse 환경 또는 데이터베이스에 로그인합니다.

  4. 작업 정보 상자에서 필요한 매개 변수 값을 제공합니다.

    다음 예제에서는 샘플 작업을 보여 줍니다.

    스크린샷은 소비 워크플로 디자이너 및 예제 작업을 보여줍니다.

  5. 완료되면 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

  6. 원하는 경우 더 많은 작업을 추가합니다.

워크플로 테스트

워크플로를 실행하려면 다음 단계를 수행합니다.

  1. 디자이너 도구 모음에서 실행>을 선택합니다.

  2. 트리거가 워크플로를 실행하는 데 필요한 조건을 재현합니다.

필터를 기반으로 행 반환

행 나열 작업과 같이 을 반환하는 작업의 경우 ODATA 쿼리를 사용하여 지정된 필터에 따라 행을 반환합니다. 예를 들어 활성 계정에 대한 행만 반환하도록 작업을 설정합니다.

  1. 디자이너의 작업에서 고급 매개 변수 목록을 열고 필터 행 매개 변수를 선택합니다.

    스크린샷은 필터 행이라는 워크플로 및 매개 변수를 보여 줍니다.

  2. 이제 작업에 표시되는 필터 행 매개 변수에서 ODATA 쿼리 식을 입력합니다. 예를 들면 다음과 같습니다.

    statuscode eq 1

    스크린샷은 ODATA 쿼리를 사용하여 필터 행이라는 표준 워크플로 및 매개 변수를 보여 줍니다.

자세한 내용은 다음 설명서를 참조하세요.

정렬 순서에 따라 행 반환

행 나열 작업과 같이 행을 반환하는 작업의 경우 ODATA 쿼리를 사용하여 특정 시퀀스에서 행을 반환합니다. 시퀀스는 작업이 반환하는 행에 따라 달라집니다. 예를 들어 계정 이름으로 구성된 행을 반환하도록 작업을 설정할 수 있습니다.

  1. 디자이너의 작업에서 고급 매개 변수 목록을 열고 Sort By 매개 변수를 선택합니다.

    스크린샷은 워크플로, Dataverse 작업 및 정렬 기준 매개 변수를 보여 줍니다.

  2. 이제 작업에 표시되는 Sort By 매개 변수에서 정렬에 사용할 열 이름(예: 이름)을 입력합니다.

    스크린샷은 워크플로, Dataverse 작업 및 열 이름을 가진 Sort By 매개 변수를 보여줍니다.

자세한 내용은 다음 설명서를 참조하세요.

필드 데이터 형식

트리거 또는 작업에서 필드 값의 데이터 형식은 필드의 필수 데이터 형식과 일치해야 합니다. 이 요구 사항은 값을 수동으로 입력하거나 동적 콘텐츠 목록에서 값을 선택하든 관계없이 적용됩니다.

예를 들어 Tasks라는 테이블이 있다고 가정 합니다. 이 테이블에는 해당 테이블에만 적용되는 필드가 있지만 다른 테이블에는 고유한 필드가 있습니다. 예제 작업 테이블의 경우 다음 표에서는 일부 샘플 필드 형식과 해당 필드에 해당 값에 필요한 데이터 형식에 대해 설명합니다.

분야 데이터 형식 Description
텍스트 필드 한 줄의 텍스트 텍스트 데이터 형식이 있는 한 줄의 텍스트 또는 동적 콘텐츠(예: 다음 속성)가 필요합니다.

- 묘사
- 범주
정수 필드 정수 정수 데이터 형식이 있는 정수 또는 동적 콘텐츠(예: 다음 속성)가 필요합니다.

- 완료율
- 기간
날짜 필드 날짜 및 시간 MM/DD/YYYY 형식의 날짜 또는 날짜 데이터 형식이 있는 동적 콘텐츠(예: 다음 속성)가 필요합니다.

- 생성 날짜
- 시작 날짜
- 실제 시작
- 실제 끝
- 기한
다른 엔터티 행을 참조하는 필드 기본 키 GUID와 같은 행 ID와 조회 형식이 모두 필요합니다. 즉, 동적 콘텐츠 목록의 값이 작동하지 않습니다(예: 다음 속성).

- 소유자: 유효한 사용자 ID 또는 팀 행 ID여야 합니다.
- 소유자 유형: 반드시 조회 형식이어야 하며 예를 들어 systemusers 또는 teams와 같이 설정해야 합니다.

- 관련: 계정 ID 또는 연락처 행 ID와 같은 유효한 행 ID여야 합니다.
- 관련 항목 유형: 각각 accounts 또는 contacts 같은 조회 유형이어야 합니다.

- 고객: 계정 ID 또는 연락처 행 ID와 같은 유효한 행 ID여야 합니다.
- 고객 유형: 각각 조회 유형(예: accounts 또는 contacts)이어야 합니다.

예제 작업 테이블의 경우 새 행 추가 작업을 사용하여 다른 엔터티 행, 특히 사용자 행 및 계정 행과 연결된 새 행을 만드는 경우를 가정해 보겠습니다. 따라서 이 작업에서는 관련 속성의 예상 데이터 형식과 일치하는 값을 사용하여 해당 엔터티 행에 대한 ID 및 조회 형식을 지정해야 합니다.

  • 사용자 ID를 지정하는 Owner 속성과 조회 유형을 지정 하는 systemusers 속성에 따라 작업은 새 행을 특정 사용자와 연결합니다.

  • 행 ID를 지정하는 Regarding 속성과 조회 형식을 지정 accounts 속성에 따라 작업은 새 행을 특정 계정과 연결합니다.

결과 작업은 다음 예제와 같습니다.

스크린샷은 워크플로 코드 보기, 새 행 작업 추가 및 ID 및 조회 형식과 연결된 새 작업 행을 보여줍니다.

문제 해결

여러 환경의 호출

Dataverse 커넥터는 Dataverse 데이터베이스의 callbackregistrations 엔터티를 사용하여 논리 앱 워크플로가 데이터베이스 엔터티 변경에 대한 알림을 받거나 필요로 하는 정보를 저장합니다. Dataverse 조직을 복사할 경우, 웹후크가 자동으로 복사됩니다. 조직에 매핑된 워크플로를 사용하지 않도록 설정하기 전에 조직을 복사하는 경우 복사된 웹후크는 동일한 논리 앱 워크플로를 가리킵니다. 그런 다음, 이러한 워크플로는 여러 조직에서 알림을 받습니다.

원치 않는 알림을 중지하려면 다음 단계에 따라 알림을 보내는 조직의 엔터티를 callbackregistrations 삭제합니다.

  1. 알림을 제거할 Dataverse 조직을 식별하고 로그인합니다.

  2. Chrome 브라우저에서 삭제할 콜백 등록을 찾습니다.

    1. callbackregistrations 엔터티 내부의 데이터를 볼 수 있도록 다음 OData URI에서 모든 콜백 등록에 대한 제네릭 목록을 검토합니다.

      https://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations:

      비고

      값이 반환되지 않으면 이 엔터티 형식을 볼 수 있는 권한이 없거나 올바른 조직에 로그인하지 않았을 수 있습니다.

    2. 트리거하는 엔터티의 논리적 이름 entityname 및 논리 앱 워크플로(메시지)와 일치하는 알림 이벤트를 필터링합니다. 각 이벤트 유형은 다음과 같이 메시지 정수에 매핑됩니다.

      이벤트 유형 메시지 정수
      Create 1
      Delete 2
      Update 3
      CreateOrUpdate 4
      생성하거나 삭제하기 5
      업데이트또는삭제 6
      생성수정삭제 7

      다음 예에서는 샘플 조직에 대해 다음 OData URI를 사용하여 Create이라는 엔터티에 대한 nov_validation 알림을 필터링하는 방법을 보여줍니다.

      https://fabrikam-preprod.crm1.dynamics.com/api/data/v9.0/callbackregistrations?$filter=entityname eq 'nov_validation' and message eq 1

      스크린샷은 주소 표시줄의 브라우저 창 및 OData URI를 보여줍니다.

      비고

      동일한 엔터티 또는 이벤트에 대해 여러 트리거가 있는 경우, createdon_owninguser_value 속성과 같은 추가 필터를 사용하여 목록을 필터링할 수 있습니다. 소유자 사용자의 이름이 아래에 표시됩니다 /api/data/v9.0/systemusers({id}).

    3. 삭제하려는 콜백 등록의 ID를 찾은 후 다음 단계를 수행합니다.

      1. Chrome 브라우저에서 Chrome 개발자 도구(키보드: F12)를 엽니다.

      2. 창의 위쪽에서 콘솔 탭을 선택합니다.

      3. 명령줄 프롬프트에서 지정된 콜백 등록을 삭제하라는 요청을 보내는 다음 명령을 입력합니다.

        fetch('http://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations({ID-to-delete})', { method: 'DELETE'})

        중요합니다

        UCI(통합 클라이언트 인터페이스)이 아닌 페이지, 예를 들어 OData 또는 API 응답 페이지 자체에서 요청을 수행해야 합니다. 그렇지 않으면 app.js 파일의 논리가 이 작업을 방해할 수 있습니다.

    4. 콜백 등록이 더 이상 존재하지 않는지 확인하려면 콜백 등록 목록을 확인합니다.

중복된 'callbackregistrations' 엔터티

표준 워크플로에서 인스턴스 재할당 또는 애플리케이션 다시 시작과 같은 특정 조건에서 Microsoft Dataverse 트리거는 중복 실행을 시작합니다. 이 중복 실행은 Dataverse 데이터베이스에 중복 callbackregistrations 엔터티를 만듭니다. Dataverse 트리거로 시작하는 표준 워크플로를 편집하는 경우 이 callbackregistrations 엔터티가 중복되었는지 확인합니다. 중복된 엔터티가 있는 경우 중복 callbackregistrations 엔터티를 수동으로 삭제합니다.