Configura le attività

In questo documento si presuppone che tu sappia come creare e utilizzare le attività. Offre esempi specifici su come configurare le attività di spedizione nei seguenti modi:

  • Imposta la finestra temporale di destinazione per un'attività di spedizione: imposta la finestra temporale. per completare l'attività.

  • Personalizza la visibilità delle attività: personalizza la visibilità delle attività per mostrare ai clienti o agli operatori del parco risorse.

Consulta Creare attività di spedizione per maggiori dettagli sui campi relativi alle attività di spedizione. Quando aggiorni informazioni aggiuntive sulle attività esistenti, devi anche dovrai includere l'identificatore pertinente per l'attività, oltre ai campi che aggiornato per le attività.

Imposta l'intervallo di tempo target

La finestra temporale di destinazione è la TimeWindow durante la quale deve essere eseguita l'attività completata. Ad esempio, se comunichi un intervallo di tempo per la consegna destinatari, puoi utilizzare la finestra temporale di destinazione dell'attività per acquisire questa finestra temporale e generare avvisi. In alternativa, puoi utilizzare questa informazione per analizzare il rendimento dei viaggi passati.

La finestra temporale di destinazione è composta da un'ora di inizio e un'ora di fine e può essere impostata per qualsiasi tipo di attività. L'intervallo di tempo di destinazione non influisce sul routing comportamento degli utenti.

Gli esempi riportati di seguito mostrano come impostare la finestra temporale utilizzando il metodo Java gRPC di Google Cloud o come effettuare una richiesta REST HTTP a UpdateTask. Puoi e 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 per le 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

In questo caso, &lt;id&gt; è un identificatore univoco dell'attività. L'intestazione della richiesta deve contenere un campo Authorization con il valore Bearer <token>, dove &lt;token&gt; viene emesso dal tuo server in base alle linee guida descritti 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"
    }
  }
  EOM

Personalizza la visibilità delle attività

Per impostazione predefinita, Fleet Engine fornisce visibilità sulle attività delle attività che possono quindi Essere mostrati sia ai clienti che ricevono una spedizione sia agli operatori della flotta monitorare le spedizioni. Ciò include informazioni come l'indicazione del numero di si ferma prima di inviare al cliente una notifica relativa alla consegna di un pacco . Puoi personalizzare queste informazioni in base all'attività il tuo modello di business.

In questa sezione vengono descritte le regole di visibilità per gli oggetti tracciati sulla mappa. Queste regole si applicano a due categorie di oggetti:

  • Visibilità degli indicatori di posizione
  • Visibilità dei dati delle attività per le attività attive del veicolo, ad esempio polilinee e orario di arrivo stimato

Regole di visibilità degli indicatori di posizione

Fleet Engine mostra gli indicatori di posizione per la località di consegna della spedizione visualizzato sulla mappa, indipendentemente dallo stato dell'invio.

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à attive del veicolo, il che significa che le attività di ritiro e consegna possono applicare regole di visibilità personalizzate.

Le seguenti attività non possono essere personalizzate:

  • Fermate programmate
  • Attività di indisponibilità
  • Attività del veicolo inattive

Regole di visibilità delle attività di indisponibilità

Per impostazione predefinita, il veicolo non viene visualizzato sulla mappa se è presente almeno uno l'attività di indisponibilità è assegnata all'attività monitorata. Ad esempio, se il conducente sta facendo una pausa o il veicolo sta facendo rifornimento lungo il percorso verso la spedizione tracciata. L'ora di arrivo stimata e l'ora di completamento stimata dell'attività. sono ancora disponibili. Anche in questo caso, non puoi personalizzare questa regola.

Visibilità delle attività attive del veicolo

L'oggetto TaskTrackingInfo fornisce una serie di elementi di dati che puoi possono essere resi visibili utilizzando la libreria di tracciamento della spedizione. Per impostazione predefinita, questi campi sono visibili quando l'attività è assegnata al veicolo e quando quest'ultimo è entro 5 fermate dall'attività. La visibilità termina quando l'attività viene completata o annullato.

Puoi personalizzare la configurazione della visibilità in base alle singole attività impostando L'TaskTrackingViewConfig su un'attività durante la creazione o l'aggiornamento dell'attività all'interno di Fleet Engine. Questo crea regole per i singoli elementi dei dati disponibili.

La tabella seguente mostra i campi a cui puoi applicare le regole di visibilità.

Campi delle attività dei veicoli per le regole di visibilità
  • Polilinee di percorso
  • Tempo stimato all'arrivo
  • Tempo stimato per il completamento dell'attività
  • Distanza di guida rimanente dall'attività
  • Numero di interruzioni rimanenti
  • Posizione del veicolo

Questa tabella mostra le opzioni di visibilità disponibili per i campi sopra elencati.

Opzioni di visibilità
  • Numero di interruzioni rimanenti
  • Durata fino all'ora di arrivo prevista
  • Distanza di guida rimanente
  • Sempre visibile
  • Mai visibile

Polilinee e regole di visibilità della posizione dei veicoli

Per un percorso tracciato, la visibilità delle polilinee del percorso è soggetta alla visibilità del veicolo. Se una polilinea del percorso è visibile su un percorso attivo Se il veicolo non è visibile, la sua posizione può comunque essere dedotta dalla fine della polilinea visibile. Pertanto, esegui la route della polilinea la visibilità deve essere restrittiva o più restrittiva rispetto a quella del veicolo.

Segui queste regole per fornire polilinee di percorso o posizione del veicolo valide di visibilità.

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 sono impostate nello stesso modo tra cui:

  • numero di interruzioni rimanenti
  • durata fino all'orario di arrivo stimato
  • distanza di guida rimanente

Per rispettare le regole, il valore per la visibilità delle polilinee della route deve essere minore uguale o superiore a il valore impostato per la visibilità del veicolo. In questo esempio, la soglia di interruzione rimanente per la polilinea è impostata su 3, che è minore di il valore 5 specificato per il veicolo. Ciò significa che, del percorso raggiunge 5 fermate dal luogo dell'attività, il veicolo appare, il percorso per tale veicolo non apparirà fino a quando non ci saranno 3 fermate di viaggio.

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

Le polilinee del percorso e la posizione del veicolo specificano le diverse opzioni di visibilità

Quando le polilinee del percorso e la posizione del veicolo hanno opzioni di visibilità diverse, la posizione del veicolo è visibile solo quando entrambe le opzioni di visibilità sono soddisfatto. Anche in questo caso, la visibilità della polilinea è soggetta alle relative regole del veicolo:

  • Sempre visibile: una polilinea del percorso deve usare l'opzione sempre visibile. di visibilità quando la posizione del veicolo offre la stessa sempre visibile.
  • Mai visibile: una polilinea del percorso deve avere una visibilità mai visibile. quando la posizione del veicolo utilizza un'opzione di visibilità mai visibile.

Ecco un esempio:

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

In questo esempio, la posizione del veicolo è visibile solo se la fermata rimanente il numero totale è di almeno 3 E la distanza di guida rimanente è di almeno 3000 metri.

Esempio di personalizzazione della visibilità delle attività

I seguenti esempi mostrano come impostare un'attività con: regole di visibilità:

  • Mostra le polilinee del percorso se il veicolo si trova a meno di 3 fermate.
  • Mostra l'orario di arrivo stimato se la distanza rimanente in auto è inferiore a 5000 metri.
  • Non mostrare mai il numero di fermate rimanenti.
  • Ogni altro campo mantiene la visibilità predefinita, ovvero quando viene visualizzato il veicolo si trova entro 5 fermate dall'attività.

Vedi 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

Passaggi successivi