Questo documento presuppone che tu sappia come creare e utilizzare le attività. Fornisce esempi specifici su come configurare le attività di spedizione nei seguenti modi:
Imposta la finestra temporale target per un'attività di spedizione: imposta la finestra temporale per il completamento dell'attività.
Personalizza la visibilità delle attività: personalizza la visibilità delle attività per la visualizzazione da parte dei clienti o degli operatori della flotta.
Per informazioni dettagliate sui campi delle attività di spedizione, consulta la pagina Creare attività di spedizione. Quando aggiorni informazioni aggiuntive sulle attività esistenti, devi includere anche l'identificatore pertinente dell'attività, oltre ai campi che aggiorni per le attività.
Imposta la finestra temporale target
La finestra temporale target è la TimeWindow durante la quale l'attività deve essere completata. Ad esempio, se comunichi una finestra temporale di consegna ai destinatari della consegna, puoi utilizzare la finestra temporale target dell'attività per acquisire questa finestra temporale e generare avvisi oppure puoi utilizzarla per analizzare il rendimento dei viaggi passati.
La finestra temporale target è costituita da un'ora di inizio e un'ora di fine e può essere impostata su qualsiasi tipo di attività. La finestra temporale target non influisce sul comportamento di routing.
Gli esempi seguenti mostrano come impostare la finestra temporale utilizzando la libreria
Java gRPC o come effettuare una richiesta HTTP REST a UpdateTask. Puoi anche impostare questo campo al momento della creazione dell'attività.
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
Per impostare una finestra temporale dell'attività utilizzando HTTP, chiama PATCH e utilizza updateMask per aggiornare il parametro targetTimeWindow:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Qui <id> è un identificatore univoco dell'attività. L'intestazione della richiesta deve contenere un campo Authorization con il valore Bearer <token>, dove <token> viene emesso dal server in base alle linee guida descritte in Ruoli dell'account di servizio e token web JSON.
# 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"
}
}
EOMPersonalizza la visibilità delle attività
Per impostazione predefinita, Fleet Engine fornisce visibilità sulle attività che possono essere visualizzate sia dai clienti che ricevono una spedizione sia dagli operatori della flotta che monitorano le spedizioni. Sono incluse informazioni come l'indicazione del numero di fermate prima di inviare a un cliente una notifica sullo stato di consegna del pacco. Puoi personalizzare queste informazioni per ogni attività in modo che si adattino meglio al tuo modello di business.
Questa sezione descrive le regole di visibilità per gli oggetti monitorati sulla mappa. Queste regole si applicano a due categorie di oggetti:
- Visibilità dell'indicatore di posizione
- Visibilità dei dati delle attività per le attività dei veicoli attivi, come polilinee e ETA
Regole di visibilità dell'indicatore di posizione
Fleet Engine mostra gli indicatori di posizione per la località di consegna della spedizione visualizzata sulla mappa, indipendentemente dallo stato della consegna.
Regole di visibilità dei dati delle attività
Questa sezione descrive le regole di visibilità predefinite che si applicano ai dati delle attività. Puoi personalizzare solo le attività dei veicoli attivi, il che significa che solo le attività di ritiro e riconsegna possono applicare regole di visibilità personalizzate.
Le seguenti attività non possono essere personalizzate:
- Arresti programmati
- Attività di indisponibilità
- Attività dei veicoli inattivi
Regole di visibilità delle attività di indisponibilità
Per impostazione predefinita, il veicolo non viene visualizzato sulla mappa se all'attività monitorata è assegnata almeno un'attività di indisponibilità. Ad esempio, se l'autista sta facendo una pausa o se il veicolo viene rifornito di carburante durante il percorso verso la spedizione monitorata. L'orario di arrivo stimato e il tempo di completamento stimato dell'attività sono ancora disponibili. Anche in questo caso, non puoi personalizzare questa regola.
Visibilità delle attività dei veicoli attivi
L'oggetto TaskTrackingInfo fornisce una serie di elementi di dati che puoi
rendere visibili utilizzando la libreria di monitoraggio delle spedizioni. Per impostazione predefinita, questi campi sono visibili quando l'attività viene assegnata al veicolo e quando il veicolo si trova a 5 fermate dall'attività. La visibilità termina quando l'attività viene completata o annullata.
Puoi personalizzare la configurazione della visibilità per ogni attività impostando
il TaskTrackingViewConfig su un'attività quando la crei o la aggiorni
in Fleet Engine. In questo modo vengono create regole per la disponibilità dei singoli elementi di dati.
La tabella seguente mostra i campi a cui puoi applicare le regole di visibilità.
| Campi delle attività dei veicoli per le regole di visibilità |
|---|
|
Questa tabella mostra le opzioni di visibilità disponibili per i campi elencati sopra.
| Opzioni di visibilità |
|---|
|
Regole di visibilità delle polilinee del percorso e della posizione del veicolo
Per un percorso monitorato, la visibilità delle polilinee del percorso è soggetta alla visibilità del veicolo. Se una polilinea del percorso è visibile su un percorso attivo in cui il veicolo non è visibile, la posizione del veicolo può comunque essere dedotta dalla fine della polilinea visibile. Pertanto, la visibilità della polilinea del percorso deve essere restrittiva o più restrittiva della visibilità del veicolo.
Segui queste regole per fornire una combinazione valida di visibilità delle polilinee del percorso e della posizione del veicolo.
Le polilinee del percorso e la posizione del veicolo specificano le stesse opzioni di visibilità
In questo scenario, sia la polilinea sia la posizione del veicolo impostano le stesse opzioni, tra cui:
- Numero di fermate rimanenti
- Durata fino all'orario di arrivo stimato
- Distanza di guida rimanente
Per rispettare le regole, il valore della visibilità delle polilinee del percorso deve essere minore o uguale a quello impostato per la visibilità del veicolo. In questo esempio, la soglia delle fermate rimanenti per la polilinea è impostata su 3, che è inferiore al valore di 5 specificato per il veicolo. Ciò significa che, quando il viaggio monitorato raggiunge 5 fermate dalla posizione dell'attività, il veicolo viene visualizzato, ma il percorso per quel veicolo non viene visualizzato finché il viaggio non si trova a 3 fermate.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
Le polilinee del percorso e la posizione del veicolo specificano opzioni di visibilità diverse
Quando le polilinee del percorso e la posizione del veicolo hanno opzioni di visibilità diverse, la posizione del veicolo è visibile solo quando vengono soddisfatte entrambe le opzioni di visibilità. Anche in questo caso, la visibilità della polilinea è soggetta alle regole di visibilità del veicolo:
- Sempre visibile: una polilinea del percorso deve utilizzare l'opzione di visibilità sempre visibile quando la posizione del veicolo fornisce anche la stessa opzione di visibilità sempre visibile.
- Mai visibile: una polilinea del percorso deve utilizzare un'opzione di visibilità mai visibile quando la posizione del veicolo utilizza un'opzione di visibilità mai visibile.
Di seguito è riportato un esempio:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
In questo esempio, la posizione del veicolo è visibile solo se il numero di fermate rimanenti è almeno 3 E la distanza di guida rimanente è almeno 3000 metri.
Esempio di personalizzazione della visibilità delle attività
Gli esempi seguenti mostrano come impostare un'attività con le seguenti regole di visibilità:
- Mostra le polilinee del percorso se il veicolo si trova entro 3 fermate.
- Mostra l'orario di arrivo stimato se la distanza di guida rimanente è inferiore a 5000 metri.
- Non mostrare mai il numero di fermate rimanenti.
- Ogni altro campo mantiene la visibilità predefinita di essere visualizzato quando il veicolo si trova a 5 fermate dall'attività.
Consulta TaskTrackingViewConfig per gRPC o 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)
.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
Per impostare la finestra di configurazione della visualizzazione del monitoraggio delle attività utilizzando HTTP, chiama PATCH e utilizza updateMask per aggiornare il parametro taskTrackingViewConfig:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig
Ad esempio:
# 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