정기 데이터 내보내기 앱 만들기

다음 Dynamics 365 앱에 적용됩니다.
인적 자원

이 문서에서는 정기 일정에 따라 Microsoft Dynamics 365 Human Resources에서 데이터를 내보내는 Microsoft Azure 논리 앱을 만드는 방법을 설명합니다. 이 자습서에서는 Human Resources의 DMF 패키지 REST API(애플리케이션 프로그래밍 인터페이스)를 활용하여 데이터를 내보냅니다. 데이터를 내보낸 후 논리 앱은 내보낸 데이터 패키지를 Microsoft OneDrive 폴더에 저장합니다.

비즈니스 시나리오

Microsoft Dynamics 365 통합에 대한 일반적인 비즈니스 시나리오에서는 반복 일정에 따라 다운스트림 시스템으로 데이터를 내보내야 합니다. 이 자습서에서는 Microsoft Dynamics 365 Human Resources 모든 작업자 레코드를 내보내고 작업자 목록을 OneDrive 폴더에 저장하는 방법을 보여줍니다.

Tip

이 자습서에서 내보내는 특정 데이터와 내보낸 데이터의 대상은 예제일 뿐입니다. 비즈니스 요구 사항에 맞게 쉽게 변경할 수 있습니다.

사용된 기술

이 자습서에서는 다음 기술을 사용합니다.

사전 요구 사항

이 자습서에서 연습을 시작하기 전에 다음 항목이 있는지 확인합니다.

  • 환경에 대한 관리자 수준 권한이 있는 Human Resources
  • 논리 앱을 호스트하기 위한 Azure 구독

연습

이 연습이 끝나면 인적 자원 환경 및 OneDrive 계정에 연결된 논리 앱이 있습니다. 논리 앱은 인사 관리에서 데이터 패키지를 내보내고, 내보내기가 완료될 때까지 기다렸다가 내보낸 데이터 패키지를 다운로드하고, 지정한 OneDrive 폴더에 데이터 패키지를 저장합니다.

완성된 논리 앱은 다음 그림과 유사합니다.

완료된 논리 앱 개요의 스크린샷.

1단계: Human Resources에서 데이터 내보내기 프로젝트 만들기

Human Resources에서 근로자를 내보내는 데이터 내보내기 프로젝트를 만듭니다. 프로젝트 내보내기 작업자의 이름을 지정하고 데이터 패키지 생성 옵션을 로 설정합니다. 단일 엔터티(근로자)를 프로젝트에 추가하고 내보낼 형식을 선택합니다. (이 자습서에서는 Microsoft Excel 형식을 사용합니다.)

작업자 내보내기 데이터 프로젝트의 스크린샷.

Important

데이터 내보내기 프로젝트의 이름을 기억하세요. 다음 단계에서 논리 앱을 만들 때 필요합니다.

2단계: 논리 앱 만들기

