ステータス モデルへのステータスの追加

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む7読むのに数分
  • 組織の要件に基づいて、さまざまな変更タイプに対して既存のステータス モデルに新しいステータスを追加できます。

    始める前に

    必要なロール:script_include_admin、ui_policy_admin、ui_action_admin、または admin

    このタスクについて

    ステータス モデル」プラグインはデフォルトで有効になっています。変更要求の基本システム ステータスの詳細については、次を参照してください。 ステータス モデルと移行

    手順

    1. 移動先 すべて > 変更 > 新規作成 をクリックし、次の手順を実行して選択リストに選択肢を追加します。
      1. [ステータス] フィールドを右クリックして、[ディクショナリを設定] をクリックします。
      2. [選択肢] 関連リストで、 [テーブル] [次の値に等しい (=)] [change_request] のフィルターを実行します。
      3. [新規] をクリックし、新規ステータスに次の情報を追加します。
        • テーブル:変更要求 [change_request]
        • ラベル:新規ステータスの名前
        • : 既存のステータス選択にまだ割り当てられていない数値
        • シーケンス:ステータスのリストに現れる場所に対応する番号。別の選択肢と同じシーケンス番号をアサインすると、他の選択肢の下に表示されます。
      4. [Submit (送信)] をクリックします。
    2. 移動先 システム定義 > スクリプトインクルード.
      名前に SNC が含まれているスクリプトインクルードレコードは読み込み専用です。次の手順を完了したら、変更する正しいスクリプト インクルードを選択していることを確認します。たとえば、変更するのは ChangeRequestStateHandler で、ChangeRequestStateHandlerSNC ではありません。
      注:
      拡張スクリプトインクルード (SNC を含んでいないもの) には、同じもので SNC があるものの機能のすべてが含まれています。基本スクリプトインクルード (SNC が付加されているもの) を変更すると、システムアップグレード中にそれ以上は更新できなくなります。
    3. ChangeRequestStateHandler スクリプトを開いて、次の編集を実行します。
      • このスクリプト インクルードの最初にある [ステータス ハンドラー定数] セクションを更新して、新しく追加されたステータスの値を含めます。例:
        ChangeRequestStateHandler.MY_NEW_STATE = "mynewstate";
      • 初期化機能の最後にある [STATE_NAMES] マップを更新して、新しく追加されたステータスの数値を含めます。例:
        this.STATE_NAMES["-6"] = ChangeRequestStateHandler.MY_NEW_STATE;
        注:
        [STATE_NAMES] マップは、変更要求について [ステータス] フィールドに保存されている数値の間のマッピングを覚えやすい名前で提供します。このマッピングにより、ステータス モデル スクリプト インクルードに覚えやすい名前を使用することができます。
    4. 適切なスクリプト インクルードを編集して、関連する変更要求タイプのモデルに新しいステータスを組み込みます。
      変更の要求の各タイプには ChangeRequestStateModel_<type> という名前の関連するスクリプトインクルードがあります。ここで、<type> は変更の要求タイプの値です。たとえば、ChangeRequestStateModel_normal は、通常のタイプの変更要求に対してステータス モデルを定義します。
      それぞれのステータス モデル スクリプト インクルードは、次の情報を指定するオブジェクトを定義します。
      • どのステータスが利用可能か。
      • 利用可能な各ステータスごとの次のステータス。
      • ステータス移行ごとに、その移行が利用可能 (canMove) かどうかを、そのステータス (moving) への移動の一部として実行される関数とともに特定する機能。

      次の例は、ChangeRequestStateModel_normal スクリプト インクルードからのものです。

      変更要求ステータススクリプトの変更
    5. UI アクションを作成して、変更要求を新しいステータスに進めるためのボタンを用意します。
      1. [挿入と維持] を使用して、[実装] など、デフォルトの UI アクションの 1 つをコピーします。
      2. フォームにある次のフィールドを更新します。
        フィールド名 更新
        名前 新しいステータスの名前と一致するように更新します。
        アクション名 名前の最後にあるステータスを新しいステータスに置き換えます。
        ヒント テキストを更新して、新しいステータスを参照します。
        クリック時 新しいステータスに一致するように関数の名前を変更します。
        条件 isNext 関数の呼び出しを新しいステータスで更新します。
        スクリプト
        • 関数名を、[クリック時] フィールドに指定されているいずれかと一致するよう更新します。
        • ga.addParam(“sysparm_state_name”,… で始まる行を更新して、addParam 関数の 2 つ目のパラメーターとして新しいステータスの名前を入力します。
        • gsftSubmit で始まる行を更新し、[アクション名] フィールドに入力されている値と一致するようにこの関数呼び出しの 3 つ目のパラメーターを変更します。

        次の例は、更新する値を表示する [実装] UI アクションを使用しています。

        変更された UI アクション
        ChangeRequestStateHandler スクリプトインクルードには、変更要求の現在のステータスに基づいて UI アクションが表示されるかどうかを判定するために使用される 2 つの関数が含まれています。
        • isNext(stateName):この関数は stateName がパラメーターとして変更要求の現在のステータスにとってその次のステータスとして利用可能であるかどうかのみをチェックします。
        • canMoveTo(stateName):この関数は isNext 関数と同じチェックを実行します。ただし、現在のステータスからパラメーターとして渡される stateName への移行のための適切な canMoveTo 関数の呼び出しの結果もチェックします。この関数は、フィールドに特定の値が含まれていることのチェックなど、canMove 関数で追加的なチェックがある場合に使用されます。
    6. 次の手順を実行して、新しい変更ステータスを組み込むようにプロセスフロー設定を更新します。
      プロセスフローは、変更要求フォームの最上部に表示され、さまざまなプロセスフローレコードで設定されます。
      プロセスフローに表示される新しいステータス
      1. 移動先 システム UI > プロセスフロー [Table] [ is] [change_request] のモジュールとフィルター。
      2. レコードを開いて、[挿入と維持] を使用してコピーを作成します。
      3. フォームにある次のフィールドを更新します。
        フィールド名 更新
        名前 新しいステータスの名前と一致するように更新します。
        ラベル 新しいステータスの名前と一致するように更新します。この値は、変更要求フォームの最上部にあるプロセスフローに含まれています。
        順番 新しいステータスが他のステータスの既存のプロセスフローレコードに対応する順序になるようにこの番号を更新します。
        条件 新しいステータスの名前と一致するように更新します。
      4. [更新] をクリックします。

    次のタスク

    新しいステータスが期待どおりに機能するようにするには、デフォルトのワークフローをレビューしてください。必要に応じて、新しいステータスをワークフローに追加します。

    デフォルト ワークフローのレビュー

    ステータス モデルに変更があると、変更要求のデフォルト ワークフローに影響する場合があります。

    始める前に

    必要なロール:admin

    このタスクについて

    各変更タイプには、デフォルトのワークフローがあります。ステータス モデルへの変更がワークフローに悪影響を及ぼさないようにするには、デフォルトの各ワークフローをレビューする必要があります。

    手順

    変更されたそれぞれの ChangeRequestStateModel_<type> スクリプト インクルードのワークフローをレビューしてください。
    表 : 1. 変更要求デフォルト ワークフロー
    変更タイプ スクリプト インクルード名 Workflow
    標準 ChangeRequestStateModel_normal 変更要求 - 標準
    標準 ChangeRequestStateModel_standard 変更要求 - 標準
    緊急 ChangeRequestStateModel_emergency 変更要求 - 緊急

    各変更タイプのデフォルト ワークフローの変更は、ステータスのシーケンスで新しいステータスが追加される場所によって異なります。