작업 큐 처리
작업 큐 처리는 특정 순서로 완료해야 하는 작업 항목 목록을 관리하는 것을 말합니다. 이 목록에는 이름, 우선 순위, 만료 날짜, 상태 및 처리할 실제 값과 같은 각 항목에 대한 정보가 포함됩니다.
작업 큐 처리 방법:
Dataverse 전문 개발자 기능 사용(고급 통합 시나리오에만 해당):
Dataverse의 전문가 코드 도구에 대해 자세히 알아보기: Dataverse 개발자 문서.
처리 연습
사용 가능한 처리 옵션 중 일부를 보여주기 위해 다음은 세 가지 처리 시나리오입니다.
Power Automate 데스크톱(PAD)의 데스크톱 흐름 기반 작업 큐 처리
작업 큐 항목 처리 및 업데이트 예
Power Automate 데스크톱에서 작업 큐 작업을 사용하는 첫 번째 단계는 작업 중인 환경에서 작업 큐를 만들고 다운스트림에서 사용할 데이터가 있는 일부 큐 항목을 로드하는 것입니다. 큐 항목은 데스크톱 흐름, 클라우드 흐름을 통해 또는 큐 항목을 채우는 여기에 설명된 대로 대량으로 작업 큐에 로드할 수 있습니다. 이 예에서 일부 큐 항목은 작업 큐에 수동으로 추가되어 Power Automate 데스크톱의 작업을 사용할 수 있는 방법을 설명합니다.
작업 큐 항목이 생성되었으며 값 필드에는 데스크톱 흐름에서 다운스트림으로 사용될 JSON 형식의 텍스트가 포함됩니다.
작업 큐 작업 사용을 시연하기 위해 사용할 예제 흐름은 클라우드에서 작업 큐 항목을 소비하고, 값 필드에 포함된 데이터를 처리하고, 다운스트림으로 처리할 사용자 지정 개체로 변환하는 프로세스를 모방합니다. JSON 또는 사용자 지정 개체를 작업 큐 항목의 값으로 사용하는 것이 필수는 아니지만 여러 속성이 있고 특정 스키마를 따르는 값을 구성하는 데 유용한 방법이 될 수 있습니다.
작업 큐 항목 처리 작업은 데스크톱 흐름에서 항목을 소비하고 처리할 작업 큐를 지정하는 데 사용됩니다. 드롭다운 화살표를 사용하여 목록에서 작업 큐를 선택하고 큐 이름을 포함한 변수를 전달하도록 작업을 구성할 수 있습니다. 실행 시 이 작업은 작업 큐의 첫 번째(가장 오래된) 항목을 상태가 큐에서 대기 중인 흐름으로 가져오는 방식으로 작동합니다. 큐 항목이 흐름에서 처리를 시작하면 상태가 자동으로 처리 중으로 변경됩니다.
흐름에서 작업 3 옆을 클릭하여 중단점(빨간색 점)을 설정한 다음 PAD 콘솔을 통해 실행합니다. 프로세스가 중단점에서 일시 중지되면 흐름 변수 아래에 채워진 값을 두 번 클릭하여 WorkQueueItem 변수를 열 수 있으며 처리 중인 작업 큐 항목과 관련된 모든 속성이 표시됩니다.
흐름의 작업 2에서 반환된 JSON 값을 변환했습니다. 이 경우 %WorkQueueItem.Value%를 통해 사용자 지정 개체에 액세스합니다. 그 이유는 JSON을 구문 분석하고 흐름에서 JSON 속성 다운스트림을 사용하는 데 도움이 되기 때문입니다. 이 가상 케이스에서 정보는 Farbrikam의 재무 포털에 항목을 만드는 데 사용됩니다.
{ "InvoiceId": "I-1006", "InvoiceDate": "06/04/2023", "AccountName": "Fabrikam", "ContactEmail": "invoicing@fabrikam.com", "Amount": 1253.78, "Status": "Paid", "WorkQueueKey": "Vendor Invoices", "ComponentState": 0, "OverwriteTime": "1900-01-01T00:00:00" }
예를 들어 웹 또는 데스크톱 앱의 UI를 자동화하는 프로세스의 일부로 재무 시스템의 필드에 송장 ID를 입력해야 한다는 요구 사항이 있다고 가정해 보겠습니다. %JsonAsCustomObject.InvoiceId%를 사용하여 해당 값을 호출하여 텍스트 필드를 클릭하고 버튼을 누릅니다.
계속 진행하면서 이 예시에는 단계 처리를 완료하고 하위 흐름 Fabrikam 데이터 항목 내 사용자 지정 개체의 데이터를 사용하면 몇 가지 조건문이 포함됩니다. 입력 시스템 관련 예외가 발생하지 않고 프로세스가 종단 간 실행되는 경우 작업 큐 항목 업데이트 작업을 사용하여 작업 대기열 항목의 상태를 처리됨으로 변경하고 처리 결과 필드를 사용하여 일부 선택적 메모를 입력할 수 있습니다. 만료 필드가 비어 있으면 새 큐 항목은 작업 큐 속성에 정의된 값 이후 항목 만료를 유지합니다.
작업 큐 항목 업데이트 작업 구성 창에서 오류를 클릭하여 예외 처리 옵션을 구성할 수 있습니다. 고급 탭에서 사용자 지정에 사용할 수 있는 세 가지 옵션이 있습니다. 작업 큐 항목을 찾을 수 없음은 작업 큐 항목이 PAD에서 처리가 완료되기 전에 수동으로 또는 다른 체계적인 프로세스를 통해 큐에서 제거되는 경우 발생할 수 있습니다. 작업 큐 항목 보류 는 자동화된 프로세스나 누군가가 대기열 항목이 처리되는 동안 흐름 포털에서 처리 중인 작업 큐 항목의 상태를 보류 로 변경하는 경우 발생할 수 있습니다. 작업 큐 항목을 업데이트하지 못했습니다. 대기열 항목이 더 이상 대기열에 없거나, 보류상태로 전환된 경우 발생할 수 있습니다. 위의 모든 경우가 발생할 수 있는 극단적인 경우입니다. 여기에서 데스크톱 흐름의 오류 처리에 대해 자세히 알아보세요.
작업 큐 항목의 데이터를 데이터 입력 시스템으로 처리하면서 일부 문제가 확인된 경우 항목에 일반 예외, IT 예외 또는 비즈니스 예외 상태를 대신 할당할 수 있습니다. 이러한 예외 상태는 자동화된 사용 사례가 적용될 수 있는 기준을 충족하는 경우 사용할 수 있습니다.
큐 항목을 처리하는 동안 시나리오 2가 충족되었다고 가정해 보겠습니다. 이 경우 큐 항목은 원래 큐에서 일반 예외로 표시됩니다. 시나리오에 따라 성공적으로 처리할 수 없는 큐 항목의 상태를 대체 상태 옵션 중 하나로 변경하기로 결정할 수 있습니다. 거기에서 사람의 개입이 필요한지 여부를 결정하거나 각 예외 상태를 관리하는 데 필요한 논리로 후속 프로세스를 구축할 수 있습니다.
자동 재시도 패턴
작업 큐 항목의 프로세스 작업 Power Automate 바탕 화면에는 자동 재시도 메커니즘을 구성하거나 재정의하는 고급 옵션이 포함되어 있습니다. 이 기능을 사용하면 작업 큐 항목당 최대 자동 재시도 횟수를 지정할 수 있으며, 이는 일시적인 네트워크 오류나 일시적인 시스템 이용 불가와 같은 IT 예외를 처리하는 데 유용합니다. 이를 통해 기계가 항목을 다시 대기열에 넣지 않고도 항목을 보관하고 제어된 재시도를 수행할 수 있어 더 효율적이고 탄력적인 작업 큐 처리가 보장됩니다.
Dataverse에서 작업 큐 레코드의 최대 재시도 횟수를 설정하고 중앙에서 제어할 수 있습니다. 이 기본값은 작업 큐 항목 처리 작업을 통해 이 작업 큐를 처리하는 모든 바탕 화면 흐름에 적용됩니다.
흐름에서 대기열 수준의 기본값을 재정의하려면 프로세스 작업 큐 항목 작업의 고급 섹션으로 이동하고 작업 큐 자동 재시도 구성 재정의 옵션을 전환합니다. 이 설정을 사용하면 최대 재시도 횟수를 더 높거나 낮은 값으로 조정 설정할 수 있으며, 최대 재시도 횟수를 0으로 설정하여 재시도 메커니즘을 비활성화할 수도 있습니다.
작업 큐 항목 업데이트 작업을 상태가 IT exception
로 설정되어 있고 최대 자동 재시도 횟수가 0보다 큰 경우, 시스템은 작업 큐 오케스트레이터에 업데이트를 즉시 전송하지 않습니다. 대신, 지정된 최대 재시도 횟수에 도달할 때까지 작업을 다시 시도합니다. 작업 큐 항목에서 업데이트된 유일한 값은 retrycount
입니다. 이 값은 두 번째 업데이트 시도부터 최대 자동 재시도 횟수에 도달할 때까지 증가합니다. 또한, CurrentRetryCount
라는 로컬 작업 큐 항목 변수는 재시도할 때마다 증가합니다. 필요한 경우 이 변수를 사용하면 해당 값에 따라 사용자 정의 논리를 구현할 수 있습니다.
다음 조건이 충족되는 경우 흐름은 프로세스 작업 큐 항목 작업의 맨 위로 돌아갈 때 새 항목을 요청하지 않습니다.
- 최대 재시도 횟수에 도달하지 않았습니다.
- IT 예외를 제외하면 다른 업데이트는 발생하지 않습니다.
최대 재시도 횟수에 도달하면 업데이트 작업은 업데이트를 오케스트레이터로 전송하고, 항목의 상태를 IT 예외로 변경하고 제공된 처리 메모를 포함합니다.
PAD에서 작업 큐 항목 추가 및 큐 다시 만들기 예제
작업 큐 항목 추가를 통해 데스크톱 흐름 사용자가 흐름 포털에 설정된 작업 큐에 작업 큐 항목을 채울 수 있습니다.
이 예에서 .csv의 Excel 파일은 매일 디렉토리에 드롭되며 각 행은 작업 큐에 추가되어야 합니다.
이 샘플 프로세스의 처음 몇 가지 작업은 매일 Contoso Invoices.csv 파일이 삭제되는 폴더를 매핑합니다. 프로세스가 실행되면 CSV 파일에서 데이터 테이블을 읽는 것으로 시작됩니다. CSVTable 변수에는 가져온 데이터가 포함되어 있으며 새 큐 항목으로 처리됩니다.
작업 3과 4는 작업 큐에 추가된 후 만료될 새 큐 항목을 선택하는 시간을 생성합니다. 작업 3은 현재 시스템 데이터 및 시간을 캡처한 다음 이 예제의 경우 %Add to datetime% 작업을 사용하여 7일을 추가합니다. 출력은 작업 큐 항목 추가 작업에서 사용되는 ExpiryDatetime이라는 변수에 저장됩니다.
작업 5는 가져온 CSVTable의 각 데이터 행을 반복하는 데 사용되는 For each 루프를 도입합니다. 이 작업은 처리 중인 현재 항목에 대한 데이터 행을 렌더링합니다.
이 예제 데스크톱 흐름의 모든 이전 작업은 이제 작업 큐 항목 추가 작업의 값 설정에 통합됩니다.
작업 큐 매개 변수는 새 작업 큐 항목을 추가하려는 큐로 설정됩니다. 이 경우 드롭다운 메뉴에서 선택하여 데모 PAD 큐를 선택했습니다.
우선 사항 매개 변수는 기본값인 정상으로 남아 있지만 낮음 및 높음에 대한 옵션도 선택 사항입니다. 우선 순위가 더 높은 작업 큐 항목이 먼저 처리된 다음 일반 및 동일한 작업 큐에 혼합될 때 마지막으로 처리됩니다.
이름 매개 변수는 처리 중인 데이터 행의 ID 셀 값을 포함하는 변수 값 CurrentItem['ID']와 함께 정적 접두어로 설정되었습니다. 선택 사항이지만 사용 사례에 따라 유용할 수 있습니다.
CurrentItem 변수의 데이터 행 값을 사용하여 입력 매개 변수를 JSON 형식으로 입력했습니다. 각 헤더 이름은 표기법 ['name of header']를 사용하여 currentitem 변수에 추가되었습니다
만료 필드는 이전 단계에서 7일을 추가한 datetime 변수로 채워집니다. 비워 두면 추가되는 작업 큐 항목에 작업 큐에 설정된 이후 항목 만료가 포함됩니다.
처리 메모 는 선택 사항입니다. 필요하다고 판단되는 대로 사용하세요.
프로세스가 실행되면 가져온 CSV의 각 데이터 행은 큐에서 대기 중 상태를 포함하는 작업 큐 항목을 생성합니다. 즉, 처리할 수 있음을 의미합니다.
이는 PAD에서 작업 큐 작업을 사용할 수 있는 여러 방법 중 일부에 불과합니다. 시간을 내어 작업 큐를 Power Automate 흐름에 통합하는 창의적인 용도를 탐색하고 찾으십시오!
지연된 항목을 다시 큐에 추가하는 예
지연된 항목 다시 큐 작업을 통해 데스크톱 흐름 사용자는 항목을 다시 큐에 추가하고 항목이 처리를 위해 다시 릴리스될 수 있는 지연 기간을 설정할 수 있습니다.
이 예에는 24시간 후에 만료되도록 설정된 항목이 로드된 작업 큐가 있지만 IT에서 정기적인 시스템 유지 관리를 지속적으로 수행하고 항목을 다시 큐에 추가해야 하기 때문에 해당 항목을 제 시간에 처리할 수 없습니다. 유지 관리는 밤사이에 완료될 예정이므로, 각 큐 항목을 24시간씩 지연시킨 후, 출시 기간 이후 24시간 후에 만료되도록 설정할 예정입니다.
이 예제 프로세스의 처음 세 가지 작업은 날짜 시간 작업입니다. '현재 날짜 및 시간 가져오기' 작업은 작업이 실행되는 순간의 시스템 날짜/시간을 캡처합니다. 다음으로 두 가지 요구 사항을 충족하기 위해 '날짜 시간에 추가' 작업을 사용했습니다. 먼저 현재 날짜 시간에 24시간을 추가하여 지연 시간을 정의해야 합니다. 그런 다음 만료로 현재 날짜 시간에 48시간을 추가해야 합니다.
다음 예제에서는 로드된 작업 큐를 가리키도록 '작업 큐 항목 처리' 작업이 구성되고 '지연된 항목 다시 큐'이 루프 내에 배치됩니다.
이제 지연 및 만료에 대해 생성된 값을 '지연된 항목 다시 큐' 작업으로 전달할 수 있습니다. '작업 큐 항목' 필드는 루프에서 생성된 변수로 채워집니다. 이는 다시 큐에 넣을 큐 항목을 지시합니다. 다음으로 '지연 기한' 및 '만료' 필드에 대해 날짜/시간 작업을 사용하여 생성된 값을 연결했습니다. '지연기한'은 필수사항이지만, '만료기한'과 '처리결과'는 임의로 사용할 수 있습니다.
이 간단한 프로세스를 통해 큐에 있는 사용 가능한 모든 항목을 다시 큐에 넣고 특정 시간 동안 지연할 수 있으며 만료 날짜 및 처리 결과를 설정하는 옵션도 있습니다.
클라우드 흐름 및 커넥터 기반 처리
작업 큐 항목을 큐에서 제거하고 처리하는 가장 간단한 방법은 다음과 같습니다.
Power Automate으로 이동하여 자신의 자격 증명으로 로그인합니다.
왼쪽 메뉴에서 내 흐름을 선택합니다.
도구 모음에서 + 새 흐름을 선택한 다음 인스턴트 클라우드 흐름을 선택합니다.
내 첫 번째 작업 큐 흐름과 같은 흐름 이름을 제공한 다음 수동으로 흐름 트리거를 선택합니다.
만들기를 선택합니다.
흐름 디자이너가 열리면 + 새 단계를 선택한 다음 Microsoft Dataverse 커넥터를 선택합니다.
작업 목록에서 바인딩된 작업 수행을 선택합니다.
매개 변수 | 값 | 설명 |
---|---|---|
테이블 이름 | 작업 큐 | 작업 큐 테이블의 이름입니다. |
동작 이름 | 큐에서 제거 | 이 작업은 큐에서 사용 가능한 다음 항목을 가져옵니다. |
행 ID | [작업 큐아이디] | 큐에서 제거하려는 큐의 작업 큐 ID(GUID)입니다. 큐의 작업 큐 세부 정보 페이지로 이동하고 고급 세부 정보 패널을 열어 이 값을 확인할 수 있습니다. |
노트
바운드 작업은 특정 테이블(예제에서는 작업 큐)에 정의된 Dataverse 작업이며 해당 테이블의 레코드에서만 실행할 수 있습니다. 바운드 작업은 플랫폼에서 특정 레코드에 대한 사용자 지정 비즈니스 논리 또는 작업을 수행하는 데 사용됩니다.
- 이제 흐름이 이와 비슷하게 보일 것입니다.
저장을 선택한 다음 흐름을 테스트합니다.
테스트 측면 창에서 수동, 테스트, 흐름 실행, 완료를 차례로 선택합니다.
흐름이 성공적으로 실행된 경우 유사한 결과를 얻어야 합니다(단, ID는 다름).
- 그런 다음 본문 필드에서 전체 JSON 콘텐츠를 복사한 다음 흐름의 오른쪽 상단 모서리에서 편집을 선택합니다.
팁
작업 큐 항목을 큐에서 제거한 후 항목의 JSON 속성을 구문 분석하기 위한 스키마 예제로 항목의 JSON 콘텐츠를 사용합니다. 이렇게 하면 후속 흐름 작업에서 작업 큐 오케스트레이터가 반환하는 항목의 모든 속성에 쉽게 액세스할 수 있습니다.
- + 새 단계를 선택하여 새 단계를 추가하고 JSON 구문 분석이라는 작업을 검색하여 선택합니다.
- 콘텐츠 필드에 마우스를 놓고 이전 작업에서 본문 속성을 선택합니다.
그런 다음 샘플에서 생성을 선택하고 이전에 복사한 JSON 문자열을 대화 상자에 붙여넣고 완료를 선택합니다.
+ 새 단계를 선택한 다음 Microsoft Dataverse 커넥터를 선택합니다.
작업 목록에서 행 업데이트를 선택합니다.
테이블 이름 필드에서 작업 큐 항목 테이블을 선택하고 행 ID 필드에 커서를 놓습니다.
동적 콘텐츠 목록에는 이제 작업 큐 항목 테이블에서 사용할 수 있는 모든 필드가 있습니다.
고급 옵션 표시를 선택한 다음 RowID, 처리 결과, 상태 및 상태 설명 필드를 다음 값으로 설정합니다.
필드 | 값 | 세부 사항 |
---|---|---|
행 ID | workqueueitemid | 이 값은 동적 콘텐츠 목록 대화 상자에서 선택할 수 있습니다. |
처리 결과 | 항목이 성공적으로 처리되었습니다. | |
상태 | 처리됨 | |
상태 설명 | 처리됨 |
흐름을 한 번 더 저장 및 테스트를 선택합니다.
흐름이 성공적으로 실행된 경우 다음과 유사한 결과를 얻어야 합니다.
이제 작업 큐 세부 정보 페이지로 이동하고 작업 큐 항목 목록 섹션에서 모두 보기를 선택합니다.
처리 및 처리된 항목만 표시하도록 상태 필드를 필터링하여 큐에서 제거 및 업데이트 작업이 예상대로 작동하는지 확인합니다.
축하합니다. 첫 번째 작업 큐 처리 시나리오를 방금 완료했습니다!
데스크톱 흐름을 지원하는 클라우드 흐름 기반 처리
이 시나리오에서는 데스크톱 흐름 처리 단계도 추가하여 이전 시나리오를 확장합니다.
돌아가서 내 첫 번째 작업 큐 흐름을 편집합니다.
JSON 구문 분석 작업 바로 뒤에 새 작업을 추가하고 데스크톱 흐름 커넥터 및 데스크톱용 Power Automate로 빌드된 흐름 실행을 검색합니다.
데스크톱 흐름 드롭다운에서 기존 데스크톱 흐름을 선택하고 편집하거나 + 새 데스크톱 흐름 만들기를 선택하고 화면의 지침에 따라 데스크톱 흐름을 만들고 데스크톱용 Power Automate를 시작합니다. 데스크톱 흐름을 처음 사용하는 경우 여기에서 자세히 알아볼 수 있습니다.
데스크톱용 Power Automate 디자이너가 열리면 WorkQueueItemValue 및 WorkQueueItemName이라는 두 개의 입력 변수를 생성한 다음 각각 ProcessingNotes 및 ProcessingStatus라는 두 개의 출력 변수를 추가합니다. 이 변수는 모두 데이터 유형으로 텍스트를 가져야 합니다.
나중에 스크립트를 로컬로 테스트할 수 있도록 WorkQueueItem 변수에 대한 기본값을 제공합니다. 대량 가져오기 자습서를 따랐다면 해당 값이 JSON 형식인 공급업체 송장 큐에 작업 큐 항목이 있어야 합니다. 다음은 사용된 값 중 하나의 예입니다.
{ "InvoiceId": "I-1006", "InvoiceDate": "06/04/2023", "AccountName": "Fabrikam", "ContactEmail": "invoicing@fabrikam.com", "Amount": 1253.78, "Status": "Paid", "WorkQueueKey": "Vendor Invoices", "ComponentState": 0, "OverwriteTime": "1900-01-01T00:00:00" }
이제 흐름을 저장합니다.
작업 패널에서 변수 작업 그룹을 열고 JSON을 사용자 지정 개체로 변환 작업을 두 번 클릭하여 속성 창을 여는 디자인 캔버스에 추가합니다.
JSON 필드에서 변수 아이콘을 선택하고 WorkQueueItemValue 변수를 선택합니다.
생성된 출력 변수의 이름을 JsonAsCustomObject에서 VendorInvoice로 바꾸고 저장을 선택합니다.
그런 다음 Conditionals 그룹에서 If 작업을 추가하고 해당 속성을 다음과 같이 구성합니다.
First operand Operator Second operand %VendorInvoice['Amount']% 미만(<) 5000 저장을 선택합니다.
Else라는 Conditionals 그룹에서 다른 작업을 추가하고 If 및 End 작업 사이에 추가합니다.
이제 Variables 그룹에서 변수 설정이라는 또 다른 두 작업을 추가하고 If 및 Else 작업 내에 추가하고 ProcessingNotes 및 ProcessingStatus 변수를 다음 값으로 설정합니다.
변수 값 %ProcessingNotes% 송장이 이미 처리됨 %ProcessingStatus% 처리됨 두 변수 설정 작업을 복사하여 Else 및 End 작업 사이에 붙여넣고 값을 다음과 일치하도록 변경합니다.
변수 값 %ProcessingNotes% 비즈니스 예외: 송장 금액이 $5000보다 크며 관리자 승인이 필요합니다. %ProcessingStatus% 예외 이제 흐름이 이와 비슷하게 보일 것입니다.
흐름을 저장 하고 실행하여 흐름 논리가 예상대로 작동하는지 확인합니다.
돌아가서 내 첫 번째 작업 큐 흐름을 편집합니다.
목록에서 새로 만든(또는 편집한) 데스크톱 흐름을 선택한 다음 유인을 실행 모드로 선택합니다.
다음과 같이 작업 큐 항목 값 및 작업 큐 항목 이름 매개 변수를 입력합니다.
행 업데이트 작업 전에 조건 작업을 추가합니다.
값 선택 필드에 마우스를 놓고 동적 콘텐츠 목록 대화 상자에서 처리 상태를 선택합니다.
마우스를 다른 값 선택 필드에 놓고 처리됨을 텍스트 값으로 입력합니다.
행 업데이트 작업을 조건 작업의 예인 경우 섹션으로 끌어다 놓습니다.
행 업데이트 작업 세부 정보를 열고 다음과 일치하도록 값을 바꿉니다.
빨간색 아니요인 경우 상자에서 다른 행 업데이트 작업을 추가하고 작업 큐 항목을 테이블 이름으로 선택합니다.
그런 다음 행 ID로 workqueueitemid를 선택하고 고급 옵션 표시 섹션을 열고 처리 결과 값으로 처리 메모를 선택합니다.
상태로 오류를 선택하고 상태 설명으로 GenericException을 선택합니다.
저장 및 테스트를 선택하여 전체 자동화를 테스트하고 데스크톱 흐름 작업의 출력을 관찰합니다.
작업 큐 항목이 처리되었는지 확인하려면 작업 큐 세부 정보 페이지로 이동하여 작업 큐 항목 섹션에서 모두 보기를 선택하고 처리됨 상태별로 항목을 필터링할 수 있습니다.
잘하셨습니다. 하이브리드 작업 큐 처리가 포함된 고급 시나리오를 완료했습니다!