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

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

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

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

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

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

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

    UniversalTaskUtils - applyTemplate(文字列 templateSysId, GlideRecord uniTaskGr)

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

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

    表 : 1. パラメーター
    名前 タイプ 説明
    templateSysId 文字列 指定のユニバーサルタスクレコードに適用するユニバーサルタスクテンプレートの 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);