リアルタイム ワークフロー プロセスのベスト プラクティス

この記事では、リアルタイムのワークフロー プロセスを作成・管理するベスト プラクティスを紹介します。

無限ループの回避

リアルタイム ワークフローでロジックを作成すると無限ループが発生し、サーバー リソースを消費してパフォーマンスに影響を与える可能性があります。 無限ループが発生する可能性がある状況は、ある列が更新されたタイミングで開始するように設定されたリアルタイム ワークフローがあり、ワークフローのロジックでその列を更新する場合です。 更新アクションは、レコードを更新するのと同じリアルタイム ワークフローをトリガし、リアルタイム ワークフローを何度もトリガーします。

作成するワークフローには、無限ループを検出して停止するためのロジックが含まれます。 リアルタイム ワークフロー プロセスが短時間に特定のレコードに対して一定回数以上実行された場合、以下のエラーが発生してプロセスが失敗します : このワークフロージョブは、開始したワークフローに無限ループが含まれていたため、取り消されました。ワークフローロジックを修正して再試行してください。 回数の上限値は 16 です。

リアルタイム ワークフローのテンプレートを使用する

類似したワークフローがあり、同じパターンに従うワークフローをさらに作成する予定がある場合は、リアルタイム ワークフローをワークフローのテンプレートとして保存します。 このように、同様なワークフローを次回作成する必要があるときに、テンプレートを使用してリアルタイムのワークフローを作成すると、一からすべての条件とアクションを入力する必要がなくなります。

プロセスの作成ダイアログで、既存テンプレートからのプロセスの新規作成 (一覧から選択) を選択します。

子ワークフローの使用

異なるワークフローや条件分岐で同じロジックを適用する場合は、そのロジックを子リアルタイム ワークフローとして定義すると、リアルタイム ワークフローや条件分岐ごとにロジックを手動で複製する必要がなくなります。 これにより、ワークフローの維持が容易になります。 同じロジックを適用する可能性のある多くのワークフローを調べるのではなく、1 つのワークフローを更新するだけとなります。

エラーが発生したリアルタイム ワークフロー ジョブのログを保持する

バックグラウンド (同期) で実行されないワークフローの場合は、リアルタイム ワークフロー定義の エラーが発生したワークフロージョブのログを保持する オプションを選択することをお勧めします。 このオプションを選択すると、失敗したリアルタイム ワークフロー実行のログをトラブルシューティングのために保存できます。 成功した同期ワークフロー実行のログは、スペースを節約するために常に削除されます。

失敗したワークフロー オプションのログを保持する。

同じテーブルを更新するワークフローの数を制限する

同じテーブルを更新するリアルタイムのワークフローを複数実行しようとすると、リソースロックの問題が発生する場合があります。 各営業案件の更新プログラムが関連取引先企業に対して更新をトリガーしている状況で実行している複数のワークフローを考えてみてください。 同時に同じ取引先企業レコードを更新するよう、実行および試行するこれらのワークフローの複数のインスタンスにリソース ロック問題が発生する場合があります。 リアルタイムのワークフロー障害が発生し、 SQL タイムアウト : リソース リソース名 のロックが取得できません などのエラー メッセージが記録されます。

変更の追跡にメモを使用

ワークフローを編集するときは、メモ タブを使用して、実行した内容と実行した理由を入力する必要があります。 これにより、加えた変更を他のユーザーが理解することができます。

次の手順

リアルタイム ワークフローのプロセスを構成する
リアルタイム ワークフロー プロセスの監視と管理

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。