工作佇列動作
Power Automate 中的工作佇列可以用來儲存與程序相關的資料,並提供分離複雜程序和自動化的方式,使其可以進行非同步通訊。
工作隊列可以在提高自動化的效率、可擴展性和彈性方面發揮關鍵作用,並有助於確定工作的優先順序。 工作佇列可讓您先完成最高優先順序的項目,不論這些項目是由數位工作者、真人工作者還是透過整合處理的。
注意
- 第一組工作佇列相關動作的生產層級支援需要電腦版 Power Automate 2.37 版或更新版本。
- 在電腦版 Power Automate 中的工作佇列動作是一項進階功能,需要 Power Automate 訂閱。
- 目前,只能透過資料外洩防護 (DLP) 原則對處理工作佇列項目和更新工作佇列項目動作進行分類和允許或限制,其他動作也將很快推出。 請注意,雲端流程式的工作佇列使用方式不受 DLP 原則限制。
處理工作佇列項目
處理工作佇列項目動作會指出佇列協調器,表示電腦已準備好處理一個或多個工作佇列項目。 要求新項目的使用者內容需要具備足夠的工作佇列及工作佇列項目資料表權限,才能處理工作佇列。
佇列協調器使用上一個動作中參考的工作佇列來決定該工作佇列中處於已排入佇列狀態的下一個可用項目。 當桌面流程逐步執行此動作呈現的 [處理工作隊列項目循環] 中的動作時,您可以透過使用您為動作指定的變數以及屬性 .Value
來呼叫該值。 在此案例中,您可以使用變數 %WorkQueueItem.Value% 來呼叫工作佇列項目的值
重要
透過在「篩選列」欄位中提供 FetchXML 運算式,您可以繞過排隊專案的預設工作佇列協調器的 FIFO 邏輯,處理排入佇列中的項目。 這讓您可以設定自訂的清除佇列順序,並忽略項目的到期日期及其他在未提供篩選運算式時自動套用的其他設定。
Processworkqueueitemaction
處理工作佇列項目動作動作需要以下引數。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
工作佇列 | 否 | 文字 | 包含要處理項目之工作佇列的工作佇列識別碼。 | |
篩選資料列 | .是 | 文字 | 用於從工作佇列檢索項目的FetchXML 查詢運算式。 | |
覆寫工作佇列自動重試設定 | .是 | 布林值 | 誤判為真 | 啟用後會出現一個欄位,讓您可以設定或覆寫 IT Exceptions 的最大重試次數。 |
最大重試次數 | 無 | 文字值、數值 | 當未被覆寫時,它使用在工作佇列記錄上定義的預設最大重試計數。 | IT Exceptions 允許的最大重試次數。 此參數可讓您將重試計數調整為更高或更低的值,甚至可以透過將計數設為 0 來停用重試機制。 |
變數已產生
引數 | 類型 | 描述 |
---|---|---|
WorkQueueItem | 否 | 儲存在正在處理工作佇列項目中的資訊 |
例外狀況
例外狀況 | 描述: |
---|---|
找不到工作佇列 | 輸入到工作佇列參數中的值無效。 |
工作佇列已暫停或已停止 | 工作佇列已暫停或已停止,這在處理專案時不是有效狀態。 |
無效的 FetchXML | 提供了無效的 FetchXML 運算式。 |
無法處理工作佇列 | 錯誤的要求 - 查詢語法錯誤。 |
什麼是 FetchXML 查詢?
Microsoft Dataverse FetchXML 是一種用於從 Dataverse 資料庫中檢索數據的語言。 它的設計目標是讓使用者能更輕鬆建立、使用和理解。 例如,您可能希望要求協調器以不同於先進先出 (FIFO) 的順序,並在特定的到期時間範圍內處理專案。
為了將 FetchXML 查詢支援限制為處理工作佇列項目,僅支援一組有限的 FetchXML 術語和運算式。 這些術語包括篩選器、條件和排序運算式,全部僅限於工作佇列項目表 (workqueueitem)。 僅傳回處於 Queued
狀態的項目。
FetchXML 查詢範例
以下是一個查詢運算式範例,說明如何篩選 name
,並按先到期的記錄 (FEFO) 對結果進行排序。
<filter type="and">
<condition attribute="expirydate" operator="on-or-before" value="2024-10-18" />
<condition attribute="name" operator="eq" value="MyNonUniqueNameString" />
</filter>
<order attribute="expirydate" descending="false" />
查詢支援詳細資訊和參考數據
更新工作佇列項目
更新工作佇列項目動作可讓使用者變更所選工作佇列項目的狀態和處理結果。
Updateworkqueueitemaction
更新工作佇列項目動作動作需要以下引數。
引數 | 選用 | 接受 | 預設值 | 描述: |
---|---|---|---|---|
工作佇列項目 | 否 | 文字 | 佇列協調器先前傳回的工作佇列項目變數 | |
狀態 | 否 | 已處理的一般例外狀況 | 已處理 | 使用選項清單中的狀態更新正在處理的工作佇列項目。 |
處理附註 | .是 | 文字 | 要附加到正在處理的佇列專案的自訂處理註釋或值。 | |
清除處理附註 | .是 | 布林值 | 誤判為真 | 啟用后,將隱藏並清除此螢幕上的處理註釋欄位,並從資料庫中刪除先前為此專案捕獲的任何處理註釋。 |
例外狀況
引數 | 描述 |
---|---|
找不到工作佇列項目 | 正在處理的工作佇列項目已被刪除或不再屬於呼叫它的佇列。 |
工作佇列項目保留中 | 正在處理的工作佇列項目在佇列協調器中包含狀態 on hold ,無法再更新。 |
無法更新工作佇列項目 | 正在更新的工作佇列項目遇到意外錯誤。 請檢查錯誤訊息以取得更多詳細資訊。 |
新增工作佇列項目
新增工作佇列項目動作可讓使用者將工作佇列項目填入已在流程入口網站中設定的工作佇列中。
Enqueueworkqueueitemaction
新增工作佇列項目動作需要以下引數。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
工作佇列 | 否 | 文字值 | 要新增項目的工作佇列項目 | |
優先順序 | 否 | 高、一般、低 | 一般 | 工作佇列項目要設定的優先順序 |
名字 | 否 | 文字值、數值 | 新工作佇列項目的自訂名稱或識別碼 | |
輸入 | 無 | 文字值、數值 | 屬於要處理之值欄的資料 | |
有效期限 | .是 | Datetime | 設定佇列項目到期的日期時間值,否則則採用預設值 (如果已為佇列設定) | |
處理附註 | 是 | 文字值、數值 | 要新增至新佇列項目的自訂處理附註 | |
有唯一識別碼或參考 | .是 | 文字值、數值 | 啟用后,應提供在此佇列中唯一的值。 如果留空,則系統會自動提供 system-<GUID> 格式的唯一值 |
變數已產生
引數 | 類型 | 描述 |
---|---|---|
WorkQueueItem | 否 | 為正在新增工作佇列項目儲存的資訊 |
例外狀況
引數 | 描述: |
---|---|
找不到工作佇列 | 輸入到工作佇列參數中的值無效 |
無法將項目新增到工作佇列中 | 無法將工作佇列項目新增至工作佇列中。 錯誤的要求 - 查詢語法錯誤 |
新增多個工作佇列項目
新增多個工作佇列項目動作可讓使用者根據作為工作佇列項目資料表提供的資料,將一個或多個工作佇列專案新增至工作佇列。
此動作需要一個包含一個或多個工作佇列項目的自訂資料表。 資料表必須有八列,並符合以下架構:
資料行名稱 | 描述 | 必要 | 允許的值 |
---|---|---|---|
姓名 | 項目的名稱。 | 無 | 任何英數字元字串 |
輸入 | 輸入項目的詳細資料或資料。 | .是 | 任何英數字元字串 |
到期於 | 指定項目到期之前的持續時間。 | 無 | 日期及時間值 |
處理附註 | 處理與該項目相關的註釋。 | 無 | 任何英數字元字串 |
優先順序 | 項目的優先順序。 | .是 | 數值為 100 (高)、200 (正常)、300 (低) |
唯一參考 | 項目的唯一識別碼或參考值。 | 無 | 任何唯一的字母數字字串或參考 |
執行狀態 | 項目在擷取時的狀態。 | .是 | 數值為零 (已排入佇列)、一 (等待)。 |
延遲到 | 指定一個日期和時間,直到該時間為止,將忽略工作佇列中的項目,不進行處理。 | 無 | 日期及時間值 |
用於建立資料表的 Robin 程式碼片段
以下範例是一段 Robin 程式碼 (用於傳統流程) 片段,您可以直接複製並貼上到 Power Automate 桌面設計工具視窗中。 此程式碼片段為您的流程新增了一個建立新資料表動作,其中包含預期的欄位集。
Variables.CreateNewDatatable InputTable: { ^['Name', 'Input', 'Expires in', 'Processing notes', 'Priority', 'Unique reference', 'Status', 'Delay until'], [$'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $''''''] } DataTable=> DataTable
用於建立資料表的 PowerFx 程式碼片段
以下範例是 PowerFx 程式碼片段,您可以將其直接複製並貼上到 Power Automate 桌面設計器視窗中。 此程式碼片段為您的流程新增了一個建立新資料表動作,其中包含預期的欄位集。
Variables.CreateNewDatatable InputTable: { ^['Name', 'Input', 'Expires in', 'Processing notes', 'Priority', 'Unique reference', 'Status', 'Delay until'], [$fx'', $fx'', $fx'', $fx'', $fx'', $fx'', $fx'', $fx''] } DataTable=> DataTable
Batchenqueueworkqueueitemsaction
新增多個工作佇列項目動作需要以下參數。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
工作佇列 | 無 | 文字值 | 要新增項目的工作佇列項目 | |
工作佇列項目資料 | .是 | 資料表 | 儲存要新增至工作佇列的工作佇列項目的自訂資料表 |
變數已產生
引數 | 類型 | 預設值 | 描述 |
---|---|---|---|
FailedWorkQueueItems | 無 | 已啟用 | 如果出現失敗,該物件將儲存插入失敗的項目的索引以及錯誤代碼。 傳回的索引是項目在提供的工作隊列資料表中的位置 (索引),該資料表來自於新增多個工作佇列項目動作。 |
HasFailedItems | 無 | 已啟用 | 指示是否因為工作佇列項目資料問題而導致動作遇到資料擷取錯誤。 |
SuccessfulWorkQueueItems | 停用 | 無 | 儲存已成功新增至工作佇列的索引和工作佇列項目的自訂物件。 |
例外狀況
引數 | 描述 |
---|---|
找不到工作佇列 | 輸入到工作佇列參數中的值無效 |
工作佇列已暫停或已停止 | 無法將工作佇列項目新增至工作佇列中,因為工作佇列已暫停或停止。 |
批次加入佇列工作佇列項目清單失敗 | 由於請求或通訊錯誤,無法將工作佇列項目新增至工作佇列。 |
延遲重新佇列項目
延遲重新排入佇列項目動作可讓使用者將桌面流程中正在處理的佇列項目重新新增回其原始佇列。 此外,佇列項目可以一直保留,直到定義的時間再執行。
Requeueworkqueueitemaction
將項目重新排入佇列並延遲動作需要以下引數。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
工作佇列項目 | 否 | 工作佇列項目 | 要新增項目的工作佇列項目 | |
延遲到 | 否 | 日期時間值 | 一般 | 延遲佇列項目到的日期時間值 |
有效期限 | 是 | 日期時間值 | 重新排入佇列項目的自訂到期時間 | |
處理附註 | .是 | 文字值、數值 | 要新增至新佇列項目的自訂處理附註 | |
清除處理附註 | .是 | 布林值 | 誤判為真 | 啟用后,將隱藏並清除此螢幕上的處理註釋欄位,並從資料庫中刪除先前為此專案捕獲的任何處理註釋 |
例外狀況
引數 | 描述 |
---|---|
找不到工作佇列 | 輸入到工作佇列參數中的值無效 |
找不到工作佇列項目 | 佇列項目值無效 |
無法將工作佇列項目重新排入佇列 | 無法將工作佇列項目新增至工作佇列中。 錯誤的要求 - 查詢語法錯誤 |
更新工作佇列項目處理附註
更新 工作佇列專案處理註釋 操作允許使用者更新或清除所選工作佇列項目的處理註釋,而無需更改其狀態或任何其他屬性。
updateprocessingnotesaction
更新工作佇列項目處理附註動作需要以下參數。
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
工作佇列項目 | 無 | 文字 | 佇列業務流程協調程式以前返回的工作佇列項變數 | |
處理附註 | .是 | 文字 | 要附加到已處理佇列項的自訂處理結果或值 | |
清除處理附註 | .是 | 布林值 | 誤判為真 | 啟用後,隱藏並清除此畫面上的處理附註欄位,並從資料庫中移除先前為此項目所擷取的所有處理附註 |
例外狀況
引數 | 描述 |
---|---|
找不到工作佇列 | 與項目關聯的工作佇列已被刪除或無法再訪問 |
找不到工作佇列項目 | 工作佇列項目無效 |
無法附加處理結果 | 正在更新的工作佇列項目遇到意外錯誤。 請檢查錯誤訊息以取得更多詳細資訊。 |
透過篩選取得工作佇列項目
按篩選器取得工作佇列項目動作可讓使用者根據 FetchXML 篩選器運算式擷取一個或多個工作佇列項目。
Getworkqueueitemsaction
按篩選器取得工作佇列項目動作需要以下參數。
輸入參數
引數 | 選用 | 接受 | 預設值 | 描述 |
---|---|---|---|---|
工作佇列 | 無 | 文字 | 用於從中擷取項目的工作佇列 | |
篩選資料列 | 無 | 文字 | 用於從工作佇列中擷取項目的 FetchXML 查詢運算式 | |
要傳回的資料列 | 無 | 數字 | 5000 | 協調器傳回的最大工作佇列項數 |
變數已產生
引數 | 類型 | 預設值 | 描述 |
---|---|---|---|
WorkQueueItems | 無 | 已啟用 | 與篩選器運算式相符的工作佇列項目的清單。 |
例外狀況
引數 | 描述 |
---|---|
工作佇列 | 用於從中擷取項目的工作佇列。 |
篩選資料列 | 用於從工作佇列檢索項目的FetchXML 查詢運算式。 |
要傳回的資料列 | 協調器傳回的最大工作佇列項數 (預設為 5000)。 |
什麼是 FetchXML 查詢?
Microsoft Dataverse FetchXML 是一種用於從 Dataverse 資料庫中檢索數據的語言。 它的設計目標是讓使用者能更輕鬆建立、使用和理解。 例如,您可能想要求 Dataverse 提供所有處於 IT Exception
狀態的工作佇列項目的清單。
為了將 FetchXml 查詢支援限制為擷取工作佇列項目,我們僅支援一組有限的 FetchXml 術語和運算式。 這些術語和運算式包括屬性、篩選器、條件和排序運算式,全部僅限於工作佇列項目表 (workqueueitem)。 您必須明確指定要從工作佇列項目表傳回哪些屬性以及所需的排序順序。
FetchXML 查詢範例
以下範例是一個查詢運算式,說明如何取得多個屬性、過濾掉標記為 IT Exceptions
的錯誤項目,並按先到期的記錄 (FEFO) 對結果進行排序。
<attribute name="statecode" />
<attribute name="uniqueidbyqueue" />
<attribute name="createdon" />
<attribute name="completedon" />
<attribute name="workqueueitemid" />
<attribute name="executioncontext" />
<attribute name="name" />
<attribute name="expirydate" />
<attribute name="processingresult" />
<attribute name="priority" />
<attribute name="statuscode" />
<attribute name="modifiedon" />
<attribute name="processingstarttime" />
<attribute name="retrycount" />
<attribute name="requeuecount" />
<attribute name="input" />
<attribute name="delayuntil" />
<filter type="and">
<condition attribute="statecode" operator="eq" value="4" />
<condition attribute="statuscode" operator="eq" value="5" />
<condition attribute="expirydate" operator="on-or-before" value="2024-10-18" />
</filter>
<order attribute="expirydate" descending="false" />
查詢支援詳細資訊和參考數據
狀態 (statecode)
執行狀態 | 程式碼 | 描述 |
---|---|---|
佇列 | 0 | 項目已排隊 |
加工業 | 1 | 項目處理中 |
已處理 | 2 | 項目已處理 |
保留 | 3 | 項目被保留 |
錯誤 | 4 | 項目發生錯誤 |
狀態原因 (statuscode)
狀態原因 | 程式碼 | 描述 |
---|---|---|
佇列 | 0 | 項目已排隊 |
加工業 | 1 | 項目處理中 |
已處理 | 2 | 項目已處理 |
OnHold (已暫停) | 3 | 項目被保留 (暫停) |
一般例外狀況 | 4 | 項目遇到一般例外狀況 |
IT 例外狀況 | 5 | 專案遇到 IT 異常 |
業務例外狀況 | 6 | 項目遇到業務異常 |
寄不出的信件 | 7 | 項目處於暫停狀態 |
ProcessingTimeout | 8 | 專案處理逾時 |