할 일 찾기

이 문서에서는 설정할 수 있습니다 Fleet Engine은 작업을 찾는 두 가지 방법을 지원합니다.

  • 할 일 조회: 다음 ID로 할 일을 조회할 수 있습니다.

    • 작업 ID: 전체 작업에 액세스할 수 있는 차량 운영자와 같은 사용자가 사용합니다. 볼 수 있습니다.
    • 추적 ID: 클라이언트 소프트웨어에서 제한된 정보를 제공하기 위해 사용합니다. 최종 사용자에게 배송됩니다.

    작업 ID와 작업의 차이점을 이해해야 합니다. 추적 ID가 있는지 확인합니다. 둘은 다릅니다. 예약된 작업 가이드의 기본 작업 필드를 참고하세요.

  • 작업 나열: 신뢰할 수 있는 사용자만 사용할 수 있는 작업에 대한 광범위한 액세스 권한입니다.

를 통해 개인정보처리방침을 정의할 수 있습니다.

할 일 찾기

이 섹션에서는 작업 ID 또는 추적 ID로 작업을 조회하는 방법을 설명합니다. 요구사항은 다음과 같습니다.

  • 추적 ID를 통한 조회는 추적된 객체의 공개 상태 규칙에 명시된 공개 상태 규칙을 준수해야 합니다.

  • 가능한 한 가장 좁은 토큰을 사용하여 보안 위험을 제한합니다. 예를 들어 전달 소비자 토큰을 사용하는 경우 모든 호출은 배송업체나 의미합니다. Fleet Engine에서는 확인할 수 있습니다 토큰에 대한 자세한 내용은 JSON 웹 토큰을 참조하세요.

작업 ID로 작업 조회

gRPC 또는 REST를 사용하여 서버 환경에서 작업 ID로 작업을 조회할 수 있습니다. 다음 예에서는 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;는 작업의 고유 식별자입니다.
  • <taskId>는 조회할 작업의 ID입니다.
  • 요청 헤더에는 값이 Bearer <token>Authorization 필드가 포함되어야 합니다. 여기서 <token>서비스 계정 역할JSON 웹 토큰에 설명된 가이드라인에 따라 서버에서 발급합니다.
  • 요청 본문은 비어 있어야 합니다.
  • 조회가 성공하면 응답 본문에 할 일 항목 엔터티가 포함됩니다.

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로 작업을 조회하는 방법을 보여줍니다. gRPC 또는 HTTP REST 호출을 사용하여 GetTaskTrackingInfo에 보냅니다.

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}"

태스크 표시

할 일 목록을 표시하려면 할 일에 대한 광범위한 액세스 권한이 필요합니다. 태스크 나열은 신뢰할 수 있는 사용자 전송 Fleet 리더 또는 전송 관리자 인증 토큰 사용 할 수 있습니다. 자세한 내용은 서비스 계정 역할을 참고하세요.

목록 페이지로 나누기

할 일 목록은 페이지로 나뉩니다. 페이지 크기는 list tasks 요청에서 지정할 수 있습니다. 페이지 크기가 지정된 경우 반환되는 작업의 수는 이보다 크지 않습니다. 더 큰 크기일 수 있습니다. 페이지 크기가 없는 경우 적절한 기본값 사용됩니다. 요청된 페이지 크기가 내부 최댓값을 초과하면 내부 최댓값이 사용됩니다.

작업 목록에는 결과의 다음 페이지를 읽기 위한 토큰이 포함될 수 있습니다. 받는사람 다음 페이지를 가져올 때 페이지 토큰과 함께 동일한 요청을 다시 발행합니다. 반환된 페이지 토큰이 비어 있으면 더 이상 검색할 태스크가 없습니다.

할 일 나열 시 필드

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을 참고하세요.

태스크 예시 나열

다음 예는 deliveryVehicleIdJava 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 이스케이프된 필터 쿼리를 값으로 포함하는 'filter' 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}"

다음 단계