OnCallContactPreferenceUtil: グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:10分
  • OnCallContactPreferenceUtil スクリプトインクルードは、連絡先設定を処理するためのメソッドを提供します。

    連絡先設定の構成については、「 連絡先設定を構成する」を参照してください。

    このスクリプトインクルードは、 OnCallRotation スクリプトインクルードをサポートしています。

    OnCallContactPreferenceUtil - OnCallContactPreferenceUtil()

    OnCallContactPreferenceUtil クラスのインスタンスを作成します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし

    OnCallContactPreferenceUtil - getContactsAtByEscalatee(オブジェクト escalatee, 数字 contactAttempt, GlideDateTime gdt, 文字列 rotaSysIds)

    エスカレーション先オブジェクトがある連絡先のリストを取得します。返された連絡先ごとに、ユーザーの連絡先設定のリストが入っています。

    表 : 2. パラメーター
    名前 タイプ 説明
    エスカレーション先 オブジェクト 必須。getEscalationPlan() メソッドによって返されたエスカレーション先オブジェクト。
    ContactAttempt 数字 オプション。連絡しようとしている試行 (デフォルト値 = 1)。
    • 1:最初の試行
    • 2:最初のリマインダー
    • 3 or more:後続のリマインダー
    gdt GlideDateTime オプション。UTC タイムゾーンでの yyyy-MM-dd HH:mm:ss 形式。デフォルトは now.admin
    rotaSysIds 文字列 オプション。[cmn_rota] テーブルから取得されたシフトのSys ID のカンマ区切り文字列。デフォルト値は、現在のシフトのSys ID を返します。
    表 : 3. 返される内容
    タイプ 説明
    アレイオブジェクト 特定の時間とポジションでのエスカレーション先 (通知ルールによってユーザー、グループ、またはデバイスレコード) のアレイ。
    • type:文字列。連絡先のタイプ、例:user。
    • sys_id:文字列。[sys_user] テーブルからのユーザーの Sys ID。
    • rota_id:文字列。[cmn_rota] テーブルからのシフトの Sys ID。
    • roster_id:文字列。[cmn_rota_roster] テーブルからの勤務表の Sys ID。
    • escalation_step_id:文字列。エスカレーションパスが定義されている場合は、[cmn_rota_esc_step_def] テーブルからのエスカレーションステップの Sys ID。
    • forced_communication_channel:文字列。設定で指定された場合、 必須 コミュニケーションチャネル。サポートされている値には、SMS、voice、email が含まれます。
    • override_user_contact_preference:ブール。連絡先の上書きがある場合は true、それ以外の場合は false。
    • preference_source:文字列。連絡先やグループなどの設定のソース。
    • contact_attempt:数値。連絡試行:1 = 最初の試行、2 = 最初のリマインダーなど。
    • user_preferences:アレイオブジェクト。
      • type:文字列。ユーザーの希望する連絡形式。例:sms、email、number。
      • <希望する形式の名前、例:email または number>:文字列。希望する連絡先タイプのコンテンツ。例:メールアドレスまたは電話番号。
    • contact_preferences、アレイオブジェクト。
      • type:文字列。ユーザーの希望する連絡形式。例:email または number。
      • <希望する形式の名前、例:email または number>:文字列。希望する連絡先タイプのコンテンツ。例:メールアドレスまたは電話番号。
    var serviceDeskSysId = '<Sys_ID>';
    var ocRotation = new OnCallRotation();
    var escalationPlan = ocRotation.getEscalationPlan(serviceDeskSysId);
    var escalatee = escalationPlan[0];
    
    var onContactPrefUtil = new OnCallContactPreferenceUtil();
    var contactAttempt = 1;
    var gdt = new GlideDateTime();
    var contacts = onContactPrefUtil.getContactsAtByEscalatee(escalatee, contactAttempt, gdt);
    gs.log(JSON.stringify(contacts));

    出力:

    [{
        "type": "user",
        "sys_id": "<Sys_ID>",
        "rota_id": "<Rotation_ID>",
        "roster_id": "",
        "escalation_step_id": "<Escalation_Step_ID>",
        "forced_communication_channel": "",
        "override_user_contact_preference": true,
        "preference_source": "contact",
        "contact_attempt": 1,
        "user_preferences": [{
            "type": "sms",
            "number": "8587200477"
        }],
        "contact_preferences": [{
            "type": "voice",
            "number": "5555555555"
        }]
    }]

    OnCallContactPreferenceUtil - getUserPreferences(文字列 userSysId, 数字 contactAttempt, GlideDateTime gdt, 文字列 communicationTypes)

    ユーザーが通信を選択したときの連絡先設定のリストを取得します。時刻が指定されていない場合は、現在の時刻が使用されます。このメソッドは、単一のシフトと重複するシフトに適用できます。

    表 : 4. パラメーター
    名前 タイプ 説明
    userSysId 文字列 [sys_user] テーブルから取得したユーザーのSys ID。
    ContactAttempt 数字 オプション。連絡しようとしている試行 (デフォルト値 = 1)。
    • 1:最初の試行
    • 2:最初のリマインダー
    • 3 or more:後続のリマインダー
    gdt GlideDateTime オプション。UTC タイムゾーンでの yyyy-MM-dd HH:mm:ss 形式。デフォルトは現在の時刻です。
    communicationTypes 文字列 オプション。次の値を 1 つ以上含むカンマ区切りの文字列です。
    • email
    • sms
    • voice

    デフォルトには、利用可能なすべての通信タイプが含まれます。

    表 : 5. 返される内容
    タイプ 説明
    アレイオブジェクト オンコールユーザー連絡先設定。
    • type:文字列。ユーザーの希望する連絡形式。例:sms、email、number。
    • <希望する形式の名前、例:email または number>:文字列。希望する連絡先タイプのコンテンツ。例:メールアドレスまたは電話番号。
    var onContactPrefUtil = new OnCallContactPreferenceUtil();
    var contactAttempt = 1;
    var gdt = new GlideDateTime();
    var itilUserSysId = '<itilUserSysId>;
    var userPreferences = onContactPrefUtil.getUserPreferences(itilUserSysId, contactAttempt, gdt);
    gs.log(JSON.stringify(userPreferences));

    出力:

    [{
        "type": "sms",
        "number": "5555555555"
    }, {
        "type": "voice",
        "number": "5555555555"
    }]

    OnCallContactPreferenceUtil - getCatchAllContacts(文字列 rotaId, GlideDateTime gdt)

    予備連絡先と設定のリストを取得します。

    表 : 6. パラメーター
    名前 タイプ 説明
    rotaId 文字列 [cmn_rota] テーブルから取得したシフトのSys ID。
    gdt GlideDateTime オプション。UTC タイムゾーンでの yyyy-MM-dd HH:mm:ss 形式。デフォルトは現在の時刻です。
    表 : 7. 返される内容
    タイプ 説明
    アレイオブジェクト 予備連絡先と設定のリスト。
    • type:文字列。連絡先のタイプ、例:user。
    • sys_id:文字列。[sys_user] テーブルからのユーザーの Sys ID。
    • rota_id:文字列。[cmn_rota] テーブルからのシフトの Sys ID。
    • roster_id:文字列。[cmn_rota_roster] テーブルからの勤務表の Sys ID。
    • escalation_step_id:文字列。エスカレーションパスが定義されている場合は、[cmn_rota_esc_step_def] テーブルからのエスカレーションステップの Sys ID。
    • forced_communication_channel:文字列。設定で指定された場合、 必須 コミュニケーションチャネル。サポートされている値には、SMS、voice、email が含まれます。
    • override_user_contact_preference:ブール。連絡先の上書きがある場合は true、それ以外の場合は false。
    • preference_source:文字列。連絡先やグループなどの設定のソース。
    • contact_attempt:数値。連絡試行:1 = 最初の試行、2 = 最初のリマインダーなど。
    • user_preferences:アレイオブジェクト。
      • type:文字列。ユーザーの希望する連絡形式。例:sms、email、number。
      • <希望する形式の名前、例:email または number>:文字列。希望する連絡先タイプのコンテンツ。例:メールアドレスまたは電話番号。
    • contact_preferences、アレイオブジェクト。
      • type:文字列。ユーザーの希望する連絡形式。例:email または number。
      • <希望する形式の名前、例:email または number>:文字列。希望する連絡先タイプのコンテンツ。例:メールアドレスまたは電話番号。

    例:

    
    var onContactPrefUtil = new OnCallContactPreferenceUtil();
    var contactAttempt = 1;
    var gdt = new GlideDateTime();
    var rotaSysId = '<Rotation_Sys_ID>';
    var catchAllContacts = onContactPrefUtil.getCatchAllContacts(rotaSysId, gdt);
    gs.log(JSON.stringify(catchAllContacts));

    出力:

    [{
        "type": "user",
        "sys_id": "<Sys_ID>",
        "rota_id": "<Rotation_ID>",
        "roster_id": "",
        "escalation_step_id": "<Escalation_Step_ID>",
        "forced_communication_channel": "",
        "override_user_contact_preference": true,
        "preference_source": "contact",
        "contact_attempt": 1,
        "user_preferences": [{
            "type": "sms",
            "number": "8587200477"
        }],
        "contact_preferences": [{
            "type": "voice",
            "number": "5555555555"
        }]
    }]