이 문서에서는 Fleet Engine의 예약된 작업 서비스를 설명합니다. 이 가이드에서는 Fleet Engine이란 무엇인가요?를 읽고 필요한 특정 Fleet Engine 서비스 기능을 알고 있다고 가정합니다.
이 문서를 읽을 때는 다음 사항에 유의하세요.
- 작업을 만들고 차량 정류장과 연결하면 운전자가 작업을 완료할 수 있도록 작업과 차량이 멈출 것으로 예상되는 위치 간의 실제 연결을 모델링할 수 있습니다. 차량 소개를 읽고 Fleet Engine에서 차량이 작동하는 방식을 자세히 알아보세요.
- 예약 작업을 위한 Fleet Engine은 다음 리소스를 사용합니다.
Task
및DeliveryVehicle
. Fleet Engine은 gRPC 서비스와 REST 인터페이스를 모두 제공합니다.
예약된 태스크란 무엇인가요?
Fleet Engine의 예약 작업은 운송 작업의 광범위한 컨텍스트 내에서 차량을 사용하여 운전자가 완료할 개별 작업을 나타냅니다. 운전자의 구체적인 목표를 정의합니다. 예를 들면 다음과 같습니다.
- 거주지에 상품을 배송하기 위해
- 배송 물류창고로 반품할 상품을 수령하기 위해
- 고객에게 현장 서비스를 제공하기 위해 특정 위치에서 정차하기
- 차량 주유를 위해 예정된 정류장 만들기
태스크 요소
다음 이미지는 차량의 표준 예약된 여정에서 이러한 작업 요소를 보여줍니다.
기본 작업 필드
필드 | 설명 |
---|---|
유형 | 작업과 연결된 작업 유형을 정의합니다. |
태스크 ID | 시스템 내에서 작업을 고유하게 식별하는 문자열입니다. |
계획된 위치 | 태스크를 실행할 대상 위치를 지정합니다. 이 위치는 차량 정류장의 계획된 위치와 항상 일치하지는 않습니다. |
주 | 작업이 열려 있는지 닫혀 있는지 나타냅니다. |
태스크 결과 | 태스크가 성공했는지 또는 실패했는지 여부를 나타냅니다. |
작업을 위한 데이터 모델
다음 다이어그램은 Task
리소스의 데이터 모델과 연결된 DeliveryVehicle
리소스의 다이어그램을 보여줍니다. 두 다이어그램을 검토하여 두 리소스 간의 관계를 살펴볼 수 있습니다. 단, 다음 사항에 유의하세요.
- 계획된 위치: 차량 정류장과 작업 모두 서로 구별되는 계획된 위치가 있습니다.
- 작업의 경우 계획된 위치는 운전자 작업이 발생해야 하는 위치를 나타냅니다. 예를 들어 대규모 아파트 단지에 15개의 상품을 배송하려면 동일한 아파트 단지 내의 여러 우편함 위치에 배송해야 합니다.
- 차량 정류장의 경우 계획된 위치는 운전자가 작업을 완료하는 동안 차량이 정차하는 위치를 나타냅니다. 예를 들어 차량이 아파트 단지 입구에 정차하면 운전자가 단지 내 별도의 우편실에서 택배를 직접 배달합니다.
- 상태: 작업과 차량 정류장 모두 서로 다른 상태 필드가 있습니다.
- 차량 정차 상태는 정류장과 관련된 차량의 진행 상황을 나타내며 차량 추적 목적으로 사용됩니다.
- 작업의 상태는 작업이 활성 상태인지 여부를 나타냅니다. 이는 결과 설정 또는 차량에 할당과 같이 작업에서 실행할 다른 작업에 영향을 미칩니다.
작업 결과: 작업 결과는 작업 상태와 관계없이 작업의 성공 또는 실패를 나타내는 데 사용되므로 데이터 모델에서 중요한 필드입니다.
ID:
- 차량에 태스크를 할당하면 Fleet 엔진이
deliveryVehicleId
필드를 채웁니다. 이 읽기 전용 필드는 작업이 할당된 차량을 나타냅니다. - 태스크 ID는 시스템의 모든 태스크에 대한 고유 식별자입니다.
- 추적 ID는 배송 추적을 목적으로 작업을 식별합니다.
- 차량에 태스크를 할당하면 Fleet 엔진이
Tasks 데이터 모델
차량 데이터 모델
태스크 ID
Fleet Engine의 차량 ID와 마찬가지로 작업에는 시스템 내의 다른 작업과 구분하기 위해 각각 ID가 포함되어야 합니다. 워크플로의 모든 태스크를 ID로 참조하고 관리합니다. 이러한 ID는 CreateTaskRequest
서비스를 사용하고 이 섹션에 설명된 요구사항을 준수하는 ID 문자열을 제공하여 만듭니다.
그러면 이 문자열은 Task
객체의 출력 전용 필드인 작업 리소스 자체의 이름의 일부로 구성됩니다. 이는 Fleet Engine이 차량 이름 리소스를 구성하는 방식과 유사합니다. Fleet Engine 소개의 리소스 이름 지정 섹션을 참조하세요.
속성 | 설명 |
---|---|
고유성 | 각 태스크 ID는 혼동을 피하고 적절한 식별을 위해 Fleet Engine 구현 내에서 고유해야 합니다. |
형식 |
|
좋은 태스크 ID 예시 |
|
---|---|
허용되지 않는 태스크 ID |
|
할 일 유형
Fleet Engine은 운송 작업 내에서 다양한 작업을 나타내는 다양한 작업 유형을 지원합니다. 공개 상태 및 결제 세부정보와 함께 여기에 설명되어 있습니다.
할 일 유형 | 설명 | 배송 추적 가시성 | 청구됨 |
---|---|---|---|
전송 작업 | 고객을 위해 상품을 배송하거나 작업을 완료하는 데 사용합니다. | 소비자는 이를 확인하고 추적할 수 있습니다. | 예 |
수령 작업 | 고객으로부터 상품을 수령했음을 나타내는 데 사용합니다. 모든 수령 작업에 상응하는 배송 작업이 있어야 합니다. | 소비자는 이를 확인하고 추적할 수 있습니다. | 아니요 |
이용 불가 작업 | 운전자가 휴식을 취하거나 차량에 주유하는 경우와 같이 차량을 서비스를 제공할 수 없는 것으로 식별합니다. | 소비자에게는 표시되지 않습니다. | 아니요 |
예약된 중지 작업 | 특정 위치에서 중단해야 하는 미게재 작업입니다. 동일한 위치에서 다른 배송 또는 수령과 관계없이 특정 위치에서 매일 정기적으로 진행되는 수거 중지 지점에 정기 중지 작업을 사용합니다. 또한 무인함에서 수거하기 위해 정기적인 정류장 작업을 만들거나 서비스 센터 및 서비스 지점에서의 피더 차량 전송 또는 정류를 모델링할 수 있습니다. | 소비자는 이 특정 작업을 추적할 수 없지만 다른 작업을 추적하는 과정의 일부로 볼 수 있습니다. | 아니요 |
태스크 및 여정 수명 주기
이 섹션에서는 Fleet Engine 내의 전송 작업 수명 주기에 대한 세부정보를 제공합니다. 운전자가 계획된 위치에서 작업을 완료하려면 차량이 정류장으로 이동해야 하므로 태스크 수명 주기는 차량 이동 경로와 연결됩니다.
1. 할 일 만들기
Fleet Engine에서 태스크를 처음 만들 때는 정류장과 연결하는 것과 별개로 태스크의 다양한 필드를 설정합니다.
속성 | 설명 |
---|---|
주 | '열기'로 설정 |
ID | 소비자에게 배송 추적을 사용하는 경우 작업 및 추적 ID를 설정합니다. |
시간 | 작업의 계획된 기간 및 타겟 시간 간격입니다. 자세한 내용은 작업 타이밍을 참고하세요. |
예정된 위치 | 작업이 완료될 정확한 지리적 좌표를 설정합니다. |
2. 할 일 할당
차량에 할 일을 할당할 때는 차량 정류장과 함께 할당합니다. 정류장은 운전자가 정류장과 관련된 작업을 완료하는 동안 차량이 주차되는 위치를 나타내는 위도/경도 좌표입니다. 정류장은 일반적으로 하역장이나 도로 스냅 위치와 같은 액세스 포인트입니다.
3. 진행 중
작업의 상태는 '미결' 또는 '종료됨'입니다. 하지만 작업이 차량에 할당되면 차량과의 연결 및 차량이 작업을 완료할 정류장과 관련된 위치를 통해 진행 상황을 추적할 수 있습니다.
차량이 정류장을 출발하거나 내비게이션을 시작하면 정류장 상태가 ENROUTE
로 변경됩니다. 이러한 방식으로 소비자 배송 추적은 남은 정류장 수와 예상 도착 시간이 포함된 작업을 위해 수신자를 업데이트할 수 있습니다. 또한 소비자 배송 추적 또는 차량 추적을 위한 실시간 시각화가 지원됩니다.
4. 도착 및 작업 결과
차량이 정류장에 도착하면 정류장의 상태는 ARRIVED
로 설정되어야 합니다. ENROUTE
중지 상태와 마찬가지로 이 상태는 작업 자체의 상태에 영향을 미치지 않지만, 소비자 알림과 차량 운영자가 사용하는 차량 추적을 위한 실시간 보고를 모두 지원합니다. 또한 나중에 게재 최적화에 사용할 수 있는 작업에 관한 분석 및 보고를 지원합니다.
차량이 정류장에 도착하면 시스템은 다음 접근 방식 중 하나를 사용하여 나머지 작업 여정을 처리할 수 있습니다.
완료된 작업은 종료합니다.
운전자가 작업을 완료로 표시하면 시스템은 작업을 정차에서 삭제할 수 있지만, 다른 작업이 할당된 상태로 중지 상태를 유지할 수 있습니다.
차량에서 전체 정류장을 삭제합니다.
운전자가 모든 작업을 완료로 표시하고 차량이 다음 정류장으로 이동하면 차량에서 전체 정류장을 삭제할 수 있습니다. Fleet Engine은 삭제된 중지와 관련된 모든 작업을 자동으로 종료합니다.
할 일을 닫는다고 해서 성공 또는 실패를 나타내는 것은 아닙니다.
작업을 종료하는 것은 해당 작업이 더 이상 진행 중이라고 간주되지 않는다는 의미일 뿐입니다.
CLOSED
상태의 태스크의 경우 결과를 SUCCEEDED
또는 FAILED
로 설정합니다. 이는 배송 추적 및 적절한 청구의 실제 결과를 나타내는 데 필요합니다. Fleet Engine은 상태가 SUCCEEDED인 배포 태스크만 요금을 청구합니다.
작업 결과를 설정하면 변경할 수 없습니다.
작업 결과를 표시할 때 Fleet Engine은 작업 결과 위치를 마지막으로 알려진 차량 위치로 자동으로 채웁니다. 하지만 작업 결과 시간과 작업 결과 위치는 설정된 후 수정할 수 있으며 Fleet Engine은 이러한 필드를 재정의하지 않습니다.
5. 기타 작업 시나리오
Fleet Engine에서 모델링하는 모든 작업이 일반적인 여정 흐름에 적합한 것은 아닙니다. 예를 들면 다음과 같습니다.
- 수령 작업 나중에 처리하기 위해 창고로 반품할 택배에 대한 pickup 작업이 있는 경우 계획된 위치를 창고로 설정하여 해당 택배에 해당하는 delivery 작업을 만들어야 합니다. 그렇지 않으면 수령 작업은 일반적으로 배송 작업과 동일한 흐름을 따릅니다.
- 할 일 재할당. 작업을 다른 차량에 직접 재할당할 수 없습니다. 대신 한 차량에서 다른 차량으로 작업을 이동하려면 원래 작업을 닫고 새 차량에 할당하기 전에 작업을 다시 만듭니다. 이미 다른 차량에 할당된 태스크의 태스크 순서를 업데이트하면 Fleet Engine에서 오류가 발생합니다.
- 태스크 삭제 차량과 마찬가지로 Fleet Engine은 7일 후 업데이트되지 않은 태스크를 삭제합니다. 이전에 종료된 작업의 작업 ID를 재사용하려고 하면 해당 ID가 지난 7일 이내에 사용된 경우 Fleet Engine에서 오류를 반환합니다. 반대로 작업 데이터를 7일보다 오래 보관하려면 이 기능을 직접 구현해야 합니다(예: 7일 시계를 재설정하는 예약된 작업을 통해).
할 일 진행 상황 공유
Fleet Engine에서는 작업 진행 상황을 실시간으로 모니터링하고 다음 두 가지 방법으로 운전자의 여정을 공유할 수 있습니다.
- 소비자가 배송 주문 또는 요청한 서비스 주문의 상태를 알 수 있는 소비자 경험
- 차량 관리자가 차량의 상태를 추적하고 분석할 수 있는 차량 추적
소비자 경험
작업 진행 상황을 공유하려면 JavaScript 소비자 SDK를 사용하여 소비자 환경을 설정합니다. 이 SDK를 사용하면 시각적 웹 또는 모바일 앱 환경을 개선하여 소비자가 배송 차량의 도착 예정 시간 및 실시간 위치 업데이트와 함께 배송 상태를 모니터링할 수 있습니다. 소비자 SDK 예약 작업 개요를 참고하세요.
소비자 SDK에는 Fleet Engine과 연결할 JavaScript 지도 및 데이터 구성요소 구성요소가 포함되어 있습니다. 맵은 표준 google.maps.Map
객체를 대체하는 삽입형입니다. 클라이언트는 최종 사용자를 인증하고 Google Cloud 프로젝트의 전송 소비자 역할을 사용하여 고객별 정보만 반환해야 합니다. Fleet Engine은 응답에서 다른 모든 정보를 필터링하고 삭제합니다. 예를 들어 사용 불가 작업이 진행되는 동안에는 최종 사용자와 위치 정보가 공유되지 않습니다.
Fleet Engine에서 다음 설정을 사용 설정하여 태스크 진행률을 소비자와 공유합니다.
- 태스크는
TaskTrackingViewConfig
속성을 사용합니다. 선택사항입니다. - 태스크는 추적 ID를 사용합니다. 라이브러리는 이 ID를 사용하여 소비자와 관련된 태스크를 식별해야 합니다.
플릿 추적
JavaScript Fleet 추적 라이브러리를 사용하면 차량 Fleet의 차량 위치를 거의 실시간으로 시각화할 수 있습니다. 이 라이브러리는 Fleet Engine API를 사용하여 배송 차량과 할당된 작업을 시각화합니다. JavaScript 소비자 SDK와 마찬가지로, Fleet Engine에 연결하는 데 사용하는 데이터 구성요소가 포함된 표준 google.maps.Map
항목을 대체하는 JavaScript 맵 구성요소가 포함되어 있습니다.
이 라이브러리는 Fleet Engine에서 생성되는 즉시 배송 차량의 공개 상태를 표시합니다. 이 구현에서는 Fleet Engine 서비스 수퍼유저 Cloud IAM 역할을 사용하고 배송 차량 및 관련 작업에 대한 액세스를 위한 Java 웹 토큰 소유권 주장을 제공합니다.
예약된 작업 시나리오
이 섹션에서는 가이드의 이 시점에서 제공된 정보를 요약하는 다양한 작업 시나리오를 보여줍니다. 이 문서는 비즈니스에 따라 Fleet Engine에서 운송 작업을 모델링할 수 있는 다양한 방법을 이해하는 데 도움이 됩니다.
추적 가능한 배송
이 배송 시나리오는 이동 시작 시 창고에서 출발할 때와 이동 종료 시 창고에 도착할 때 모두 창고에 할당된 예약된 정류장 작업을 보여줍니다. 또한 정류장에 대한 전송 작업 2개가 표시되며 그중 하나는 실패했습니다. 이 할당을 사용하여 창고를 드나드는 추적을 사용 설정하고 하루의 시작 및 중지 시간을 모델링합니다. 예약된 중지 작업에는 요금이 청구되지 않습니다.
창고 배송 시 매장 수령
이 시나리오에서는 해당하는 필수 전송 작업을 사용하여 수령을 모델링하는 방법을 보여줍니다. 결제 목적으로 창고 반품을 배송으로 설정합니다.
피더 차량
이 시나리오에서는 급식차의 중간에 예정된 정류장이 있는 배송 두 개를 보여주며, 이 두 차량의 목적은 배송 차량이 다수의 택배를 보관하고 창고로 돌아갈 수 있도록 하는 것입니다. 정류장이 예약된 피더 차량을 모델링할 수도 있습니다.
태스크 타이밍
작업 시간을 모델링하면 효과적인 경로 계획, 도착예정시간, 배송 기대치를 관리하는 데 도움이 됩니다. Fleet Engine은 이 섹션에 설명된 대로 작업 시간을 모델링하고 예측하는 두 가지 주요 기능을 제공합니다.
태스크 기간
작업 기간은 task_duration
필드로 설정됩니다. 이 필드는 정차 시 작업을 완료하거나 휴식을 취하는 데 예상되는 시간을 모델링하는 필수 필드입니다. 정류장의 경우 여기에는 패키지 내리기, 수신자와의 상호작용 등 정류장에 도착한 후에 필요한 모든 활동이 포함됩니다. 이 정보가 구체적일수록 Fleet Engine은 경로의 후속 정류장에 대한 실제 도착 시간과 예상 도착 시간을 더 정확하게 제공할 수 있습니다.
필드 세부정보는 프로토콜 버퍼 문서의 Duration을 참고하세요.
목표 기간
목표 시간은 일반적으로 고객과의 커뮤니케이션 또는 내부 계획 목적으로 사용되는 태스크에 대해 제안된 시간 범위를 정의합니다. 시작 시간과 종료 시간으로 구성된 target_time_window
필드로 설정합니다.
경로 계산에 직접적인 영향을 미치지는 않지만 소비자에게 택배 배송 기간 또는 예약된 서비스 워커의 도착 시간을 알리는 등의 상황에 사용할 수 있습니다.
태스크 속성
Fleet Engine의 작업 속성은 ListTasks
요청을 사용할 때 특정 특성에 따라 작업을 필터링하는 편리한 방법을 제공합니다. 또한 소비자에 대한 정보 전달 또는 Fleet 추적과 함께 Cloud Logging으로 분석을 위해 커스텀 태스크 속성을 사용할 수 있습니다. 용도는 차량 속성과 유사합니다. 운송 작업에 관해 보다 집중된 관점을 만드는 데 사용합니다.
제한사항
- 커스텀 속성 생성: Fleet Engine은 태스크당 정의할 수 있는 커스텀 속성의 수를 제한합니다. 영업 담당자에게 문의하여 한도 상향을 요청하세요.
- 필터링 기능: 작업 속성은 필터링 유연성을 제공하지만 핵심 작업 데이터 필드를 대체하지는 않습니다. 구체적인 요구사항에 따라 추가 필터링에 이 측정기준을 사용하세요.
- 각 속성에는 고유 키가 있어야 합니다.
- 사용자에게 표시될 수 있으므로 속성 값에 개인 식별 정보 또는 기타 민감한 정보를 포함하지 마세요.
- 데이터 유효성 검사: 맞춤 속성의 데이터 유형과 형식이 Fleet Engine의 요구사항과 호환되는지 확인합니다.