태스크 구성

이 문서에서는 사용자가 작업을 만들고 사용하는 방법을 이해하고 있다고 가정합니다. 이 API는 다음은 배송 작업을 구성하는 방법에 관한 구체적인 예입니다.

  • 배송 작업의 목표 기간 설정: 기간을 설정합니다. 작업을 완료할 수 있습니다

  • 할 일 공개 상태 맞춤설정: 다음에 대한 작업 활동의 공개 상태를 맞춤설정합니다. 고객에게 직접 표시할 수 있습니다

배송 작업 필드에 관한 자세한 내용은 배송 작업 만들기를 참고하세요. 기존 작업에 대한 추가 정보를 업데이트할 때 입력한 입력란 외에 작업과 관련된 식별자를 포함해야 합니다. 작업을 업데이트할 수 있습니다

타겟 기간 설정

타겟 기간은 태스크가 실행되어야 하는 TimeWindow입니다. 완료되었습니다. 예를 들어 배송에 배송 기간을 전달하는 경우 할 일 대상 기간을 사용하여 이 기간을 캡처할 수 있습니다. 알림을 생성하거나 이를 사용하여 지난 이동 실적을 분석할 수 있습니다.

타겟 기간은 시작 시간과 종료 시간으로 구성되며 설정 가능 할 수 있습니다 목표 기간은 라우팅에 영향을 미치지 않습니다. 있습니다.

다음 예에서는 Java gRPC를 사용하여 기간을 설정하는 방법을 보여줍니다. 라이브러리 또는 UpdateTask에 대한 HTTP 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)
    .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

HTTP를 사용하여 태스크 기간을 설정하려면 PATCH를 호출하고 updateMask를 사용하여 targetTimeWindow 매개변수를 업데이트합니다.

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow

여기서 &lt;id&gt;는 작업의 고유 식별자입니다. 요청 헤더 Bearer <token> 값이 있는 Authorization 필드를 포함해야 합니다. 여기서 &lt;token&gt;은(는) 가이드라인에 따라 서버에서 발급됩니다. 서비스 계정 역할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

태스크 공개 상태 맞춤설정

기본적으로 Fleet Engine은 이후 작업을 실행할 수 있는 작업 활동에 대한 화물을 수령하는 고객과 운송업체 운송업체 모두에게 표시됩니다. 배송 추적 여기에는 광고가 게재될 수 있는 광고의 수와 고객에게 상품 배송에 대한 알림을 보내기 전에 중단합니다. 있습니다. 이 정보를 작업별로 맞춤설정할 수 있습니다. 비즈니스 모델

이 섹션에서는 지도에서 추적된 객체에 대한 공개 상태 규칙을 설명합니다. 이러한 규칙은 두 가지 객체 카테고리에 적용됩니다.

  • 위치 마커 공개 상태
  • 다중선, 도착예정시간 등 활성 차량 작업에 대한 작업 데이터 공개 상태
를 통해 개인정보처리방침을 정의할 수 있습니다.

위치 마커 공개 상태 규칙

Fleet Engine에 배송 위치의 위치 마커 표시 배송 상태와 관계없이 지도에 표시할 수 있습니다.

태스크 데이터 공개 상태 규칙

이 섹션에서는 작업 데이터에 적용되는 기본 공개 상태 규칙을 설명합니다. 활성 차량 작업만 맞춤설정할 수 있습니다. 즉, 승차 및 하차 작업은 맞춤설정된 공개 상태 규칙을 적용할 수 있습니다.

다음 작업은 맞춤설정할 수 없습니다.

  • 예약된 정류장
  • 사용할 수 없는 작업
  • 비활성 차량 작업

비가용성 작업 공개 규칙

기본적으로 차량이 하나 이상일 경우 지도에 표시되지 않습니다. 비가용성 작업은 추적 중인 작업에 할당됩니다. 예를 들어 운전자가 휴식 중이거나 배송 추적 중임 예상 도착 시간 및 예상 작업 완료 시간 계속 사용할 수 있습니다. 이 규칙은 맞춤설정할 수 없습니다.

활성 차량 작업 공개 상태

TaskTrackingInfo 객체는 개발자가 배송 추적 라이브러리를 사용하여 표시할 수 있습니다. 기본적으로 이 필드는 작업이 차량에 할당되고 차량이 다음에 있을 때 표시됩니다. 5회 이내에 도착할 수 있습니다 작업이 완료되거나 취소되었습니다.

