已排定的工作

本文件說明 Fleet Engine 中的排程工作服務。假設 您已閱讀「什麼是 Fleet Engine?」一文,瞭解特定的機群。 符合需求的引擎服務功能

閱讀這份說明文件時,請注意下列事項:

  • 建立工作並連結至車輛停靠站,藉此達到 模擬任務與工作位置 車輛應停下,以便駕駛人完成工作。 詳情請參閱「車輛簡介」一文 瞭解車輛在 Fleet Engine 中的運作方式。
  • 用於已排定工作的 Fleet Engine 資源會使用下列資源Task 以及 DeliveryVehicle。Fleet Engine 提供 gRPC 服務和 REST 介面:
    • TaskgRPCREST
    • DeliveryVehiclegRPCREST
    • 為求簡單起見,本手冊使用 gRPC 範例。

什麼是排程工作?

Fleet Engine 中的排程工作代表了要執行的個別動作 由駕駛人在更廣泛的情境中行駛的車程 交通運輸作業會定義驅動程式的「特定目標」。 例如:

  • 為居住地址提供好物
  • 到店領取要回到貨運庫的包裹
  • 為客戶提供現場服務
  • 以便排定停靠站供車輛行駛

工作元素

下圖說明這些任務元素 搭乘大眾運輸工具

基本工作欄位

欄位 說明
類型 定義與工作相關聯的動作類型。
工作 ID 專門用來在系統中識別任務的字串。
預定位置 指定工作的預定執行位置。 這個位置不一定等於路線規劃位置 車輛停靠站。
指出工作是開啟或關閉。
工作結果 指出工作是成功還是失敗。

工作資料模型

下圖說明 Task 資源的資料模型 與相關 DeliveryVehicle 資源的圖表一起顯示你可以 請查看這兩張圖表,瞭解這兩項資源之間的關係 請注意以下幾點:

  • 預定位置:車輛停靠站和工作都有預定地點。 彼此不同
    • 工作:預計位置代表駕駛人動作的位置 。例如將 15 件包裹配送至大型住宅 複雜要求,無法將郵件傳送至不同郵箱位置 相同的複雜做法
    • 車輛停靠站:預定位置是指前往 駕駛人完成工作時。舉例來說 公寓大樓入口處的車輛停靠站,以及 會手動寄送包裹,將包裹中的郵件分開。
  • 狀態:工作和車輛停靠站都擁有 state 欄位, 互相啟動。
    • 車輛停靠站的狀態反映了車輛的進度 是用於追蹤機群
    • 工作狀態會指出工作是否處於有效狀態。這個 會影響其他可完成工作的作業,例如設定 或是指派給車子
  • 工作結果:工作結果是資料模型中的重要欄位。 因為用來指出工作成功或失敗 任務狀態

  • ID

    • 將工作指派給車輛時,機群引擎會填入 「deliveryVehicleId」欄位。這個唯讀欄位代表 以便指派工作
    • 工作 ID 是系統中所有工作的專屬 ID,
    • 追蹤 ID 會辨識運送追蹤目的工作。

Tasks 資料模型

車輛資料模型

工作 ID

與 Fleet Engine 中的車輛 ID 類似,任務必須包含 ID 以便與系統中的其他任務有所區隔您參考及管理 按 ID 排序工作流程中的所有任務建立這類 ID 時,請使用 CreateTaskRequest 服務,並提供符合 滿足本節所述的需求。

這個字串接著是工作資源本身名稱的一部分, Task 物件的僅限輸出欄位。這類似於 Fleet Engine 建構車輛名稱資源如需參閱「資源命名」一節,請參閱 Fleet Engine 簡介

Task ID 規定
屬性 說明
獨特性 Fleet Engine 實作項目中的每個工作 ID 皆不得重複,以免混淆,並確保 ID 正確識別。
格式
  • 不得提供個人識別資訊 (PII) 或明文資料。
  • 有效的 Unicode 字串。
  • 長度上限為 64 個半形字元。
  • 排除下列字元: / : \ ? #
  • 根據 Unicode 正規化表單 C
工作 ID 範例
良好工作 ID 範例
  • 566c33d9-2a31-4b6a-9cd4-80ba1a0c643b
  • e4708eabcfa39bf2767c9546c9273f747b4626e8cc44e9630d50f6d129013d38
  • NTA1YTliYWNkYmViMTI0ZmMzMWFmOWY2NzNkM2Jk
不允許的工作 ID
  • 8/31/2019-20:48-46.70746,-130.10807,-85.17909,61.33680
  • JohnDoe-577b484da26f-Cupertino-SantaCruz
  • 4R0oXLToF"112 Summer Dr. East Hartford, CT06118"577b484da26f8a,

工作類型

Fleet Engine 支援多種工作類型,代表不同工作中的不同動作 交通運輸作業此處將說明這些角色及其瀏覽權限 以及帳單明細

