エージェントが予定された作業時間前に移動を開始できるようにする

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:4分
  • エージェントが予定された作業時間前に移動を開始できるようにすることで、柔軟な作業タイプをサポートします。たとえば、悪天候によって移動時間が突然増加した場合に備えて、エージェントの予定作業時間外の移動時間を追加することができます。

    始める前に

    アドミニストレーターは、スクリプトを実行して、すべてのユーザーの作業時間外の移動時間を追加できます。

    必要なロール:wm_dispatcher、wm_manager、wm_admin、または admin

    手順

    1. 移動先 すべて > フィールドサービス.
    2. 次のいずれかのアクションを実行します。
      • ディスパッチャーの場合は、次に移動します ディスパッチ > 自分のエージェント.
      • マネージャーの場合は、次に移動します マネージャー > 自分のチーム.
    3. ユーザープロファイルを選択します。
    4. ユーザーレコードを追加または更新するには、次のいずれかの操作を行います。
      オプション説明
      このユーザーの新しいレコードを追加
      1. [作業パラメーター] タブをクリックします。
      2. [New] をクリックします。
      3. [勤務時間外の移動] ドロップダウン メニューをクリックします。
      4. [はい] をクリックします
      5. [Submit (送信)] を選択します。
      既存レコードを更新しました
      1. [作業パラメーター] タブをクリックします。
      2. [ 勤務時間外の移動 ] 列をダブルクリックします。
      3. 新しいパラメーターをクリックします。
      4. [保存] (Enter) をクリックします。
    5. すべてのユーザーの移動時間を作業時間として追加するには、次の手順を実行します。
      1. 移動先 システム定義 > スクリプト - バックグラウンド
      2. [ スクリプトを実行 ] ウィンドウで、すべてのユーザーの作業時間として移動時間を含めるスクリプトを追加します。
        表 : 1. 移動時間をユーザーの作業時間として含めるオプション
        オプション 説明
        移動時間をすべてのユーザーの作業時間として追加
        1. このスクリプトを追加します。
          createWorkParamsForAllAgents("yes");
          
          function createWorkParamsForAllAgents(travelOutsideWorkHours) {
          	var gr = new GlideRecord("sys_user_has_role");
          	gr.addEncodedQuery("role=26c324ba1b32200096f9fbcd2c0713c2"); // fetching users having wm_agent role
          	gr.query();
          	gs.info("total work agents found: "+gr.getRowCount());
          	var agentWorkParameter = {};
          		
          		while (gr.next()) {
          			var userId = gr.getValue("user");
          			if (!agentWorkParameter[userId]) {
          				var wp = new GlideRecord("wm_agent_work_configuration");
          				wp.initialize();
          				wp.setValue("user",userId);
          				wp.setValue("travel_outside_of_work_hours", travelOutsideWorkHours); // setting default value for travel_outside_of_work_hours
          				wp.insert();
          				agentWorkParameter[userId] = true;
          			}
          		}
          	}
        2. [スクリプトを実行] をクリックします。
        移動時間をすべてのユーザーの作業時間として更新する
        1. このスクリプトを追加します。
          updateWorkParamsForAgents("yes");  // param1: default travel outside work hours value
          
          function updateWorkParamsForAgents(travelOutsideWorkHours) {
          	var gr = new GlideRecord("wm_agent_work_configuration");
          	gr.query();
          	gs.info("total agent work parameters found: "+gr.getRowCount());
          	var updateCount = 0;
          	
          	while (gr.next()) {
          		var canTravelOutside = gr.getValue("travel_outside_of_work_hours");
          		if ( canTravelOutside != travelOutsideWorkHours) {
          			gr.setValue("travel_outside_of_work_hours", travelOutsideWorkHours);
          			if (gr.update())
          				updateCount ++;
          		}
          	}
          	gs.info("total agent work parameters updated: "+updateCount);
          }
        2. [スクリプトを実行] をクリックします。