다음을 설정하여 작업별로 공개 상태 구성을 맞춤설정할 수 있습니다. 작업을 만들거나 업데이트할 때 작업의 TaskTrackingViewConfig 내부 IP 주소를 통해 액세스할 수 있습니다 이렇게 하면 개별 데이터 요소에 대해 있습니다.

다음 표는 공개 상태 규칙을 적용할 수 있는 필드를 보여줍니다.

공개 상태 규칙의 차량 작업 필드
  • 다중선 경로
  • 예상 도착 시간
  • 예상 작업 완료 시간
  • 작업 위치까지 남은 운전 거리
  • 남은 정류장 수
  • 차량 위치

다음 표에는 위에 나열된 입력란에 사용할 수 있는 공개 옵션이 나와 있습니다.

공개 상태 옵션
  • 남은 정류장 수
  • 예상 도착 시간까지 남은 시간
  • 남은 운전 거리
  • 항상 표시
  • 표시 안함

경로 다중선 및 차량 위치 공개 상태 규칙

추적된 경로의 경우 경로 폴리라인의 가시성은 차량의 가시성이 확보됩니다. 활성 경로에 경로 다중선이 표시되는 경우 차량이 표시되지 않는 경우에도 차량 위치는 도형을 사용하여 볼 수 있습니다. 따라서 폴리라인을 공개 상태는 차량 공개 상태보다 제한적이거나 더 제한적이어야 합니다.

올바른 경로 다중선 / 차량 위치를 제공하려면 다음 규칙을 따르세요. 합니다.

경로 다중선과 차량 위치는 동일한 공개 상태 옵션을 지정

이 시나리오에서는 다중선과 차량 위치가 동일하게 설정됩니다. 다음과 같은 옵션이 있습니다.

  • 남은 정류장 수
  • 도착예정시간까지 남은 시간
  • 남은 운전 거리

규칙을 준수하려면 경로 다중선 가시성의 값이 더 작아야 합니다. 이보다 크거나 같음 차량 공개 상태에 설정된 값이어야 합니다. 이 예에서 폴리라인의 나머지 중지 임계값은 3으로 설정되며, 차량에 지정된 5 값입니다. 즉, 추적 코드가 작업 위치에서 다섯 정류장 거리에 도달하면 차량이 나타나지만 차량의 경로는 3정거장에서 출발할 때까지 표시되지 않습니다.

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

경로 다중선과 차량 위치에 따라 다른 공개 상태 옵션이 지정됨

경로 다중선과 차량 위치에 서로 다른 공개 상태 옵션이 있는 경우 차량 위치는 공개 상태 옵션을 둘 다 설정한 경우에만 표시됩니다. 고객 만족도를 높일 수 있습니다 다시 말하지만, 다중선 공개 상태에는 공개 상태 규칙이 적용됩니다. 다음을 수행합니다.

  • 항상 표시: 경로 다중선은 항상 표시 또한 차량 위치에서 항상 동일한 공개 상태를 표시 공개 상태 옵션을 사용할 수 있습니다.
  • 표시 안함: 경로 다중선은 표시 안함 가시성을 사용해야 합니다. 차량 위치가 표시하지 않음 공개 상태 옵션을 사용하는 경우의 옵션입니다.

예시는 다음과 같습니다.

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

이 예에서 차량 위치는 나머지 정류장이 수가 3 이상이고 남은 운전 거리가 3,000 이상입니다. 미터

작업 공개 상태 맞춤설정의 예

다음 예는 다음을 사용하여 작업을 설정하는 방법을 보여줍니다. 공개 상태 규칙:

  • 차량이 3개 정류장 내에 있는 경우 경로 다중선을 표시합니다.
  • 남은 운전 거리가 5,000m 미만인 경우 도착예정시간을 표시합니다.
  • 나머지 정류장 수를 표시하지 않습니다.
  • 서로 다른 필드는 차량이 작업에서 5정류장 이내에 있다는 것을 의미합니다.

gRPC 또는 REST의 경우 TaskTrackingViewConfig를 참고하세요.

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

HTTP를 사용하여 작업 추적 보기 구성 창을 설정하려면 PATCH를 호출합니다. updateMask를 사용하여 taskTrackingViewConfig 매개변수를 업데이트합니다.

PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig

예를 들면 다음과 같습니다.

# 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

다음 단계