工作類型 說明 運送追蹤顯示設定 已結算
提交工作 用於收下商品或為客戶完成工作。 消費者可查看並追蹤這項資訊。
Pickup Task 用於表示客戶取貨。您必須 每個取貨任務都有對應的運送工作 消費者可查看並追蹤這項資訊。
無法使用的工作 確認車輛不提供服務,例如駕駛人休息或消防車輛。 不會向消費者顯示。
已排定的停止工作 需要在特定地點停靠站的未傳送工作。排定停靠時間工作,應停止於特定地點處理每日停靠站工作,不受其他地點的送貨或上車地點影響。您也可以排定停靠站工作,從投遞箱到模型饋送車轉運或停靠站點/停靠站的工作。 消費者無法追蹤這項特定工作,但可以將其視為追蹤其他任務的一部分。

工作和歷程生命週期

本節詳細說明機群中的推送工作生命週期 Compute Engine工作生命週期與車輛旅程相連結 車輛必須前往停靠站,司機才能在其所在位置完成工作 規劃行程的位置

1. 建立工作

初次在 Fleet Engine 中建立工作時,您會設定多個欄位 自己的工作不會與停靠站建立關聯

工作屬性
屬性 說明
已設為「OPEN」
ID 如果使用運送追蹤功能,請設定工作和追蹤 ID 為消費者提供更好的服務
時間 工作的預定持續時間及其目標時間範圍。詳情請見 工作時間以瞭解詳細資訊。
預定位置 設定工作地點的確切地理座標 已完成

2. 工作指派

將工作指派給車輛時,這項作業會和車輛一起完成 停靠站。停靠站是經緯度座標,用來指出 在駕駛完成與停靠站相關的工作時,會經過車輛停車。 停靠站通常是存取點,例如載入座架或道路封閉 或 HTTP/HTTPS 位置

3. 進行中

工作狀態是「開啟」或「已關閉」。不過,一旦將工作指派給使用者 你可以透過車輛與車輛的連結追蹤車輛進度 以及車輛與工作目的地停靠站的位置 已完成

車輛從停靠站或開始導航後, 停靠站應變更為 ENROUTE。以便追蹤商品運送狀態 更新工作的接收者,提供剩餘停靠次數和預估的停靠點數量 抵達目的地後這也支援任何即時視覺化內容 運送追蹤或車隊追蹤

4. 抵達和工作結果

車輛抵達停靠站時,停靠站的狀態應設為 ARRIVED。與 ENROUTE 停靠狀態一樣,這不會影響 工作本身,但可同時支援消費者通知和 追蹤車隊營運人員使用的車隊追蹤功能。之後也能啟用 製作要用於推送作業的作業分析和報表 以及最佳化調整

車輛抵達停靠站後,系統就能處理其餘工作 導入新流程:

  • 將已完成的工作標示為已完成

    駕駛人將任務標示為完成後,系統就能從 但指派給此站的其他工作請靜止完成

  • 從車輛上移除整個停靠站

    駕駛人標記完所有工作,且車輛正在前往 下個停靠站,即可從車上移除整個停靠站。機群引擎 會自動關閉所有與已移除停靠點相關聯的工作。

關閉工作並不代表成功或失敗

關閉工作只會表示已取消將該項工作視為進行中。 如果工作處於 CLOSED 狀態,您可以將工作結果設為 SUCCEEDEDFAILED。你必須同時提供這項資訊,以便指明實際出貨結果 而且收費正確Fleet Engine 只會根據 建立後

工作結果設定後即無法變更

標記工作結果時,Fleet Engine 會自動填入工作結果 最後已知車輛位置的結果位置。不過,您可以 設定工作結果時間和工作結果位置,以及 Fleet Engine 不會覆寫這些欄位。

5. 其他工作情境

您使用 Fleet Engine 模型時,並非所有工作都能納入典型的流程。例如:

  • 取貨工作。需要傳回包裹的 pickup 工作 以便稍後處理,您必須建立對應的 delivery 工作,然後將計劃位置設為 Depot。 否則,取貨工作一般會採用與運送工作相同的流程。
  • 重新指派工作。你無法直接將工作重新指派給其他工作 。如要將工作移至另一輛車上,請關閉 原始工作,然後重新建立該工作,再指派新車。如果 您為已指派給 不同的車輛,Fleet Engine 會產生錯誤。
  • 刪除工作。和車輛一樣,Fleet Engine 會刪除 且在七天後更新如果您嘗試為含有 如果使用這個 ID,Fleet Engine 會傳回錯誤 在過去七天內發生的情況反過來說,只要將工作資料保留更長的時間 七天內,您必須自行實作這項功能,例如 重設 7 天時鐘的工作。

工作歷程分享

透過 Fleet Engine 共用工作歷程,您就能監控 透過兩種主要方式即時分享司機的旅程:

  • 分享消費者歷程,讓消費者瞭解 出貨訂單或要求服務訂單。
  • 運用機群追蹤功能追蹤及分析車隊營運人員的狀態 艦隊的成員

