作業キュー アクション
Power Automate の 作業キュー を使用すると、プロセス関連データを保存し、複雑なプロセスと自動化を分離して非同期的に通信できます。
作業キューは、自動化の効率性、スケーラビリティ、回復性を向上させる上で重要な役割を果たし、作業の優先順位付けに役立ちます。 作業キューを使用すると、デジタル ワーカー、ヒューマン ワーカー、または統合によって処理されているかどうかに関係なく、最も優先度の高い項目を最初に完了できます。
注意
- 作業キュー関連アクションの最初のセットに対する運用レベルのサポートには、Power Automate デスクトップ バージョン 2.37 以降が必要です。
- デスクトップ用 Power Automate の作業キュー アクションは、Power Automate サブスクリプション が必要なプレミアム機能です。
- 現在、作業キュー項目の処理と作業キュー項目の更新アクションのみ、データの消失防止 (DLP) ポリシーにより、分類し、許可または制限できます。他のアクションも間もなく可能になります。 クラウド フローベースの作業キューの使用は、DLP ポリシーによって制限できないことに注意してください。
作業キュー項目を処理する
作業キュー項目を処理するアクションは、コンピューターが 1 つ以上の作業キュー項目を処理する準備ができていることをキュー オーケストレーターに示します。 新しい項目を要求するユーザー コンテキストは、作業キューを処理するために、作業キューおよび作業キュー項目テーブルに対する十分な権限を持っている必要があります。
前のアクションで参照された 作業キュー は、キュー オーケストレーターによって使用され、その作業キュー内で キュー登録済み 状態にある、次に使用可能な項目を決定します。 デスクトップ フローが、このアクションがレンダリングする作業キュー項目を処理するループ内のアクションを処理するとき、プロパティ .Value
とともにアクションに指定した変数を利用して、値を呼び出すことができます。 この場合、変数 %WorkQueueItem.Value% を使用して作業キュー項目の値を呼び出すことができます
重要
"フィルター行" フィールドに FetchXML 式を指定すると、キューに入れられたアイテムに対するデフォルトの作業キュー オーケストレーターの FIFO ロジックがバイパスされます。 これにより、カスタムのデキュー順序を設定し、フィルター式が指定されていない場合に自動的に適用されるアイテムの有効期限やその他の設定を無視できます。
Processworkqueueitemaction
作業キュー項目のアクションを処理する アクションには次の引数が必要です。
入力パラメーター
引数 | オプション | 受入 | Default Value | プロパティ |
---|---|---|---|---|
作業キュー | いいえ | Text | 処理する項目を含む作業キューの作業キュー ID。 | |
行のフィルター | 可 | Text | 作業キューからアイテムを取得するために使用される FetchXML クエリ式。 | |
作業キューの自動再試行構成を上書きする | 可 | ブール値 | False | 有効にすると、IT Exceptions 再試行の最大回数を設定または上書きできるフィールドが表示されます。 |
再試行回数の上限 | いいえ | テキスト値、数値 | 上書きされない場合、作業キュー レコードで定義されたデフォルトの最大再試行回数が使用されます。 | IT Exceptions の許容される最大試行回数。 このパラメータを使用すると、再試行回数をより高い値またはより低い値に調整したり、回数を 0 に設定して再試行メカニズムを無効にしたりすることもできます。 |
生成される変数
引数 | タイプ | プロパティ |
---|---|---|
WorkQueueItem | いいえ | 処理中の作業キュー項目に保存されている情報 |
例外
例外 | Description |
---|---|
作業キューが見つかりません | 作業キュー パラメーターに入力された値が無効です。 |
作業キューが一時停止または停止中 | 作業キューは一時停止または停止されており、これはアイテムを処理するときに有効な状態ではありません。 |
無効な 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
作業キュー項目のアクションを更新する アクションには次の引数が必要です。
引数 | オプション | 受入 | Default Value | Description |
---|---|---|---|---|
作業キュー項目 | いいえ | Text | キュー オーケストレーターによって以前に返された作業キュー項目変数 | |
Status | いいえ | 処理済み、汎用例外 | 処理済み | オプションのリストから状態を使用して、処理中の作業キュー項目を更新します。 |
処理中のメモ | はい | Text | 処理中のキュー項目に追加するカスタムの処理中のメモまたは値。 | |
処理中のメモを消去 | はい | ブール値 | False | 有効にすると、この画面の処理中のメモのフィールドが非表示またはクリアされ、この項目に対して以前に取得されたすべての処理中のメモがデータベースから削除されます。 |
例外
引数 | プロパティ |
---|---|
作業キュー項目が見つかりません | 処理中の作業キュー項目が削除されているか、呼び出し元のキューに属していません。 |
作業キュー項目が保留中 | 処理中の作業キュー項目には、キュー オーケストレーターで on hold の状態が含まれており、更新できなくなりました。 |
作業キュー項目を更新できませんでした | 更新中の作業キュー項目で予期しないエラーが発生しました。 詳細については、エラー メッセージを確認してください。 |
作業キュー項目を追加する
作業キュー項目を追加するアクションでは、デスクトップ フロー ユーザーは、フロー ポータルで設定されている作業キューに作業キュー項目を追加できます。
Enqueueworkqueueitemaction
作業キュー項目の追加 アクションには次の引数が必要です。
入力パラメーター
引数 | オプション | 受入 | Default Value | プロパティ |
---|---|---|---|---|
作業キュー | いいえ | テキスト値 | 項目を追加する作業キュー項目 | |
優先順位 | いいえ | 高、中、低 | 正常 | 作業キュー項目を設定する優先度 |
件名 | いいえ | テキスト値、数値 | 新しい作業キュー項目のカスタムな名前または ID | |
入力 | いいえ | テキスト値、数値 | 処理する値列に属するデータ | |
有効期限 | はい | Datetime | キュー項目を期限切れにするように設定された datetime 値。それ以外の場合は、キューに設定されている場合はデフォルト値が採用されます | |
処理中のメモ | はい | テキスト値、数値 | 新しいキュー項目に追加されるカスタム処理メモ | |
一意の ID または参照を設定する | はい | テキスト値、数値 | 有効にすると、このキュー内で一意の値を指定する必要があります。 空のままにすると、system-<GUID> 形式の一意の値がシステムによって自動的に提供されます |
生成される変数
引数 | タイプ | プロパティ |
---|---|---|
WorkQueueItem | いいえ | 追加する作業キュー項目に保存されている情報 |
例外
引数 | Description |
---|---|
作業キューが見つかりません | 作業キュー パラメーターに入力された値が無効です |
項目を作業キューに追加できませんでした | 作業キュー項目を作業キューに追加できませんでした。 不正なリクエスト - クエリ構文のエラー |
複数の作業キュー項目を追加する
複数の作業キュー項目の追加 アクションを使用すると、作業キュー項目データ テーブルとして提供されたデータに基づいて、1 つ以上の作業キュー項目を作業キューに追加できます。
このアクションには、1 つ以上の作業キュー項目を保持するカスタム データ テーブルが必要です。 データ テーブルには 8 つの列があり、次のスキーマに準拠している必要があります。
列名 | プロパティ | Required | 許可値 |
---|---|---|---|
件名 | 品目の名前。 | いいえ | すべての英数字の文字列 |
input | 作成または更新した品目の詳細。 | 可 | すべての英数字の文字列 |
有効期限 | アイテムの有効期限までの期間を指定します。 | いいえ | 日付と時刻の値 |
処理中のメモ | アイテムに関連する処理メモのこと。 | いいえ | すべての英数字の文字列 |
優先順位 | 品目の優先度レベル。 | 可 | 100 (高)、200 (標準)、300 (低) のいずれかの数値値 |
一意の参照 | アイテムの一意の識別子または参照値。 | いいえ | 任意の一意の英数字文字列または参照 |
Status | インジェストの項目の状態。 | 可 | ゼロ (キュー済み)、1 (保留中) のいずれかの数値値 |
延期期限 | 作業キュー項目が処理から無視されるべき日時を指定します。 | いいえ | 日付と時刻の値 |
データテーブルを作成するためのRobinコードスニペット
次の例は、Power Automate デスクトップ デザイナー ウィンドウに直接コピーして貼り付けることができるロビン コード (従来のフローで使用される) スニペットです。 このスニペットは、予想されるフィールド セットを含む 新しいデータ テーブルの作成 アクションをフローに追加します。
Variables.CreateNewDatatable InputTable: { ^['Name', 'Input', 'Expires in', 'Processing notes', 'Priority', 'Unique reference', 'Status', 'Delay until'], [$'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $''''''] } DataTable=> DataTable
データ テーブルを作成するための PowerFx コード スニペット
次の例は、Power Automate デスクトップ デザイナー ウィンドウに直接コピーして貼り付けることができる PowerFx コードスニペットです。 このスニペットは、予想されるフィールド セットを含む 新しいデータ テーブルの作成 アクションをフローに追加します。
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
作業キュー項目を複数追加する アクションには、次の引数が必要です。
入力パラメーター
引数 | オプション | 受入 | Default Value | プロパティ |
---|---|---|---|---|
作業キュー | いいえ | テキスト値 | 項目を追加する作業キュー項目 | |
作業キュー項目のデータ | 可 | データテーブル | 作業キューに追加される作業キュー項目を保持するカスタム データ テーブル |
生成される変数
引数 | タイプ | Default Value | プロパティ |
---|---|---|---|
FailedWorkQueueItems | いいえ | 有効化 | 失敗があった場合、このオブジェクトは挿入に失敗した項目のインデックスとエラー コードを保持します。 返されるインデックスは、複数の作業キュー項目を追加する アクションの指定された作業キュー データ テーブル内の項目の位置 (インデックス) です。 |
失敗したアイテムあり | いいえ | 有効化 | 作業キュー項目データの問題によりアクションで取り込みエラーが発生したかどうかを示すインジケーター。 |
成功した作業キュー項目 | Disabled | いいえ | 作業キューに正常に追加されたインデックスと作業キュー項目を保持するカスタム オブジェクト。 |
例外
引数 | プロパティ |
---|---|
作業キューが見つかりません | 作業キュー パラメーターに入力された値が無効です |
作業キューが一時停止または停止中 | 作業キューが一時停止または停止されているため、作業キュー項目を作業キューに追加できませんでした。 |
作業キュー項目のリストをキューにバッチで追加できませんでした | 要求または通信エラーのため、作業キュー項目を作業キューに追加できませんでした。 |
遅延した項目を再度キューに入れる
遅延した項目を再度キューに入れる アクションを使用すると、ユーザーはデスクトップ フローで処理中のキュー項目を元のキューに再度追加できます。 さらに、キューに入れられた項目は、定義された時間まで保留および解放することができます。
Requeueworkqueueitemaction
遅延を伴う項目の再キュー アクションには、以下の引数が必要です。
入力パラメーター
引数 | オプション | 受入 | Default Value | プロパティ |
---|---|---|---|---|
作業キュー項目 | いいえ | 作業キュー項目 | 項目を追加する作業キュー項目 | |
延期期限 | いいえ | DateTime 値 | 正常 | キュー項目を遅延させるために適用される datetime 値 |
有効期限 | はい | DateTime 値 | 再度キューに入れられる項目のカスタム有効期限 | |
処理中のメモ | はい | テキスト値、数値 | 新しいキュー項目に追加されるカスタム処理メモ | |
処理中のメモを消去 | はい | ブール値 | False | 有効にすると、この画面の処理中のメモのフィールドが非表示またはクリアされ、この項目に対して以前に取得されたすべての処理中のメモがデータベースから削除されます |
例外
引数 | プロパティ |
---|---|
作業キューが見つかりません | 作業キュー パラメーターに入力された値が無効です |
作業キュー項目が見つかりません | キュー項目の値が無効です |
作業キュー項目を再キューできませんでした | 作業キュー項目を作業キューに追加できませんでした。 不正なリクエスト - クエリ構文のエラー |
作業キュー項目の処理中のメモを更新する
作業キュー項目の処理中のメモを更新する アクションを使用すると、ユーザーは選択した作業キュー項目の状態やその他のプロパティを変更せずに、処理中のメモを更新またはクリアできます。
updateprocessingnotesaction
作業キュー項目の処理中のメモを更新するアクション アクションには、次の引数が必要です。
引数 | オプション | 受入 | Default Value | プロパティ |
---|---|---|---|---|
作業キュー項目 | いいえ | Text | キュー オーケストレーターによって以前に返された作業キュー項目変数 | |
処理中のメモ | はい | Text | 処理されたキュー項目に追加するカスタムの処理結果または値 | |
処理中のメモを消去 | はい | ブール値 | False | 有効にすると、この画面の処理中のメモのフィールドが非表示またはクリアされ、この項目に対して以前に取得された処理中のメモがデータベースから削除されます |
例外
引数 | プロパティ |
---|---|
作業キューが見つかりません | 項目に関連付けられた作業キューは削除されたか、アクセスできなくなりました |
作業キュー項目が見つかりません | 作業キュー項目が無効です |
処理結果を追加できませんでした | 更新中の作業キュー項目で予期しないエラーが発生しました。 詳細については、エラー メッセージを確認してください。 |
フィルターで作業キュー項目を取得する
フィルターによる作業キュー項目の取得 アクションを使用すると、ユーザーは FetchXML フィルター式に基づいて 1 つ以上の作業キュー項目を取得できます。
Getworkqueueitemsaction
フィルターによる作業キュー項目の取得 アクションには、次の引数が必要です。
入力パラメーター
引数 | オプション | 受入 | Default Value | プロパティ |
---|---|---|---|---|
作業キュー | いいえ | Text | アイテムを取得する作業キュー | |
行のフィルター | いいえ | Text | FetchXML 作業キューからアイテムを取得するために使用されるクエリ式 | |
返される行 | いいえ | 回数 | 5000 | オーケストレーターによって返される作業キュー項目の最大数 |
生成される変数
引数 | タイプ | Default Value | プロパティ |
---|---|---|---|
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)
Status | コード | プロパティ |
---|---|---|
キュー登録済み | 12 | 項目はキュー |
処理中 | 6 | 項目は処理されています |
処理済み | 2 | 項目は処理されました |
保留中 | 3 | 項目は保留中 |
Error | 4 | 項目でエラーが発生しました |
ステータス (statuscode)
ステータスの理由 | コード | プロパティ |
---|---|---|
キュー登録済み | 12 | 項目はキュー |
処理中 | 6 | 項目は処理されています |
処理済み | 2 | 項目は処理されました |
保留中 (一時停止) | 3 | 項目は保留中 (一時停止中) |
一般例外 | 4 | アイテムに一般的な例外が発生しました |
IT 例外 | 5 | アイテムに IT 例外が発生しました |
ビジネス例外 | 6 | アイテムにビジネス例外が発生しました |
配信不能 | 7 | 項目は保留中 |
ProcessingTimeout | 8 | アイテム処理がタイムアウトしました |