이 연습의 대부분은 논리 앱을 만드는 것입니다.

  1. Azure Portal에서 논리 앱을 만듭니다.

    논리 앱 만들기 페이지의 스크린샷.

  2. Logic Apps Designer에서 빈 논리 앱으로 시작합니다.

  3. 논리 앱을 24시간마다(또는 선택한 일정에 따라) 실행하도록 되풀이 일정 트리거를 추가합니다.

    되풀이 대화 상자의 스크린샷

  4. ExportToPackage DMF REST API를 호출하여 데이터 패키지 내보내기를 예약합니다.

    1. Microsoft Entra를 사용하는 HTTP 커넥터에서 HTTP 요청 호출 작업을 사용합니다.

      • 기본 리소스 URL: 인사 환경의 URL입니다(경로 또는 네임스페이스 정보는 포함하지 않음).
      • Microsoft Entra 리소스 URI:http://hr.talent.dynamics.com

      메모

      Human Resources 서비스는 ExportToPackage와 같이 DMF 패키지 REST API를 구성하는 모든 API를 노출하는 커넥터를 아직 제공하지 않습니다. 대신 Microsoft Entra를 사용하는 HTTP 커넥터를 통해 원시 HTTPS 요청을 사용하여 API를 호출해야 합니다. 이 커넥터는 Human Resources에 대한 인증과 권한 부여를 위해 Microsoft Entra ID를 사용합니다.

    2. Microsoft Entra를 사용하는 HTTP 커넥터를 통해 Human Resources 환경에 로그인합니다.

    3. ExportToPackage DMF REST API를 호출하도록 HTTP POST 요청을 설정합니다.

      • 방식: POST

      • 요청의 Url:https://<hostname>/namespaces/<namespace_guid>/data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.ExportToPackage

      • 요청 본문:

        {
            "definitionGroupId":"Export Workers",
            "packageName":"talent_package.zip",
            "executionId":"",
            "reExecute":false,
            "legalEntityId":"USMF"
        }
        

    Tip

    각 단계의 이름을 기본 이름인 HTTP 요청 호출보다 더 의미 있는 이름으로 변경할 수 있습니다. 예를 들어 이 단계의 이름을 패키지로 내보내기로 변경할 수 있습니다.

  5. 변수 초기화패키지로 내보내기 요청의 실행 상태를 저장합니다.

    변수 초기화 작업의 스크린샷.

  6. 데이터 내보내기의 실행 상태가 성공이 될 때까지 기다립니다.

    1. ExecutionStatus 변수의 값이 성공이 될 때까지 반복되는 Until 루프를 추가합니다.

    2. 내보내기의 현재 실행 상태를 폴링하기 전에 5초 동안 대기하는 지연 작업을 추가합니다.

      Until 루프 컨테이너의 스크린샷.

      메모

      제한 횟수를 15로 설정하여 내보내기가 완료될 때까지 최대 75초(15회 반복 × 5초)를 기다리도록 설정합니다. 내보내기에 더 많은 시간이 소요되는 경우 제한 횟수를 적절하게 조정하세요.

    3. HTTP 요청 호출 작업을 추가하여 GetExecutionSummaryStatus DMF REST API를 호출하고 ExecutionStatus 변수를 GetExecutionSummaryStatus 응답의 결과로 설정합니다.

      이 샘플은 오류 검사를 수행하지 않습니다. GetExecutionSummaryStatus API가 성공하지 못한 터미널 상태(즉, 성공 이외의 상태)를 반환할 수 있습니다. 자세한 내용은 API 설명서를 참조하세요.

      • 방식: POST

      • 요청의 Url:https://<hostname>/namespaces/<namespace_guid>/data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExecutionSummaryStatus

      • 요청 본문:body('Invoke_an_HTTP_request')?['value']

        메모

        요청 본문 값을 코드 보기나 디자이너의 함수 편집기에 입력해야 할 수 있습니다.

      HTTP 요청 2 호출 작업의 스크린샷.

      변수 설정 작업의 스크린샷.

      Important

      변수 설정 동작의 값(body('Invoke_an_HTTP_request_2')?[' value'])는 디자이너가 동일한 방식으로 값을 표시하더라도 HTTP 요청 2 본문 값 호출의 값과 다릅니다.

  7. 내보낸 패키지의 다운로드 URL을 가져옵니다.

    • HTTP 요청 호출 작업을 추가하여 GetExportedPackageUrl DMF REST API를 호출합니다.

      • 방식: POST
      • 요청 Url: https://<hostname>/namespaces/<namespace_guid>/data/DataManagementDefinitionGroups/Microsoft.Dynamics.DataEntities.GetExportedPackageUrl
      • 요청 본문: {"executionId": body('GetExportedPackageURL')?['value']}

      GetExportedPackageURL 작업의 스크린샷.

  8. 내보낸 패키지를 다운로드합니다.

    • HTTP GET 요청(기본 제공 HTTP 커넥터 작업)을 추가하여 이전 단계에서 반환하는 URL에서 패키지를 다운로드합니다.

      • 방식: GET

      • URI: body('Invoke_an_HTTP_request_3').value

        메모

        URI 값을 코드 보기나 디자이너의 함수 편집기에 입력해야 할 수 있습니다.

      HTTP GET 작업의 스크린샷.

      메모

      GetExportedPackageUrl API가 반환하는 URL에는 파일 다운로드에 대한 액세스 권한을 부여하는 공유 액세스 서명 토큰이 포함되어 있으므로 이 요청에는 추가 인증이 필요 없습니다.

  9. OneDrive 커넥터를 사용하여 다운로드한 패키지를 저장합니다.

    • OneDrive 파일 파일 만들기 작업을 추가합니다.

    • 필요에 따라 OneDrive 계정에 연결합니다.

      • 폴더 경로: 원하는 폴더
      • 파일 이름: worker_package.zip
      • 파일 콘텐츠: 이전 단계의 본문(동적 콘텐츠)

      파일 만들기 작업의 스크린샷.

3단계: 논리 앱 테스트

논리 앱을 테스트하려면 디자이너에서 실행을 선택합니다. 논리 앱의 단계가 실행하기 시작하는 것을 볼 수 있습니다. 30~40초 후에 논리 앱의 실행이 완료되고 OneDrive 폴더에 내보낸 작업자가 포함된 새 패키지 파일이 포함됩니다.

실패가 보고되는 단계가 있으면 디자이너에서 실패한 단계를 선택하고 입력출력 필드를 검사합니다. 오류를 수정하는 데 필요한 단계를 디버그하고 조정합니다.

다음 그림에서는 논리 앱의 모든 단계가 성공적으로 실행될 때 Logic Apps 디자이너의 모양을 보여 줍니다.

성공적인 논리 앱 실행 스크린샷

요약

이 자습서에서는 논리 앱을 사용하여 인사 관리에서 데이터를 내보내고 내보낸 데이터를 OneDrive 폴더에 저장하는 방법을 알아보았습니다. 비즈니스 요구 사항에 맞게 필요에 따라 이 자습서의 단계를 수정할 수 있습니다.