ワークフローエンジン | ワークフロータイマーの利用方法Issue ワークフローエンジン |ワークフロータイマーはどのように役立つかCauseシナリオ ServiceNow インスタンスでは、ユーザーがレコードの作成をトリガーできます。これにより、実行中のワークフローがトリガーされ、ビジネスルールとスクリプトインクルードが実行されることもあります。 ビジネスルールの実行時間が長いか、ワークフロースクリプトの実行が原因で予期しない動作が発生することがあります。 実装可能なソリューションの1つは、1秒のタイマーを配置することです。ただし、ワークフロータイマーはどのように役立つのか、なぜソリューションとして使用されるのかという疑問が残ります。Resolutionワークフロータイマの機能 ワークフロータイマーが初めて実行されるとき、スケジュール済みジョブが作成されます。すべてのスケジュール済みジョブは、 sys_trigger というテーブルに格納されます。 トリガーされたワークフロータイマーは、 wf_executing というテーブルに格納されます。 スケジュール済みジョブが作成されると、タイマーアクティビティがsys_triggerレコードの [document_key] フィールドで参照されます。 スケジュール済みジョブは、タイマー期間が完了するまでsys_triggerテーブルに残ります。タイマーアクティビティの期間は、ユーザー構成に基づいてタイマー自体に設定された期間によって異なります。 期間が終了すると、スケジュール済みジョブが実行され、イベントをワークフローに送り返して通知します。ワークフローは次のアクティビティの実行を続行します。 ワークフロータイマーの影響 タイマーのスケジュール済みジョブはシステムユーザーによって実行され、すべてのスケジュール済みジョブと同様にバックグラウンドで実行されます。 つまり、ワークフロータイマーの実装 後 すべてのスクリプト実行はシステムユーザーによって実行され、システムスケジューラーのバックグラウンドでも実行されます。これにより、ビジネスルール、スクリプトインクルード、およびワークフロースクリプトを非同期に実行できるため、システムパフォーマンスを向上させることができます。 また、ワークフローにタイマーアクティビティがあると、システムは最後のアクティビティの後にデータベースへの変更を停止してコミットできます。設計上、ワークフロー エンジンは、メモリに保持されている現在のオブジェクトに対するデータベースの変更のみをコミットします。