이 문서에서는 Fleet Engine 소개 섹션의 예약된 작업도 이 섹션에서 예약된 작업이란 무엇인가요?라고 입력합니다.
예약된 작업을 위한 Fleet Engine은 다음과 같이 다양하고 광범위한 작업을 제공합니다.
- 배송 작업: 상품 수령 및 배송 등 운전 작업에 사용합니다. 수 있습니다.
- 비가용성 작업: 운전자가 부재 중일 때 사용합니다. 해야 할 수도 있습니다.
- 예약 중지 작업: 보관함 또는 고객이 운전 중이 아닌 작업에 사용 위치(예: 건물에 들어가는 시간, 배달 지점의 위치)
이 문서에서는 서버에서 배송 작업을 만드는 방법을 설명합니다. 기타 태스크 유형에 관해 자세히 알아보려면 다른 태스크 유형 만들기를 참고하세요.
배송 작업 필드
이 섹션에서는 수령 및 배달에 필요한 작업 필드를 설명합니다. 할 수 있습니다
필수 작업 입력란
Fleet Engine에서 만드는 모든 태스크에 대해 필수
선택 필드 중 하나를 제공할 수도 있습니다. Fleet 엔진
다른 모든 필드를 무시하고 작업 생성 시 예외가 발생합니다.
요청은 할당된 deliveryVehicleId
를 제공합니다. 차량에 작업을 할당하려면
UpdateDeliveryVehicleRequest
를 사용합니다. 자세한 내용은
할 일 업데이트
필드 | 값 |
---|---|
type |
다음 중 하나인 작업 유형과 일치하는 유형으로 설정합니다.
|
state |
State.OPEN |
task_id |
고유한 작업 ID입니다. 배송의 운송장 번호가 아니어야 합니다. 만약 시스템에 작업 ID가 없는 경우 범용 고유 ID를 생성할 수 있습니다. 사용됩니다. 자세한 내용은 다음을 참고하세요. 태스크 ID. |
tracking_id |
PICKUP 또는 DELIVERY 태스크만 해당:
배송 추적에 사용하는 번호 또는 식별자입니다. 금지사항
배송 이외의 작업에 이 필드를 제공합니다. |
plannedLocation |
PICKUP , DELIVERY 또는
SCHEDULED_STOP 작업만 해당:
태스크가 완료되는 위치입니다. 다음에는 필요하지 않음:
작업 UNAVAILABLE 개 |
taskDuration |
작업 완료를 위해 추가할 것으로 예상되는 시간입니다. 예를 들어 주차하거나 핸드오프 장소까지 걸어갈 수 있습니다. |
배송 작업 필드(선택사항)
필드 | 값 |
---|---|
targetTimeWindow |
작업을 완료해야 하는 기간입니다. 이 입력란 라우팅 동작에 영향을 미치지 않습니다. |
task_tracking_view_config |
PICKUP 또는 DELIVERY 태스크만 해당:
어떤 데이터 요소를 지정할지 지정하는 작업 추적 구성입니다.
최종 사용자에게 공개되는 콘텐츠 |
attributes |
커스텀 작업 속성 목록입니다. 각 속성에는 고유 키가 있어야 합니다. |
배송 수령 작업 만들기
Fleet Engine을 사용하여 화물을 수령하는 운전자의 활동을 추적하려면
배송 수령 작업을 만듭니다 여기에는 작업 유형 속성을
PICKUP
다음 예는 그랜드에서 배송 수령을 보여줍니다.
인도네시아 이스트 몰입니다.
다음 예시는 다음을 사용하여 배송 수령 작업을 만드는 방법을 보여줍니다.
Java gRPC 라이브러리 또는
CreateTask
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String parent = "providers/" + PROJECT_ID;
Task task = Task.newBuilder()
.setType(Task.Type.PICKUP)
.setState(Task.State.OPEN)
.setTrackingId("my-tracking-id")
.setPlannedLocation( // Grand Indonesia East Mall
LocationInfo.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setTaskDuration(
Duration.newBuilder().setSeconds(2 * 60))
.setTargetTimeWindow(
TimeWindow.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
.setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
.addAttributes(TaskAttribute.newBuilder().setKey("foo").setStringValue("value"))
.addAttributes(TaskAttribute.newBuilder().setKey("bar").setNumberValue(10))
.addAttributes(TaskAttribute.newBuilder().setKey("baz").setBoolValue(false))
.build();
// Task request
CreateTaskRequest createTaskRequest =
CreateTaskRequest.newBuilder() // No need for the header
.setParent(parent) // Avoid using auto-incrementing IDs for the taskId
.setTaskId("task-8241890") // Task ID assigned by the Provider
.setTask(task) // Initial state
.build();
// Error handling
// If Fleet Engine does not have a task with that ID and the credentials of the
// requestor pass, the service creates the task successfully.
try {
Task createdTask = deliveryService.createTask(createTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
서버 환경에서 배송 수령 작업을 만들려면 HTTP REST를 만드세요.
CreateTask
호출:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks?taskId=<id>
<id>는 작업의 고유 식별자입니다.
요청 헤더에는 값이 있는 Authorization 필드가 있어야 합니다. Bearer <token>, 여기서 <token>은 서비스 계정 역할 및 JSON 웹 토큰을 사용합니다.
요청 본문에는 적절한 필드와 함께 Task
항목이 포함되어야 합니다.
배송 작업 필드에 설명되어 있습니다.
curl
명령어 예시:
# Set $JWT, $PROJECT_ID, $TRACKING_ID, and $TASK_ID in the local
# environment
curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?taskId=${TASK_ID}" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"type": "PICKUP",
"state": "OPEN",
"trackingId": "${TRACKING_ID}",
"plannedLocation": {
"point": {
"latitude": -6.195139,
"longitude": 106.820826
}
},
"taskDuration": "90s",
"targetTimeWindow": {
"startTime": "2023-03-29T21:00:00Z",
"endTime": "2023-03-29T23:00:00Z"
}
}
EOM
배송 배송 작업 만들기
Fleet Engine을 사용하여 화물을 배달하는 운전기사의 활동을 추적하려면
배송 배송 작업을 만들어 보겠습니다 여기에는 작업 유형 속성
DELIVERY
님에게 전송됩니다. 다음 예는 그랜드로 배송을
인도네시아 이스트 몰입니다.
다음 예시는 다음을 사용하여 배송 수령 작업을 만드는 방법을 보여줍니다.
Java gRPC 라이브러리 또는
CreateTask
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String parent = "providers/" + PROJECT_ID;
Task task = Task.newBuilder()
.setType(Task.Type.DELIVERY)
.setState(Task.State.OPEN)
.setTrackingId("my-tracking-id")
.setPlannedLocation( // Grand Indonesia East Mall
LocationInfo.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setTaskDuration(
Duration.newBuilder().setSeconds(2 * 60))
.setTargetTimeWindow(
TimeWindow.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
.setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
.addAttributes(TaskAttribute.newBuilder().setKey("foo").setStringValue("value"))
.addAttributes(TaskAttribute.newBuilder().setKey("bar").setNumberValue(10))
.addAttributes(TaskAttribute.newBuilder().setKey("baz").setBoolValue(false))
.build();
// Task request
CreateTaskRequest createTaskRequest =
CreateTaskRequest.newBuilder() // No need for the header
.setParent(parent) // Avoid using auto-incrementing IDs for the taskId
.setTaskId("task-8241890") // Task ID assigned by the Provider
.setTask(task) // Initial state
.build();
// Error handling
// If Fleet Engine does not have task with that ID and the credentials of the
// requestor pass, the service creates the task successfully.
try {
Task createdTask = deliveryService.createTask(createTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
서버 환경에서 배송 수령 작업을 만들려면 HTTP REST를 만드세요.
CreateTask
호출:
POST https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks?taskId=<id>
<id>는 작업의 고유 식별자입니다.
요청 헤더에는 값이 있는 Authorization 필드가 있어야 합니다. Bearer <token>, 여기서 <token>은 서비스 계정 역할 및 JSON 웹 토큰을 사용합니다.
요청 본문에는 Task
항목이 포함되어야 합니다.
curl
명령어 예시:
# Set $JWT, $PROJECT_ID, $TRACKING_ID, and $TASK_ID in the local
# environment
curl -X POST "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?taskId=${TASK_ID}" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"type": "DELIVERY",
"state": "OPEN",
"trackingId": "${TRACKING_ID}",
"plannedLocation": {
"point": {
"latitude": -6.195139,
"longitude": 106.820826
}
},
"taskDuration": "90s",
"targetTimeWindow": {
"startTime": "2023-03-29T21:00:00Z",
"endTime": "2023-03-29T23:00:00Z"
}
}
EOM
```