Dokumen ini menjelaskan cara menemukan informasi tugas dari server atau browser. Fleet Engine mendukung dua cara untuk menemukan tugas:
Mencari tugas: Anda dapat mencari tugas berdasarkan ID berikut:
- ID Tugas: digunakan oleh pengguna seperti operator armada yang memiliki akses ke tampilan lengkap data tugas.
- ID pelacakan: digunakan oleh software klien Anda untuk memberikan informasi terbatas kepada pengguna akhir, seperti kapan paket diperkirakan akan tiba di rumah mereka.
Pastikan Anda memahami perbedaan antara ID tugas dan ID pelacakan tugas. Padahal, dua hal tersebut tidaklah sama. Lihat Kolom tugas dasar di Panduan tugas terjadwal.
Daftar tugas: akses luas ke tugas, hanya ditujukan untuk pengguna tepercaya.
Mencari tugas
Bagian ini menjelaskan cara mencari tugas berdasarkan ID tugas atau ID pelacakan. Fitur ini memiliki persyaratan berikut:
Penelusuran menurut ID pelacakan harus mematuhi aturan visibilitas yang dinyatakan dalam Aturan visibilitas untuk objek yang dilacak.
Gunakan token yang paling sempit untuk membatasi risiko keamanan. Misalnya, jika Anda menggunakan Token Konsumen Pengiriman, setiap panggilan hanya akan menampilkan informasi yang relevan dengan pengguna akhir tersebut, seperti pengirim atau penerima pengiriman. Fleet Engine menyamarkan semua informasi lainnya dalam respons. Untuk informasi selengkapnya tentang token, lihat Token Web JSON.
Mencari tugas menurut ID tugas
Anda dapat mencari tugas berdasarkan ID tugasnya dari lingkungan server menggunakan gRPC atau REST. Contoh berikut menunjukkan cara menggunakan library gRPC Java atau permintaan REST ke GetTask.
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>
- <id> adalah ID unik untuk tugas.
- <taskId> adalah ID tugas yang akan dicari.
- Header permintaan harus berisi kolom Authorization dengan nilai Bearer <token>, dengan <token> dikeluarkan oleh server Anda sesuai dengan panduan yang dijelaskan dalam Peran akun layanan dan JSON Web token.
- Isi permintaan harus kosong.
- Jika pencarian berhasil, isi respons akan berisi entity tugas.
Contoh perintah 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}"
Mencari tugas menurut ID pelacakan
Contoh berikut menunjukkan cara mencari tugas berdasarkan ID pelacakan pengirimannya menggunakan gRPC atau panggilan REST HTTP ke 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>
<tracking_id> adalah ID pelacakan yang terkait dengan tugas.
Header permintaan harus berisi kolom Authorization dengan nilai Bearer <token>, dengan <token> memiliki peran akun layanan yang benar. Lihat Peran akun layanan.
Jika pencarian berhasil, isi respons akan berisi entitas taskTrackingInfo.
Contoh perintah 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}"
Membuat daftar tugas
Mencantumkan tugas meminta akses yang luas ke tugas. Tugas listingan hanya ditujukan untuk pengguna tepercaya. Gunakan token autentikasi Delivery Fleet Reader atau Delivery Admin saat membuat permintaan tugas daftar. Lihat Peran akun layanan untuk mengetahui informasi selengkapnya.
Memberi nomor halaman pada daftar
Daftar tugas diberi penomoran halaman. Ukuran halaman dapat ditentukan dalam permintaan tugas daftar. Jika ukuran halaman ditentukan, jumlah tugas yang ditampilkan tidak lebih besar dari ukuran halaman yang ditentukan. Jika tidak ada ukuran halaman, ukuran default yang wajar akan digunakan. Jika ukuran halaman yang diminta melebihi nilai maksimum internal, nilai maksimum internal akan digunakan.
Daftar tugas dapat menyertakan token untuk membaca halaman hasil berikutnya. Untuk mengambil halaman berikutnya, terbitkan kembali permintaan yang sama beserta token halaman. Jika token halaman yang ditampilkan kosong, tidak ada lagi tugas yang tersedia untuk diambil.
Kolom saat mencantumkan tugas
Fleet Engine menyamarkan kolom berikut saat mencantumkan tugas:
VehicleStop.planned_location
VehicleStop.state
VehicleStop.TaskInfo.taskId
Gunakan format kolom berikut berdasarkan Proposal Peningkatan Google API:
Jenis Kolom | Format | Contoh |
---|---|---|
Stempel waktu | RFC-3339 | task_outcome_time = 2022-03-01T11:30:00-08:00 |
Durasi | Jumlah detik diikuti dengan s |
task_duration = 120s |
Enum | String | state = CLOSED AND type = PICKUP |
Lokasi | point.latitude dan point.longitude |
planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0 |
Memfilter tugas yang tercantum
Anda dapat memfilter tugas yang tercantum berdasarkan sebagian besar properti tugas. Untuk sintaksis kueri filter, lihat AIP-160. Jika tidak ada kueri filter yang ditentukan, semua tugas akan dicantumkan.
Tabel berikut menampilkan properti tugas yang valid yang dapat Anda gunakan untuk pemfilteran:
Properti tugas untuk memfilter daftar | |
---|---|
|
|
Lihat AIP-160 untuk mengetahui daftar lengkap operator kueri filter.
Contoh tugas daftar
Contoh berikut menunjukkan cara mencantumkan tugas untuk deliveryVehicleId
dan
atribut tugas, baik dengan library gRPC Java maupun dengan panggilan REST HTTP ke
ListTasks
.
Respons yang berhasil masih dapat kosong. Respons kosong menunjukkan tidak ada
tugas yang terkait dengan deliveryVehicleId
yang disediakan.
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
Untuk menerapkan filter ke tugas yang tercantum, sertakan parameter URL "filter" dengan kueri filter yang di-escape URL sebagai nilainya.
Header permintaan harus berisi kolom Authorization dengan nilai Bearer <token>, dengan <token> memiliki peran akun layanan yang benar. Lihat Peran akun layanan.
Pencarian yang berhasil akan memberikan isi respons dengan struktur berikut:
// JSON representation
{
"tasks": [
{
object (Task)
}
],
"nextPageToken": string,
"totalSize": integer
}
Contoh perintah 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}"