エージェントが予定作業時間前に出張を開始できるようにする

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:4分
  • エージェントが予定作業時間より前に出動を開始できるようにすることで、柔軟な作業タイプをサポートします。たとえば、正社員ではなく、契約社員またはオンデマンド社員の勤務時間外に移動時間を追加することができます。

    始める前に

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

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

    手順

    1. 移動先 すべて > フィールドサービス.
    2. 次のいずれかのアクションを実行します。
      • ディスパッチャーの場合は、 ディスパッチ > 自分のエージェント.
      • マネージャーの場合は、 マネージャー > 自分のチーム.
    3. ユーザープロファイルを選択します。
    4. ユーザーレコードを追加または更新するには、次のいずれかを実行します。
      オプションDescription (説明)
      このユーザーの新しいレコードを追加
      1. [新規] をクリックします。
      2. [ 作業時間外の移動 ] チェック ボックスをオンにします。
      3. [送信] をクリックします。
      既存レコードを更新しました
      1. 既存のレコードを開きます。
      2. [ 作業時間外の移動 ] チェック ボックスをオンにします。
      3. [Update (更新)] をクリックします。
    5. すべてのユーザーの作業時間として移動時間を追加するには、次の手順を実行します。
      1. 移動先 システム定義 > スクリプト - バックグラウンド
      2. [ スクリプトを実行 ] ウィンドウで、すべてのユーザーの作業時間として移動時間を含めるスクリプトを追加します。
        表 : 1. 移動時間をユーザーの作業時間として含めるオプション
        オプション Description (説明)
        すべてのユーザーの作業時間として移動時間を追加
        1. 次のスクリプトを追加します。
          createWorkParamsForAllAgents("yes");
          
          function createWorkParamsForAllAgents(travelOutsideWorkHours) {
          	var now_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 now_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. [スクリプトを実行] をクリックします。