UniversalTaskUtils - スコープ指定、グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • UniversalTaskUtils スクリプトインクルードは、ユニバーサルタスクを管理するためのメソッドを提供します。

    ServiceNow Universal Task アプリケーションを使用すると、エージェントは従業員のタスクを作成できます。たとえば、エージェントは追加情報を要求したり、親チケットまたは要求を解決するアクションを要求したりできます。ユニバーサルタスクは、タスク [task] テーブルを拡張するすべてのチケットタイプで使用できます。

    このスクリプトインクルードを使用すると、アクティブなユニバーサルタスクのステータスを「完了」または「キャンセル」に変更したり、指定された親タスクのすべてのアクティブなユニバーサルタスクを取得したり、親ユニバーサルタスクに子があるかどうかを確認したり、ユニバーサルタスクレコードにテンプレートを適用したりできます。これらのメソッドは、スクリプトおよび タブ構成 フォームの表示可能な条件ビルダーで使用して、[ ユニバーサルタスク ] タブに表示されるデータを管理できます。詳細については、「 標準チケット」ページの「タスクの追加」を参照してください

    タブ構成条件ビルダーの例

    このスクリプトインクルードは、スコープ対象アプリケーションとグローバルアプリケーションの両方で使用できます。このスクリプトインクルードにアクセスするには、Universal Task アプリケーション (sn_uni_task) を関連するインスタンスにインストールする必要があります。この API でメソッドを呼び出すときは、常に sn_uni_task 名前空間を指定する必要があります。

    ユニバーサルタスクアプリケーションの詳細については、「 ユニバーサルタスク」を参照してください。

    UniversalTaskUtils - applyTemplate(String templateSysId, GlideRecord uniTaskGr)

    指定されたユニバーサルタスクテンプレートを、指定されたユニバーサルタスクレコードに適用します。

    この方法を使用する前に、インスタンスにユニバーサルタスクテンプレートが構成されている必要があります。詳細については、「 ユニバーサルタスクテンプレート」を参照してください。

    表 : 1. パラメーター
    名前 タイプ 説明
    テンプレート SysID 文字列 指定されたユニバーサルタスクレコードに適用するユニバーサルタスクテンプレートのSys_id。

    テーブル:ユニバーサルタスクテンプレート [sn_uni_task_template]

    uniTaskGr GlideRecord テンプレートを適用するユニバーサルタスクレコードの GlideRecord。
    表 : 2. 戻り値
    タイプ 説明
    なし エラーはすべてシステムログに書き込まれます。

    このコード例は、フィードバック テンプレートを取得して適用する関数を示しています。

    (function executeRule(current, previous /*null when async*/) {
      var templateGr = new GlideRecord('sn_uni_task_template');
      templateGr.get('name','Feedback Template');
      var templateSysId = templateGr.getValue('sys_id');
      new sn_uni_task.UniversalTaskUtils().applyTemplate (templateSysId,current);
    })(current, previous);

    UniversalTaskUtils:getActiveChildTasks(文字列 parentSysId)

    指定された親チケットのアクティブな子タスクレコードを GlideRecord の形式で返します。

    その後、呼び出し元アプリケーションのスコープに応じてスコープ指定またはグローバルGlideRecord API を使用して、getRowCount() メソッドを使用してアクティブなタスクをカウントするなど、返されたデータにアクセスできます。

    表 : 3. パラメーター
    名前 タイプ 説明
    parentSysId 文字列 アクティブな子チケットが返される親チケットのSys_id。
    表 : 4. 戻り値
    タイプ 説明
    GlideRecord 指定された親タスクのすべてのアクティブな子タスクレコードを含む GlideRecord。

    次の例は、現在のsys_idのすべてのアクティブな子タスクを取得し、 getRowCount() を使用してアクティブな子タスクの数を取得する関数を示しています。

    (function executeRule(current, previous /*null when async*/) {
      var gr_ActiveTasks = new sn_uni_task.UniversalTaskUtils().getActiveChildTasks(current.sys_id);
      var count = gr_ActiveTasks.getRowCount();
    })(current, previous);

    UniversalTaskUtils - hasTasksToShow (GlideRecord current)

    指定された親チケットに、対応中または完了ステータスのユニバーサルタスクがあるかどうかを確認します。

    この方法を使用して、対応中または完了しているタスクがある場合にのみ、標準チケット構成で要求者に [ユニバーサルタスク] タブを表示するかどうかを決定できます。

    表 : 5. パラメーター
    名前 タイプ 説明
    current GlideRecord 確認する親チケットの GlideRecord。
    表 : 6. 戻り値
    タイプ 説明
    sys_id ユニバーサルタスクが親チケットに関連付けられている場合は、親チケットのsys_id。それ以外の場合は null です。

    データタイプ:文字列

    次の例は、このメソッドを呼び出してユニバーサルタスクをチェックする関数を示しています。

    (function executeRule(current, previous /*null when async*/) {
      var sysId = new sn_uni_task.UniversalTaskUtils().hasTasksToShow(current);           
    })(current, previous);

    UniversalTaskUtils:markActiveChildTasksCancelled(文字列 parentSysId)

    指定された親チケットの下にあるすべてのアクティブなユニバーサルタスクのステータスを「キャンセル」に変更します。

    表 : 7. パラメーター
    名前 タイプ 説明
    parentSysId 文字列 アクティブな子ユニバーサルタスクのステータスを「キャンセル」に変更する必要がある親チケットのSys_id。
    表 : 8. 戻り値
    タイプ 説明
    なし

    このコード例は、このメソッドを使用して、指定された親タスクに関連付けられているすべてのユニバーサルタスクの状態をキャンセルに更新する方法を示しています。

    (function executeRule(current, previous /*null when async*/) {
      new sn_uni_task.UniversalTaskUtils().markActiveChildTasksCancelled(current.sys_id);
    })(current, previous);

    UniversalTaskUtils - markActiveChildTasksCompleted(文字列 parentSysId)

    指定された親チケットに関連付けられているすべてのアクティブな子ユニバーサルタスクのステータスを「完了」に変更します。

    表 : 9. パラメーター
    名前 タイプ 説明
    parentSysId 文字列 アクティブな子ユニバーサルタスクのステータスを「完了」に変更する必要がある親チケットのSys_id。
    表 : 10. 戻り値
    タイプ 説明
    なし

    このコード例は、このメソッドを使用して、指定された親タスクに関連付けられているすべてのユニバーサルタスクの状態を完了に更新する方法を示しています。

    (function executeRule(current, previous /*null when async*/) {
      new sn_uni_task.UniversalTaskUtils().markActiveChildTasksCompleted(current.sys_id);
    })(current, previous);