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