サービスレベルアグリーメント (SLA) へのカスタムビジネスルールの追加

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:2分
  • SLA にカスタムビジネスルールを追加できます。

    始める前に

    必要なロール:admin

    手順

    カスタムビジネスルールを追加するために、次のいずれかの方法を選択します。
    オプション説明
    setWorkflow(false) の使用 タスクを更新する前に、タスクを更新するビジネスルール内のタスクの GlideRecord オブジェクトに対してコールを setWorkflow(false) に追加します。これにより、ビジネスルールが処理されるのを防ぎます。
    注:
    setWorkflow(false) はすべてのエンジンの処理を無効にし、更新はタスクの監査履歴には表示されません。
    たとえば、違反時間をタスクのカスタムフィールドにコピーするスクリプトです。
    (function(){ 
                if (current.planned_end_time.changes()) { 
                   var taskGr = current.task.getRefRecord(); 
                   taskGr.u_sla_breach_time = current.planned_end_time; 
                   taskGr.setWorkflow(false); 
                   taskGr.update(); 
                } )
              ();
    タスクを更新する sys_trigger (スケジュール ジョブ) を作成する カスタムビジネスルールにおいて、[スクリプト] フィールドを使用してスケジュール済みジョブを生成し、タスクを更新します。スケジュール済みジョブをすぐに処理するためのキューに確実に格納するためには、そのタイプが「1 回実行」で、次のアクション時間が「今」になっている必要があります。
    注:
    ScheduleOnce スクリプトインクルードには、ターゲットレコードと、スケジュール済みジョブをいつ実行するかを指定する関数が含まれています。これにより、実行するスクリプトを指定し、別の関数を呼び出して sys_trigger テーブルに適切なレコードを作成できます。
    たとえば、タスク SLA からタスクのカスタム フィールドに違反時間をコピーするスケジュール済みジョブを作成するスクリプト。
    (function(){
                if (current.planned_end_time.changes()) { 
                   var scheduleJob = new ScheduleOnce(); 
                   scheduleJob.setDocument(t.task.getRefRecord()); 
                   scheduleJob.script = 
                       "current.u_sla_breach_time.setValue('" + 
                       current.getValue('planned_end_time') + 
                       "');current.update();"; 
                   scheduleJob.schedule(); 
                } 
              )();