タスクを検索する

このドキュメントでは、Google Chat で 関連付けられます。Fleet Engine では、次の 2 つの方法でタスクを検索できます。

  • タスクを検索する: 次の ID でタスクを検索できます。

    • タスク ID: フル機能のアクセス権があるフリート オペレーターなどのユーザーが使用 タスクデータのビューを表示します。
    • トラッキング ID: クライアント ソフトウェアで限定的な情報提供のために使用されます。 通知します。

    タスク ID とタスクの違いを必ず理解してください。 トラッキング ID です。これらは同じではありません。詳しくは、基本的なタスクのフィールドをご覧ください。 スケジュール済みタスクガイド

  • タスクの一覧表示: 信頼できるユーザーのみを対象とした、タスクへの幅広いアクセス権です。

で確認できます。

タスクを検索する

このセクションでは、タスク ID またはトラッキング ID でタスクを検索する方法について説明します。機能 次の要件を満たす必要があります。

  • トラッキング ID によるルックアップは、公開設定のルールに準拠している必要があります。 追跡対象オブジェクトの公開設定ルールをご覧ください。

  • 可能な限り範囲の狭いトークンを使用して、セキュリティ リスクを制限します。たとえば、 Delivery Consumer Token を使用すると、すべての呼び出しが そのエンドユーザーに関連する情報のみを表示します。 荷物を受け取れます。Fleet Engine は、組織内のすべての情報を できます。トークンの詳細については、JSON Web Token をご覧ください。

タスク ID でタスクを検索

サーバー環境からタスク ID でタスクを検索するには、gRPC を使用します。 REST。次の例は、Java gRPC ライブラリまたは GetTask に対する REST リクエスト。

gRPC

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

 DeliveryServiceBlockingStub deliveryService =
   DeliveryServiceGrpc.newBlockingStub(channel);

 // Task request
 String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
 GetTaskRequest getTaskRequest = GetTaskRequest.newBuilder()  // No need for the header
     .setName(taskName)
     .build();

 try {
   Task task = deliveryService.getTask(getTaskRequest);
 } catch (StatusRuntimeException e) {
   Status s = e.getStatus();
   switch (s.getCode()) {
      case NOT_FOUND:
        break;

      case PERMISSION_DENIED:
        break;
   }
   return;
 }

REST

GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<taskId>

  • &lt;id&gt; は、タスクの一意の識別子です。
  • &lt;taskId&gt; は、検索するタスクの ID です。
  • リクエスト ヘッダーには、次の値を含む Authorization フィールドが含まれている必要があります。 Bearer <token><token> はサーバーによって発行されます。 サービス アカウントのロールで説明されているガイドラインに従う。 JSON Web Token
  • リクエストの本文は空にする必要があります。
  • ルックアップが成功した場合、レスポンスの本文にはタスク エンティティが含まれます。

curl コマンドの例:

    # Set JWT, PROJECT_ID, and TASK_ID in the local environment
    curl -H "Authorization: Bearer ${JWT}" \
      "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}"

トラッキング ID でタスクを検索

次の例は、配送トラッキング ID でタスクを検索する方法を示しています。 GetTaskTrackingInfo への gRPC または HTTP REST 呼び出しを使用します。

gRPC

static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";

DeliveryServiceBlockingStub deliveryService =
  DeliveryServiceGrpc.newBlockingStub(channel);

// Tasks request
String parent = "providers/" + PROJECT_ID;
GetTaskTrackingInfoRequest getTaskTrackingInfoRequest = GetTaskTrackingInfoRequest.newBuilder()  // No need for the header
    .setParent(parent)
    .setTrackingId(TRACKING_ID)
    .build();

try {
  TaskTrackingInfo taskTrackingInfo = deliveryService.getTaskTrackingInfo(getTaskTrackingInfoRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
     case NOT_FOUND:
       break;

     case PERMISSION_DENIED:
       break;
  }
  return;
}

REST

GET https://fleetengine.googleapis.com/v1/providers/<project_id>/taskTrackingInfo/<tracking_id>

  • &lt;tracking_id&gt; は、タスクに関連付けられたトラッキング ID です。

  • リクエスト ヘッダーには、次の値を含む Authorization フィールドが含まれている必要があります。 Bearer <token><token> が正しいサービスを含む) 付与します。サービス アカウントのロールをご覧ください。

  • ルックアップが成功した場合、レスポンスの本文には taskTrackingInfo エンティティを追加します。

curl コマンドの例:

# Set JWT, PROJECT_ID, and TRACKING_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
  "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/taskTrackingInfo/${TRACKING_ID}"

タスクの一覧表示

タスクを一覧表示するには、タスクへの幅広いアクセス権をリクエストします。タスクの一覧表示は、 できます。Delivery Fleet Reader または Delivery Admin の認証トークンを使用する 呼び出すときに使用します。詳細については、サービス アカウントのロールをご覧ください。 情報です。

リストのページ分割

タスクリストはページ分けされています。ページサイズは、タスクの一覧表示リクエストで指定できます。 ページサイズが指定されている場合、返されるタスクの数は次の値以下になります サイズを超えることはありません。ページサイズが存在しない場合は、妥当なデフォルト 使用されます。リクエストされたページサイズが内部最大値を超えている場合、 内部の最大値が使用されます

タスクリストには、結果の次のページを読み取るためのトークンを含めることができます。宛先 次のページを取得する場合は、同じリクエストをページトークンとともに再発行します。 返されたページトークンが空の場合は、それ以上のタスクを実行できません。 使用します。

タスクを一覧表示するときのフィールド

Fleet Engine は、タスクを一覧表示するときに次のフィールドを削除します。

  • VehicleStop.planned_location
  • VehicleStop.state
  • VehicleStop.TaskInfo.taskId

Google API 改善案に基づいて、次のフィールド形式を使用します。

フィールド タイプ 形式
タイムスタンプ RFC-3339 task_outcome_time = 2022-03-01T11:30:00-08:00
所要時間 後に s が続く秒数 task_duration = 120s
列挙型 文字列 state = CLOSED AND type = PICKUP
場所 point.latitudepoint.longitude planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0

リストされたタスクをフィルタする

リストされたタスクは、ほとんどのタスク プロパティでフィルタできます。フィルタクエリの構文については AIP-160 をご覧ください。フィルタクエリが指定されていない場合は、すべてのタスクが一覧表示されます。

次の表に、フィルタリングに使用できる有効なタスク プロパティを示します。

リストをフィルタリングするためのタスク プロパティ
  • type
  • attributes
  • tracking_id
  • delivery_vehicle_id
  • state
  • planned_location
  • task_duration
  • task_duration_outcome
  • task_outcome
  • task_outcome_location
  • task_outcome_time

フィルタクエリ演算子の完全なリストについては、AIP-160 をご覧ください。

タスクの例を一覧表示する

次の例は、deliveryVehicleId と a.x のタスクを一覧表示する方法を示しています。 Java gRPC ライブラリを使用しても、HTTP REST 呼び出しを使用しても、 ListTasks

成功を示すレスポンスは空でもかまいません。空のレスポンスは、 指定された deliveryVehicleId に関連付けられたタスク。

gRPC

 static final String PROJECT_ID = "my-delivery-co-gcp-project";
 static final String TRACKING_ID = "TID-7449w087464x5";

 DeliveryServiceBlockingStub deliveryService =
   DeliveryServiceGrpc.newBlockingStub(channel);

 // Tasks request
 String parent = "providers/" + PROJECT_ID;
 ListTasksRequest listTasksRequest = ListTasksRequest.newBuilder()  // No need for the header
     .setParent(parent)
     .setFilter("delivery_vehicle_id = 123 AND attributes.foo = true")
     .build();

 try {
   ListTasksResponse listTasksResponse = deliveryService.listTasks(listTasksRequest);
 } catch (StatusRuntimeException e) {
   Status s = e.getStatus();
   switch (s.getCode()) {
      case NOT_FOUND:
        break;

      case PERMISSION_DENIED:
        break;
   }
   return;
 }

REST

GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks

リストされたタスクにフィルタを適用するには、「フィルタ」を含めます。値として URL エスケープされたフィルタクエリを含む URL パラメータ。

リクエスト ヘッダーには、次の値を含む Authorization フィールドが含まれている必要があります。 Bearer <token><token> が正しいサービスを含む) 付与します。サービス アカウントのロールをご覧ください。

ルックアップが成功すると、レスポンスの本文は次の構造になります。

    // JSON representation
    {
      "tasks": [
        {
          object (Task)
        }
      ],
      "nextPageToken": string,
      "totalSize": integer
    }

curl コマンドの例:

 # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
 curl -H "Authorization: Bearer ${JWT}" \
   "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?filter=state%20%3D%20OPEN%20AND%20delivery_vehicle_id%20%3D%20${VEHICLE_ID}"

次のステップ