消費者歷程分享

如要將消費者歷程共用功能整合至業務,請設定歷程 進行分享SDK 可用來強化 視覺化的網站或行動應用程式體驗,讓消費者能監控 出貨資訊、預計抵達時間以及即時位置更新通知 。請參閱下列產品的「消費者歷程分享總覽」: 排定工作

消費者歷程共用 SDK 包含 JavaScript 地圖和資料元件 才能與 Fleet Engine 連線地圖是要取代 標準 google.maps.Map 物件。您的用戶端應進行您的用戶端驗證 並使用 Google Cloud 專案的「交付」消費者角色, 只傳回客戶專屬資訊Fleet Engine 篩選器並遮蓋所有內容 回應中的其他資訊舉例來說,在無法使用的任務期間 未與使用者分享任何位置資訊。

請在 Fleet Engine 中針對消費者歷程啟用下列設定 分享:

  • Tasks 使用 TaskTrackingViewConfig 屬性。選填。
  • 工作會使用追蹤 ID,程式庫需要用來找出相關 為消費者做準備

車隊追蹤

JavaScript 機群追蹤程式庫能以視覺化方式呈現 以近乎即時的方式掌握旗下車隊的車輛。程式庫會使用 Fleet Engine API:以視覺化方式呈現運送車輛 以及指派的任務與 JavaScript 消費者 SDK 一樣,其中包含 JavaScript 專門取代標準 google.maps.Map 的地圖元件 含有您用於連結 Fleet Engine 的資料元件

這個程式庫會在車輛抵達時立即顯示 建立了一套名為 Fleet Engine 的資料庫在這個實作過程中,請使用 Fleet Engine 服務的超級使用者 Cloud IAM 角色,並提供 Java Web Token 憑證附加資訊 存取交付車輛及相關工作

已排定的工作情境

本節說明多種工作情境,總結資訊 本指南稍後提供的內容目的在於協助你瞭解 以各種方式在 Fleet Engine 中製作交通運輸模型 會因業務類型而異。

含有追蹤功能的外送資訊

這個提交情境會顯示已排定的停止工作 兩地都從車站開始時派遣至庫房 旅程結束時再抵達庫房此外, 會顯示停靠站的兩個傳送工作,其中一個失敗了。使用這份草稿 因此能追蹤從資料庫到輸出量,並用來建立模型 當日開始和停止的時間無帳單 就會啟動排定的停止工作

自取外送

本情境示範瞭如何使用取貨模型 所需的對應傳送任務您將回傳庫設定為 交付進行帳單處理。

餵食器車

在這個案例中,有兩個提交項目,且預定的停靠站位於 餵食器車輛,目的在於讓貨車 再寄回去,有幾件包裹要出貨。個人中心 使用預定停靠站建立饋送車輛模型

工作時間

模擬工作時間,有助於有效規劃路線、預計到達時間及管理 交付期望Fleet Engine 提供兩項主要功能, 建議您按照本節所述的方式預測工作時間。

工作時間長度

工作持續時間會以 task_duration 欄位設定,此欄位是必填欄位 模擬駕駛人在停靠站完成任務的預估時間 或休息片刻對停靠站來說,這項規則包含所有必要活動 例如卸載套件並與 位收件者。這項資訊越具體越好 可針對歷程中的後續停靠站提供逼真的抵達時間和預計到達時間。 如需欄位詳細資料,請參閱通訊協定緩衝區說明文件中的 Duration

目標時間範圍

目標時間會定義工作的提議時間範圍,通常用於 向客戶傳達訊息或進行內部規劃。設定此指令碼時採用 target_time_window 欄位,包含開始時間和結束時間。 這未直接影響任何路線計算,但可用於 例如,通知使用者包裹的效期 或預計服務工作人員抵達的時間

工作屬性

Fleet Engine 中的任務屬性可讓您輕鬆篩選工作 符合某些特性的 ListTasks 要求。您也可以使用 自訂工作屬性,並透過 Cloud Logging 執行數據分析作業 傳達資訊,包括消費者歷程分享或車隊追蹤。 用途與車輛屬性類似 將重點放在推送作業上

限制與限制

  • 建立自訂屬性:Fleet Engine 限制自訂數量 每項工作可定義的屬性請與您的業務代表聯絡,以便: 要求提高這些限制
  • 篩選功能:雖然提供篩選的彈性、工作選擇 屬性不會取代核心工作資料欄位。用途 其他篩選功能。
  • 每個屬性都必須有專屬索引鍵
  • 請勿加入個人識別資訊或其他機密資訊 屬性中的資訊,因為使用者可能會看到這些資訊。
  • 資料驗證:確保自訂的資料類型和格式 屬性與 Fleet Engine 的要求相容。

後續步驟