Configura le attività

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 l'intervallo di tempo per il completamento dell'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à.

Impostare la finestra temporale 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 la libreria gRPC Java o come effettuare una richiesta REST HTTP 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 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 <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"
    }
  }
  EOM

Personalizza la visibilità delle attività

Per impostazione predefinita, Fleet Engine fornisce visibilità alle attività delle attività che possono essere visualizzate sia dai clienti che ricevono una spedizione sia dagli operatori del parco veicoli che monitorano le spedizioni. Sono incluse informazioni quali l'indicazione del numero di fermate prima di inviare al cliente una notifica sullo stato di consegna del 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à dei veicoli attivi, ad esempio polilinee e ETA

Regole di visibilità degli indicatori di posizione

Fleet Engine mostra gli indicatori di posizione per la località di consegna della spedizione riportata 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à potrebbero non essere personalizzabili:

  • Fermate programmate
  • Attività di indisponibilità
  • Attività relative ai veicoli non attivi

Regole di visibilità delle attività di non disponibilità

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 rendere visibili utilizzando la libreria di monitoraggio delle spedizioni. Per impostazione predefinita, questi campi sono visibili quando l'attività è assegnata al veicolo e quando il veicolo si trova a meno di 5 fermate dall'attività. La visibilità termina quando l'attività viene completata o cancellata.

Puoi personalizzare la configurazione della visibilità in base all'attività impostando 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à
  • Conteggio delle fermate 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 dei percorsi e regole di visibilità della posizione del veicolo

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, la visibilità del polilinea del percorso deve essere uguale o più restrittiva della visibilità del veicolo.

Segui queste regole per fornire una combinazione valida di polilinee del percorso/visibilità della posizione del veicolo.

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

In questo scenario, sia il polilinea sia la posizione del veicolo impostano le stesse opzioni, 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 inferiore 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, quando il tragitto monitorato si trova a 5 fermate dalla posizione della richiesta, viene visualizzato il veicolo, ma il percorso del veicolo non viene visualizzato finché il tragitto non è a 3 fermate di distanza.

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

I polilinei del percorso e la posizione del veicolo specificano le diverse opzioni di visibilità

Quando i polilinei 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 soddisfatte. 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: un polilinea del percorso deve utilizzare un'opzione di 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 il numero di fermate rimanenti è 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 percorsa in auto è inferiore a 5000 metri.
  • Non mostrare mai il numero di fermate rimanenti.
  • Tutti gli altri campi mantengono la visibilità predefinita di essere visualizzati quando il veicolo si trova a 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