設定工作

本文假設您已瞭解如何建立及使用工作。這項服務提供 具體範例,說明如何以下列方式設定運送工作:

  • 設定運送工作的目標時間範圍:設定運送時間 以完成工作

  • 自訂工作瀏覽權限:自訂工作活動的顯示設定 向客戶或車隊操作人員展示

如要進一步瞭解運送工作的欄位,請參閱建立運送工作。 更新現有工作的其他相關資訊時,您必須一併更新 除了 更新 則過去 012 年

設定目標時間範圍

目標時間範圍是工作應期間的 TimeWindow 已完成舉例來說,如果您提供交貨時段 收件者,您可以使用工作目標的時間範圍擷取這個時間範圍 並產生快訊,或用此資訊分析過往行程成效。

目標時間範圍包含開始時間和結束時間,且可設定 執行任何任務目標時間範圍不會影響轉送作業 行為

以下範例說明如何使用 Java gRPC 設定時間範圍 程式庫,或是如何向 UpdateTask 發出 HTTP REST 要求。你可以 也可以在建立工作時設定這個欄位。

gRPC

  static final String PROJECT_ID = "my-delivery-co-gcp-project";
  static final String TASK_ID = "task-8241890";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Task settings
  String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
  Task task = Task.newBuilder()
    .setName(taskName)
    .setTargetTimeWindow(
      TimeWindow.newBuilder()
        .setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
        .setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
    .build();

  // Task request
  UpdateTaskRequest updateTaskRequest =
    UpdateTaskRequest.newBuilder()  // No need for the header
        .setTask(task)
        .setUpdateMask(FieldMask.newBuilder().addPaths("targetTimeWindow"))
        .build();

  try {
    Task updatedTask = deliveryService.updateTask(updateTaskRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

REST

如要使用 HTTP 設定工作時間範圍,請呼叫 PATCH 並 請使用 updateMask 更新 targetTimeWindow 參數:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow

這裡的 &lt;id&gt; 是工作的專屬 ID。要求標頭 必須包含一個值為 Bearer <token> 的「Authorization」欄位, 其中 &lt;token&gt; 會根據指南核發給您的伺服器 ,詳見服務帳戶角色JSON Web 權杖

# Set JWT, PROJECT_ID, and TASK_ID in the local environment
  curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=targetTimeWindow" \
    -H "Content-type: application/json" \
    -H "Authorization: Bearer ${JWT}" \
    --data-binary @- << EOM
  {
    "targetTimeWindow": {
      "startTime": "2023-03-29T21:00:00Z",
      "endTime": "2023-03-29T23:00:00Z"
    }
  }
  EOM

自訂工作瀏覽權限

根據預設,Fleet Engine 可以提供特定工作活動的資料,方便您 向正在運送出貨和運送給艦隊業者的客戶顯示 出貨追蹤。這些資訊包括指出 停止,然後傳送通知給客戶,告知他們包裹送達 狀態。您可以逐一自訂每項任務的資訊,取得更符合需求的結果 和商業模式

本節將說明地圖上追蹤物件的顯示規則。 這些規則適用於兩種物件類別:

  • 位置標記顯示設定
  • 顯示進行中車輛工作的工作資料,例如折線和預計到達時間
,瞭解如何調查及移除這項存取權。

位置標記瀏覽權限規則

Fleet Engine 會顯示送貨地點的位置標記 無論運送狀態為何

工作資料瀏覽權限規則

本節說明工作資料適用的預設瀏覽權限規則。 只能自訂進行中的車輛工作,也就是只有 上車和下車工作可以套用自訂瀏覽權限規則。

您無法自訂以下工作:

  • 已排定的停靠站
  • 無法使用的工作
  • 非使用中的車輛工作

無法使用狀態工作瀏覽權限規則

根據預設,車輛至少不應出現在地圖上 任務無法使用。舉例來說, 駕駛正在休息,或是車輛在前往 追蹤運送狀態預估抵達時間與預估工作完成時間 仍可使用。再次提醒,您可能無法自訂這項規則。

使用中的車輛工作顯示設定

TaskTrackingInfo 物件提供許多資料元素, 可以透過出貨追蹤資料庫顯示。根據預設 任務是指派給車輛和車輛時才會顯示 再繼續下去當工作完成或工作完成時,顯示設定就會結束 已取消。

您可以為每個任務自訂顯示設定,只要設定 建立或更新工作時,工作上的 TaskTrackingViewConfig 也就是 Fleet Engine 的介面這會建立規則,規定個別資料元素 廣告。

下表列出可套用瀏覽權限規則的欄位。

瀏覽權限規則的車輛工作欄位
  • 路線折線
  • 預計到達時間
  • 預估工作完成時間
  • 與工作相關的剩餘行車距離
  • 剩餘停靠站數量
  • 車輛位置

下表列出上述欄位可用的瀏覽權限選項。

瀏覽權限選項
  • 剩餘停靠站數量
  • 距離預估抵達時間還有
  • 剩餘行車距離
  • 一律顯示
  • 一律不顯示

路線折線和車輛位置顯示規則

如果是追蹤的路線,路線折線的顯示設定取決於 車輛的能見度。是否在有效路線上顯示路線折線 看不到車輛時,車輛位置資訊仍可 由可見折線的結尾所推斷出。因此,透過這種方式 顯示設定必須是比車輛可見範圍的限製或更嚴格的限制。

請遵守這些規則,提供有效的路線折線 / 車輛位置 瀏覽權限組合。

路線折線和車輛位置指定的顯示設定選項相同

在此情況下,折線與車輛位置設定相同 選項包括:

  • 剩餘停靠站計數
  • 距離預計到達時間還有
  • 剩餘行車距離

遵循規則時,路線折線可見性的值必須為 較少 等於或等於為車輛顯示設定設定的值。在這個例子中 折線的剩餘停靠站門檻設為 3,小於 車輛指定的 5 值。也就是說 行程距離工作地點 5 個停靠站後,車輛就能顯示, 直到行程經過 3 個停靠站後,車輛才會顯示該車輛的路線。

```js
"taskTrackingViewConfig": {
  "routePolylinePointsVisibility": {
    "remainingStopCountThreshold": 3
  },
  "vehicleLocationVisibility": {
    "remainingStopCountThreshold": 5
  },
}
```

路線折線和車輛位置指定「不同的」顯示設定選項

如果路線折線和車輛位置有不同顯示設定選項, 只有當「同時」同時設定這兩個瀏覽權限,系統才會顯示車輛位置資訊 滿意同樣地,折線的顯示設定也受顯示規則規範 車輛類型:

  • 一律顯示:路線折線必須使用「一律顯示」 顯示選項時,車輛位置也提供相同 顯示設定
  • 一律隱藏:路線折線必須使用「一律隱藏」的顯示設定 選項,用於判斷車輛位置永不顯示顯示設定選項。

範例如下:

  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "vehicleLocationVisibility": {
      "remainingDrivingDistanceMetersThreshold": 3000
    },
  }

在本例中,只有剩餘的停靠站才會顯示車輛位置資訊 計數至少 3 剩餘行車距離至少 3,000 次 公尺。

自訂工作瀏覽權限範例

下列範例說明如何設定下列工作 顯示規則:

  • 如果車輛位於 3 站內,顯示路線折線。
  • 如果剩餘行車距離短於 5000 公尺,則顯示預計到達時間。
  • 一律不顯示剩餘的停靠站計數。
  • 其他欄位保留了 車輛與車輛停靠站的 5 個停靠站內。

請參閱 TaskTrackingViewConfig 以瞭解 gRPCREST

gRPC

static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";

DeliveryServiceBlockingStub deliveryService =
  DeliveryServiceGrpc.newBlockingStub(channel);

// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
  .setName(taskName)
  .setTaskTrackingViewConfig(
    TaskTrackingViewConfig.newBuilder()
      .setRoutePolylinePointsVisibility(
        VisibilityOption.newBuilder().setRemainingStopCountThreshold(3))
      .setEstimatedArrivalTimeVisibility(
        VisibilityOption.newBuilder().remainingDrivingDistanceMetersThreshold(5000))
      .setRemainingStopCountVisibility(
        VisibilityOption.newBuilder().setNever(true)))
  .build();

// Task request
UpdateTaskRequest updateTaskRequest =
  UpdateTaskRequest.newBuilder()  // No need for the header
      .setTask(task)
      .setUpdateMask(FieldMask.newBuilder().addPaths("taskTrackingViewConfig"))
      .build();

try {
  Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
      case NOT_FOUND:
        break;
      case PERMISSION_DENIED:
        break;
  }
  return;
}

REST

如要使用 HTTP 設定工作追蹤檢視設定視窗,請呼叫 PATCH 並 請使用 updateMask 更新 taskTrackingViewConfig 參數:

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig

例如:

# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=taskTrackingViewConfig" \
  -H "Content-type: application/json" \
  -H "Authorization: Bearer ${JWT}" \
  --data-binary @- << EOM
{
  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "estimatedArrivalTimeVisibility": {
      "remainingDrivingDistanceMetersThreshold": 5000
    },
    "remainingStopCountVisibility": {
      "never": true
    }
  }
}
EOM

後續步驟