AsyncOperationBase テーブルは、システム ジョブを格納するために使用されます。 システム ジョブは、次のような非同期拡張を表します。
- 非同期の登録済みワークフローとプラグイン。
- 一括、削除ジョブ、一括インポート、ロールアップ操作などのバックグラウンド操作。
非同期 操作タイプのリストについては、OperationType の選択肢/オプションを参照してください。
イベントが発生し、すべての即時拡張が実行されると、システムは非同期拡張のコンテキスト データを構造化形式に変換し、これを AsyncOperation レコードに保存します。
たとえば、非同期で登録されたワークフローは、注文が入ると自動的に顧客にメールを送信するプロセスです。 注文が発送されると、ワークフローは別の電子メールでフォローアップします。 このような非同期登録ワークフローでは、プラットフォームは非同期ワークフローのコンテキストを AsyncOperationBase テーブルのレコードとして保存します。 WorkflowLogBase テーブルには、ワークフロー実行のログを保持するためのプロセス ログ WorkflowLog が記録されます。
これらのレコードには次のような情報が含まれます。
ワークフローのID
ワークフローをトリガーするプラグインのID
ワークフロー実行の状態
このテーブルには、名前、説明、タイプ、操作タイプなど、すべての既定の活動列が含まれます。
このテーブルの列の完全なリストについては、システム ジョブ (AsyncOperation) テーブル/エンティティ参照を参照してください。
2021 年から、非同期操作のデータ部分は、 Dataverse データベース 容量に保存されるのではなく、Dataverse ファイル 容量に保存されるようになりました。 そのため、非同期操作のデータ サイズは、部分的に Dataverse データベース 容量か、部分的に Dataverse ファイル 容量にカウントされます。 Dataverse ファイル 容量は Dataverse データベース 容量よりも低い料金で課金されるため、Dataverse ファイル 容量に移行することでコストが削減されます。 さらに、Dataverse ファイル 容量により、非同期操作 テーブルに対するクエリのパフォーマンスが向上するため、全体的なパフォーマンスが向上します。
増加の原因
AsyncOperationBase テーブルの増加は、顧客の環境が依存するカスタマイズの数に直接依存します。 非同期ワークフローやプラグインが増えると、これらの操作の実行を追跡する AsyncOperationBase テーブルに保存されるレコードが増加します。
組織でワークフローやプラグインを多用している場合は、AsyncOperationBase テーブルはデータ容量の最大の消費者の 1 つになります。
AsyncOperationBase のサイズが時間の経過とともに成長し続ける場合は、非同期登録の自動削除オプションが設定されていることを確認してください (ワークフローとプラグインでこのオプションを設定する方法については、付録 をご覧ください)。 これにより、正常に完了したジョブはすべて完了するとすぐに削除され、テーブルのサイズが抑えられます。
Dynamics 365 の AsyncOperationBase テーブルの増加をもたらす共通要因には以下が含まれます。
ワークフローまたはビジネス プロセス フローの多用: 組織でワークフローまたは ビジネス プロセス フローを多用している場合、AsyncOperationBase テーブルは時間の経過とともに大きくなり、最終的にはパフォーマンスの問題を引き起こします。
大規模なエンティティでの非同期プラグイン登録: 添付ファイルなどの大きなエンティティに非同期プラグイン登録がある場合、非同期操作のデータ部分が急速に増加し、非同期操作ベース テーブルの規模も大きくなります。
非同期操作のデータ部分のサイズ: 非同期操作のデータ部分のサイズも、AsyncOperationBase テーブルの増大の原因となります。
テーブルのクリーンアップ
まず、サンドボックス環境でこれらの削除アクションをテストする必要があります。 運用容量のプレッシャーを軽減するためには、使用するストレージ容量を減らすのではなく、Microsoft Dynamics 365 サブスクリプションのストレージ容量を増やす方が理にかなっている場合があります。
警告
AsyncOperationBase テーブルの容量消費を削減するには、非同期ジョブに関連するカスタム メタデータを削除します。 AsyncOperation エンティティが削除されると、対応するファイル レコードも削除されます。
これらのレコードは削除されると利用できなくなります。 一括削除操作を実行するときは注意して進めてください。
このテーブル内のデータを削除する前に、次を実行して下さい。
削除操作時に実行されるワークフローと プラグインのカスタマイズを確認します。
カスケード削除の動作を確認して、プロセス中にデータが誤って削除されないようにします。
最終的な削除操作に進む前に、これらのアクションをサンドボックス環境でテストしてください。
すべての環境は、30 日より前に正常に完了したワークフロー システム ジョブを削除するために、すぐに使用できる 一括削除ジョブ が構成されています。
AsyncOperationBase テーブルに関連する余分な容量を削減するには、一括削除ジョブを使用 して 7 日以上前のワークフロー システム ジョブを削除する構成を検討してください。
診断クエリ
診断クエリ を使用して、 AsyncOperationBase に関連するジョブの問題を診断します。
次のクエリを使用して、AsyncOperationBase ファイル ストレージに関連する問題を診断します。
システム ジョブのステータス
システム ジョブ ページにアクセスするには、次のステップに従います。
- Power Platform 管理センター にサインインします。
- ナビゲーション ウィンドウで、[管理] を選択 します。
- 管理ウィンドウで環境を選択します。
- 環境を選択します。
- コマンド バーの [設定] を選択します。
- 監査とログ>システム ジョブを選択します。
システム ジョブには次のステータスがあります。
完了 - ジョブはどのステップも実行しなくなり、次の 3 つのステータスの理由が示されます。
成功 - ジョブは予定どおりに実行されました。
失敗 - ジョブの処理中にエラーが発生しました。
キャンセル - ジョブは実行されません。
実行中 - ジョブが処理中または実行中、またはアクションが実行されており、ステータスの値として次の 3 つが考えられます。
処理中 - ジョブは現在実行中です。
一時停止 - 一時停止操作がトリガーされました。
キャンセル - 管理者がキャンセル オプションをトリガーしました。
保留中: - システム ジョブが自動的にトリガーされる条件を満たしていない場合、または条件の評価に失敗した場合。 保留中のシナリオには 2 つのステータスがあります。
待機中 - システム ジョブが待機状態であることを示します。
リソースを待機中 - システム ジョブがリソースを待機していることを示します。
注意
実行中または保留中のジョブは、自動的にクリーンアップされません。 代わりに、キャンセルするための手動アクションをトリガーする必要があります。
顧客は、他の 一括削除ジョブ を構成して、AsyncOperationBase レコードを削除できます。
一括削除ジョブを設定する
一括削除ジョブを設定するには、次のリストを参照してください。
7 日以上経過した完了したシステム ジョブを削除する
Power Platform 管理センター にサインインします。
ナビゲーション ウィンドウで、[管理] を選択 します。
管理ウィンドウで環境を選択します。
環境を選択します。
コマンド バーの [設定] を選択します。
データ管理>一括削除>新規を選択します。
一括削除ウィザードが表示されます。 次へを選択します。
検索条件の定義 ページが表示されます。 AsyncOperationBase レコードを一括削除するには、次の手順を実行します。
検索 フィールドで システム ジョブ を選択します。
次の条件を入力します。
グループ 設定 条件 選択された値 かつ ステータス 等しい 完了 かつ 完了日 X 日よりも古い 7
常に狭い条件から始めて削除するレコードを制限し (3 年以上前)、徐々に削除する条件を広くし (3 か月以上前)、さらに削除条件を広くします (7 日以上前)。かつ システム ジョブの種類 次の値と等しくない 一括メール
インポート ファイルの解析
Workflow
指定した検索条件から削除されるレコードを表示するには、レコードのプレビュー を選択して、プロセス中にデータが誤って削除されないようにします。 次へ を選択します。
オプションの選択 ページで、すべてのオプションの後にこのジョブを実行する を選択し、7 日を選択します。 次へ を選択します。
一括削除の詳細の確認と送信 ページで、送信を選択します。
AsyncOperationBase テーブルの一括削除ジョブを構成する方法の詳細については、AsyncOperationBase/WorkflowLogBase テーブルからのクリーンアップ レコードを参照してください。
ワークフロー用の完了したシステム ジョブを削除する
Power Platform 管理センター にサインインします。
ナビゲーション ウィンドウで、[管理] を選択 します。
管理ウィンドウで環境を選択します。
環境を選択します。
コマンド バーの [設定] を選択します。
データ管理>一括削除>新規を選択します。
一括削除ウィザードが表示されます。 次へを選択します。
検索条件の定義 ページが表示されます。 AsyncOperationBase レコードを一括削除するには、次の手順を実行します。
検索フィールドで システム ジョブ を選択します。
次の条件を入力します。
グループ 設定 条件 選択された値 かつ ステータスの理由 等しい 成功しました かつ ステータス 等しい 完了 かつ システム ジョブの種類 等しい Workflow
指定した検索条件から削除されるレコードを表示するには、レコードのプレビュー を選択して、プロセス中にデータが誤って削除されないようにします。 次へ を選択します。
オプションの選択 ページで、すべてのオプションの後にこのジョブを実行する を選択し、7 日を選択します。 次へ を選択します。
一括削除の詳細の確認と送信 ページで、送信を選択します。
付録
ワークフローとプラグイン ジョブを設定する方法の詳細については、次のセクションを参照してください。
正常に完了した非同期ワークフロー ジョブを削除するオプションを設定する
非同期のワークフローでは、ワークフロー エディターで完了したワークフロー ジョブを自動的に削除する (ディスク容量の確保) オプションを選択することをお勧めします。 これにより、容量を確保するために、システムで成功した実行のワークフロー ログを削除できます。
正常に完了した非同期プラグイン ジョブを削除するオプションを設定する
カスタム プラグインの場合は、新しいステップの登録を選択します。 新しいステップの登録 画面が表示されます。
次の手順を実行します :
- イベント パイプライン ステージ 領域で、事後操作を選択します。
- 実行モード 領域で、非同期を選択します。
- 状態コード = 成功の場合は AsyncOperation を削除する オプションを選択します。