状況フローのカスタマイズ
状況フローは、サービス管理アプリケーションでレコードが状況間を移行する順序を制御します。
- ステータスを追加または削除します。
- 特定の状況移行時にイベントをトリガーします。
- 要求またはそのタスク内のデータが変更されたときに自動的に別のステータスに移行するか、ユーザーがボタンをクリックしたときに手動でステータスを変更します。
- [ステータス] フィールドの選択リストを、指定された開始ステータスからの有効な移行である終了ステータスに制限します。
- ターゲットテーブルのレコードの状況が変更されたときの、ターゲットテーブルの選択されたフィールドの表示と動作を制御します。
- カスタム状況フローを作成します。構成画面で [状況フローを有効にする ] オプションをオフにします。カスタム状況フローを作成するには、スクリプティングの知識が必要です。
SM 要求とタスク状況フローの仕組み
状況フローは、要求とそれに関連するタスクの状況間の移行方法を制御する標準プロセスに代わるものです。ServiceNowシステムは、指定した移行とフィールドコントロールを実行するビジネスルール、クライアントスクリプト、および UI アクションを作成します。これらのプログラミング要素は、それらを使用する状況フローレコードが存在する間は使用され続けます。SM アプリケーションテーブルの状況フローが削除されると、システムはそのテーブルに作成された不要なプログラミング要素の削除を試みます。開始ステータスに基づいて、[ステータス] フィールドの選択を移行の有効なステータスに制限できます。
- 手動移行:条件またはスクリプトを指定すると、システムによって自動的に作成される UI アクションによって移行が開始されます。
- 自動移行:条件とスクリプトを指定すると自動的にビジネスルールによって作成され、要求またはタスクに変更が加えられると移行が開始されます。
状況フローで利用可能な機能
- カスタム移行: 要求およびタスクレコードの状況が変化する順序をカスタマイズします。
- フィールドコントロール: タスクのステータスが変更されたとき、または指定された終了ステータスに達したときの、特定のフィールドの動作と可視化を制御します。
- ステータス選択リスト:タスクレコードの [ステータス] フィールドで提供される値を、その移行の有効なステータスに制限します。これは、状況移行のフィールドコントロールを管理するためにシステムが作成するものと同じクライアントスクリプトです。
- イベント:状況移行が発生したとき、またはレコードが特定の終了状態に達したときにイベントをトリガーします。
開始状況と終了状況
タスクレコードがあるステータスから別のステータスに特定の移行を行うときに発生する必要がある処理のカスタム状況フローを作成できます。これらのレコードには開始状態と終了状態が必要であり、処理は状況間の移行中に発生します。タスクレコードが特定の終了ステータスに達したときに何らかの処理を実行するには、終了ステータスを定義するだけで済みます。タスクがキャンセルされた後に何らかのクリーンアップを実行する必要がある場合など、状況フローは開始状態のみになることがあります。レコード内の処理が複数の状況移行に適用される場合、状況フローには開始状態も終了状態もない可能性があります。
解決策は、ビジネスルールまたはクライアントスクリプトを状況フローレコードに保存し、それを必要とするステータス変更の処理をトリガーする条件を作成することです。フィールドサービス管理 (FSM) でのこの例は、作業指示タスク [wm_task] テーブルの「変更をロールアップ」ビジネスルールです。このビジネスルールは、タスクで発生したステータス変更を親作業指示にロールアップします。