Tugas terjadwal

Dokumen ini menjelaskan layanan tugas terjadwal di Fleet Engine. Anda dianggap telah membaca Apa itu Fleet Engine? dan mengetahui kemampuan layanan Fleet Engine tertentu yang Anda perlukan.

Saat Anda membaca dokumentasi ini, perhatikan hal berikut:

  • Anda membuat tugas dan mengaitkannya dengan perhentian kendaraan sebagai cara untuk membuat model hubungan dunia nyata antara tugas dan lokasi tempat kendaraan diharapkan berhenti sehingga pengemudi dapat menyelesaikan tugas tersebut. Baca Pengantar kendaraan untuk lebih memahami cara kerja kendaraan di Fleet Engine.
  • Fleet Engine untuk tugas terjadwal menggunakan resource berikut: Task dan DeliveryVehicle. Fleet Engine menyediakan layanan gRPC dan antarmuka REST:
    • Task: gRPC dan REST
    • DeliveryVehicle: gRPC dan REST
    • Untuk mempermudah, panduan ini menggunakan contoh gRPC.

Apa yang dimaksud dengan tugas terjadwal?

Tugas terjadwal di Fleet Engine merepresentasikan tindakan individual yang akan diselesaikan oleh pengemudi yang menggunakan kendaraan dalam konteks operasi transportasi yang lebih luas. Ini menentukan tujuan spesifik untuk driver. Contoh:

  • untuk mengirim barang ke suatu tempat tinggal
  • untuk mengambil paket yang akan dikembalikan ke depot pengiriman
  • berhenti di suatu lokasi untuk menyediakan layanan di tempat bagi pelanggan
  • untuk membuat perhentian terjadwal untuk mengisi bahan bakar kendaraan

Elemen tugas

Gambar berikut mengilustrasikan elemen tugas ini dalam perjalanan terjadwal standar untuk kendaraan.

Kolom tugas dasar

Kolom Deskripsi
Jenis Menentukan jenis tindakan yang terkait dengan tugas.
ID Tugas String yang secara unik mengidentifikasi tugas dalam sistem.
Lokasi yang direncanakan Menentukan lokasi yang diinginkan tempat tugas harus dilakukan. Lokasi ini tidak selalu sama dengan lokasi yang direncanakan untuk perhentian kendaraan.
Negara Bagian Menunjukkan apakah tugas terbuka atau tertutup.
Hasil Tugas Menunjukkan apakah tugas berhasil atau gagal.

Model data untuk tugas

Diagram berikut mengilustrasikan model data resource Task bersama diagram untuk resource DeliveryVehicle terkait. Anda dapat meninjau kedua diagram untuk mempelajari hubungan antara kedua resource tersebut, dengan memperhatikan hal-hal berikut:

  • Lokasi yang direncanakan: Kendaraan berhenti dan tugas memiliki lokasi yang direncanakan, berbeda satu sama lain.
    • Untuk tugas, lokasi yang direncanakan menunjukkan tempat tindakan pengemudi harus terjadi. Misalnya, 15 pengiriman paket ke kompleks perumahan yang besar memerlukan pengiriman ke lokasi ruang surat yang berbeda dalam kompleks yang sama.
    • Untuk perhentian kendaraan, lokasi yang direncanakan menunjukkan perhentian kendaraan saat pengemudi menyelesaikan tugas. Misalnya, kendaraan berhenti di pintu masuk kompleks apartemen, dan pengemudi mengirimkan paket secara manual ke ruang email terpisah dalam kompleks.
  • Status: Tugas dan perhentian kendaraan memiliki kolom status, yang berbeda satu sama lain.
    • Status untuk perhentian kendaraan mencerminkan progres kendaraan sehubungan dengan perhentian, yang digunakan untuk tujuan pelacakan armada.
    • Status untuk tugas menunjukkan apakah tugas aktif atau tidak. Hal ini memengaruhi operasi lain yang harus dilakukan pada tugas, seperti menetapkan hasilnya atau menetapkannya ke kendaraan.
  • Hasil tugas: Hasil tugas adalah kolom yang penting dalam model data, karena digunakan untuk menunjukkan keberhasilan atau kegagalan tugas, terlepas dari status tugas.

  • ID:

    • Saat Anda menetapkan tugas ke kendaraan, mesin Fleet akan mengisi kolom deliveryVehicleId. Kolom hanya baca ini menunjukkan kendaraan tempat tugas diberikan.
    • ID tugas adalah ID unik di semua tugas dalam sistem Anda.
    • ID pelacakan mengidentifikasi tugas untuk tujuan pelacakan pengiriman.

Model data Tasks

Model data kendaraan

ID Tugas

Serupa dengan ID kendaraan di Fleet Engine, setiap tugas harus berisi ID untuk membedakan tugas tersebut dari tugas lain dalam sistem. Anda mereferensikan dan mengelola semua tugas dalam alur kerja berdasarkan ID-nya. Anda membuat ID ini dengan menggunakan layanan CreateTaskRequest dan dengan memberikan string ID yang sesuai dengan persyaratan yang dijelaskan di bagian ini.

String ini kemudian terdiri dari bagian nama resource tugas itu sendiri, yaitu kolom khusus output pada objek Task. Hal ini setara dengan cara Fleet Engine membuat resource nama kendaraan. Lihat bagian Penamaan resource di Pengantar Fleet Engine.

Persyaratan ID Tugas
Properti Deskripsi
Keunikan Setiap ID tugas harus unik dalam implementasi Fleet Engine Anda untuk menghindari kebingungan dan memastikan identifikasi yang tepat.
Format
  • Tidak ada informasi identitas pribadi (PII) atau data teks biasa.
  • String Unicode yang valid.
  • Maksimum 64 karakter.
  • Kecualikan karakter berikut: / : \ ? #
  • Dinormalisasi sesuai dengan Unicode Normalization Form C.
Contoh ID Tugas
Contoh ID tugas yang baik
  • 566c33d9-2a31-4b6a-9cd4-80ba1a0c643b
  • e4708eabcfa39bf2767c9546c9273f747b4626e8cc44e9630d50f6d129013d38
  • NTA1YTliYWNkYmViMTI0ZmMzMWFmOWY2NzNkM2Jk
ID tugas yang tidak diizinkan
  • 8/31/2019-20:48-46.70746,-130.10807,-85.17909,61.33680
  • JohnDoe-577b484da26f-Cupertino-SantaCruz
  • 4R0oXLToF"112 Summer Dr. East Hartford, CT06118"577b484da26f8a

Jenis tugas

Fleet Engine mendukung berbagai jenis tugas untuk mewakili berbagai tindakan dalam operasi transportasi. Hal tersebut dijelaskan di sini bersama dengan detail visibilitas dan penagihannya.

Jenis Tugas Deskripsi Visibilitas Pelacakan Pengiriman Ditagih
Tugas Pengiriman Gunakan untuk mengantarkan item atau menyelesaikan tugas untuk pelanggan. Konsumen dapat melihat dan melacaknya. Ya
Tugas Pengambilan Gunakan untuk menunjukkan pengambilan barang dari pelanggan. Anda harus memiliki tugas pengiriman yang sesuai untuk setiap tugas pengambilan. Konsumen dapat melihat dan melacaknya. Tidak
Tugas Ketidaktersediaan Mengidentifikasi kendaraan sebagai tidak tersedia untuk diservis, seperti saat pengemudi beristirahat atau mengisi bahan bakar kendaraan. Tidak terlihat oleh konsumen. Tidak
Tugas Perhentian Terjadwal Tugas non-pengiriman yang memerlukan perhentian di lokasi tertentu. Gunakan tugas perhentian terjadwal untuk perhentian pengambilan terjadwal harian di lokasi tertentu, terlepas dari pengiriman atau pengambilan lainnya di lokasi yang sama. Anda juga dapat membuat tugas perhentian terjadwal untuk pengumpulan dari kotak dropbox atau untuk membuat model transfer atau perhentian kendaraan feeder di pusat layanan dan titik layanan. Konsumen tidak dapat melacak tugas spesifik ini, tetapi dapat melihatnya sebagai bagian dari pelacakan tugas lain. Tidak

Siklus proses tugas dan perjalanan

Bagian ini memberikan detail tentang siklus proses tugas pengiriman dalam Fleet Engine. Siklus proses tugas terhubung dengan perjalanan kendaraan karena kendaraan harus melakukan perjalanan ke perhentian agar pengemudi dapat menyelesaikan tugas di lokasi yang direncanakan.

1. Pembuatan tugas

Saat pertama kali membuat tugas di Fleet Engine, Anda menetapkan berbagai kolom untuk tugas tersebut tanpa mengaitkannya dengan perhentian.

Properti tugas
Properti Deskripsi
Negara Bagian Setel ke BUKA
ID Tetapkan ID tugas dan pelacakan jika Anda menggunakan pelacakan pengiriman untuk konsumen.
Waktu Durasi yang direncanakan untuk tugas dan periode waktu targetnya. Lihat Waktu tugas untuk detailnya.
Lokasi yang direncanakan Tetapkan koordinat geografis yang tepat tempat tugas akan diselesaikan.

2. Penetapan tugas

Saat menetapkan tugas ke kendaraan, Anda melakukannya bersama dengan perhentian kendaraan. Perhentian adalah koordinat lintang/bujur yang menunjukkan lokasi tempat kendaraan diparkir saat pengemudi menyelesaikan tugas yang terkait dengan perhentian. Perhentian biasanya merupakan titik akses seperti dok pemuatan, atau lokasi yang diambil dari jalan.

3. Dalam proses

Status tugas adalah TERBUKA atau TUTUP. Namun, setelah tugas ditetapkan ke kendaraan, Anda dapat melacak progresnya melalui pengaitan ke kendaraan dan lokasi kendaraan terkait perhentian tempat tugas akan selesai.

Setelah kendaraan berangkat dari perhentian atau memulai navigasi, status perhentian akan berubah menjadi ENROUTE. Dengan cara ini, pelacakan pengiriman konsumen dapat memperbarui penerima untuk tugas dengan jumlah perhentian yang tersisa dan estimasi waktu kedatangan. Hal ini juga mendukung visualisasi real-time untuk pelacakan pengiriman konsumen atau pelacakan fleet.

4. Hasil kedatangan dan tugas

Saat kendaraan tiba di perhentian, status perhentian harus ditetapkan ke ARRIVED. Seperti status berhenti ENROUTE, hal ini tidak memengaruhi status tugas itu sendiri, tetapi mendukung notifikasi konsumen dan pelaporan real-time untuk pelacakan armada yang digunakan oleh operator armada Anda. Hal ini juga memungkinkan analisis dan pelaporan kemudian tentang operasi yang akan Anda gunakan untuk pengoptimalan pengiriman.

Setelah kendaraan tiba di perhentian, sistem Anda dapat menangani perjalanan tugas selanjutnya menggunakan salah satu pendekatan berikut:

  • Menutup tugas begitu selesai.

    Saat pengemudi menandai tugas selesai, sistem Anda dapat menghapusnya dari perhentian, tetapi tetapkan perhentian dengan tugas lain yang ditetapkan.

  • Hapus seluruh perhentian dari kendaraan.

    Setelah pengemudi menandai semua tugas selesai dan kendaraan sedang dalam perjalanan ke perhentian berikutnya, Anda dapat menghapus seluruh perhentian dari kendaraan. Fleet Engine akan otomatis menutup semua tugas yang terkait dengan perhentian yang dihapus.

Menutup tugas tidak mengindikasikan keberhasilan atau kegagalan

Menutup tugas hanya menunjukkan bahwa tugas tidak lagi dianggap sedang berlangsung. Untuk tugas dengan status CLOSED, Anda menetapkan hasilnya ke SUCCEEDED atau FAILED. Hal ini diperlukan untuk menunjukkan hasil sebenarnya untuk pelacakan pengiriman dan untuk penagihan yang tepat. Fleet Engine hanya menagih tugas pengiriman dengan status Berhasil.

Setelah Anda menetapkan hasil tugas, Anda tidak dapat mengubahnya

Saat menandai hasil tugas, Fleet Engine akan otomatis mengisi lokasi hasil tugas dengan lokasi kendaraan terakhir yang diketahui. Namun, Anda dapat mengubah waktu hasil tugas dan lokasi hasil tugas setelah ditetapkan dan Fleet Engine tidak akan mengganti kolom ini.

5. Skenario tugas lainnya

Tidak semua tugas yang Anda buat modelnya di Fleet Engine sesuai dengan alur perjalanan standar. Contoh:

  • Tugas pengambilan. Jika Anda memiliki tugas pengambilan untuk paket yang akan dikembalikan ke depot untuk diproses nanti, Anda harus membuat tugas pengiriman yang sesuai untuk paket tersebut, dengan lokasi yang direncanakan ditetapkan ke depot. Jika tidak, tugas pengambilan umumnya mengikuti alur yang sama seperti untuk tugas pengiriman.
  • Penetapan ulang tugas. Anda tidak bisa langsung menetapkan ulang tugas ke kendaraan yang berbeda. Sebagai gantinya, untuk memindahkan tugas dari satu kendaraan ke kendaraan lainnya, tutup tugas asli, lalu buat ulang tugas tersebut sebelum menetapkannya ke kendaraan baru. Jika Anda memperbarui urutan tugas untuk tugas yang sudah ditetapkan ke kendaraan lain, Fleet Engine akan menampilkan error.
  • Menghapus tugas. Seperti kendaraan, Fleet Engine menghapus tugas yang belum diperbarui setelah tujuh hari. Jika Anda mencoba menggunakan kembali ID tugas untuk tugas yang sebelumnya telah ditutup, Fleet Engine akan menampilkan error jika ID tersebut telah digunakan dalam tujuh hari terakhir. Sebaliknya, jika ingin menyimpan data tugas lebih dari tujuh hari, Anda harus menerapkan kemampuan tersebut sendiri, seperti melalui tugas terjadwal untuk mereset jam 7 hari.

Bagikan progres tugas

Di Fleet Engine, Anda dapat memantau progres tugas secara real-time dan membagikan perjalanan pengemudi dengan dua cara utama:

  • Pengalaman konsumen bagi konsumen untuk mengetahui status pesanan pengiriman atau pesanan layanan yang diminta.
  • Pelacakan armada bagi operator fleet untuk melacak dan menganalisis status kendaraan di armada.

Pengalaman konsumen

Untuk membagikan progres tugas, Anda menyiapkan pengalaman konsumen menggunakan JavaScript Consumer SDK. Dengan SDK ini, Anda dapat meningkatkan pengalaman web visual atau aplikasi seluler sehingga konsumen dapat memantau status pengiriman mereka beserta perkiraan waktu tiba dan pembaruan lokasi real-time untuk kendaraan pengiriman. Lihat Ringkasan tugas terjadwal Consumer SDK.

Consumer SDK berisi peta JavaScript dan komponen data untuk terhubung dengan Fleet Engine. Peta ini adalah pengganti langsung untuk objek google.maps.Map standar. Klien Anda harus mengautentikasi pengguna akhir dan menggunakan peran konsumen Pengiriman dari project Google Cloud Anda untuk hanya menampilkan informasi khusus pelanggan. Fleet Engine memfilter dan menyamarkan semua informasi lainnya dalam respons. Misalnya, selama tugas ketidaktersediaan, tidak ada informasi lokasi yang dibagikan kepada pengguna akhir.

Di Fleet Engine, Anda mengaktifkan setelan berikut untuk membagikan progres tugas kepada konsumen:

  • Tugas menggunakan properti TaskTrackingViewConfig. Opsional.
  • Tugas menggunakan ID pelacakan, yang diperlukan library untuk mengidentifikasi tugas yang relevan bagi konsumen.

Pelacakan Armada

Library Pelacakan Armada JavaScript memungkinkan Anda memvisualisasikan lokasi kendaraan dalam armadanya secara mendekati real time. Library ini menggunakan Fleet Engine API untuk menyediakan visualisasi kendaraan pengiriman serta tugas yang diberikan kepada mereka. Seperti halnya JavaScript konsumen SDK, SDK ini berisi komponen peta JavaScript yang merupakan pengganti langsung untuk entitas google.maps.Map standar dengan komponen data yang Anda gunakan untuk terhubung dengan Fleet Engine.

Library ini menampilkan visibilitas kendaraan pengiriman segera setelah dibuat di Fleet Engine. Untuk implementasi ini, Anda menggunakan peran Cloud IAM Pengguna Super Layanan Fleet Engine dan memberikan klaim Java Web Token untuk akses ke kendaraan pengiriman dan tugas terkait.

Skenario tugas terjadwal

Bagian ini menunjukkan berbagai skenario tugas yang merangkum informasi yang diberikan pada tahap ini dalam panduan. Panduan ini dimaksudkan untuk membantu Anda memahami berbagai cara untuk membuat model operasi transportasi di Fleet Engine, bergantung pada bisnis Anda.

Pengiriman dengan pelacakan

Skenario pengiriman ini menunjukkan tugas perhentian terjadwal yang ditetapkan ke depot baik saat keberangkatan dari depot di awal perjalanan maupun kedatangan ke depot di akhir perjalanan. Laporan ini juga menampilkan dua tugas pengiriman untuk perhentian, salah satunya gagal. Gunakan tugas ini untuk mengaktifkan pelacakan dari dan ke depot serta sebagai cara untuk membuat model waktu mulai dan berhenti untuk hari itu. Tidak ada penagihan yang diterapkan dengan tugas perhentian terjadwal.

Pengambilan dengan pengiriman ke toko

Skenario ini menunjukkan cara membuat model pengambilan dengan tugas pengiriman yang sesuai. Anda menetapkan pengembalian ke depot sebagai pengiriman untuk tujuan penagihan.

Kendaraan feeder

Skenario ini menunjukkan dua pengiriman dengan perhentian terjadwal di tengah untuk kendaraan feeder, yang tujuannya adalah memungkinkan kendaraan pengiriman kembali ke depot dengan sejumlah paket yang akan dikirim. Anda juga dapat membuat model kendaraan feeder dengan perhentian terjadwal.

Waktu Tugas

Pemodelan waktu tugas akan membantu perencanaan rute, PWT, dan pengelolaan ekspektasi pengiriman yang efektif. Fleet Engine menawarkan dua fungsi utama untuk membuat model dan mengantisipasi waktu tugas, seperti yang dijelaskan di bagian ini.

Durasi tugas

Durasi tugas ditetapkan dengan kolom task_duration, kolom wajib yang membuat model waktu yang diperkirakan yang dihabiskan pengemudi untuk menyelesaikan tugas di perhentian atau untuk beristirahat. Untuk perhentian, ini mencakup semua aktivitas yang diperlukan setelah tiba di perhentian, seperti menurunkan paket dan berinteraksi dengan penerima. Makin spesifik informasi ini, makin baik kemampuan Fleet Engine untuk memberikan waktu tiba dan perkiraan waktu tiba yang realistis untuk perhentian berikutnya dalam perjalanan. Untuk detail kolom, lihat Durasi di Dokumentasi Buffering Protokol.

Periode waktu target

Waktu target menentukan rentang waktu yang diusulkan untuk suatu tugas, biasanya digunakan untuk berkomunikasi dengan pelanggan atau untuk tujuan perencanaan internal. Tetapkan string ini dengan kolom target_time_window, yang terdiri dari waktu mulai dan waktu berakhir. Hal ini tidak secara langsung memengaruhi penghitungan rute, tetapi dapat digunakan untuk situasi seperti memberi tahu konsumen tentang jangka waktu pengiriman paket, atau kapan pekerja layanan terjadwal akan tiba.

Atribut Tugas

Atribut tugas di Fleet Engine menyediakan cara yang mudah untuk memfilter tugas berdasarkan karakteristik tertentu saat menggunakan permintaan ListTasks. Anda juga dapat menggunakan atribut tugas kustom untuk analisis dengan Cloud Logging, beserta menyampaikan informasi kepada konsumen atau untuk pelacakan fleet. Tujuannya mirip dengan atribut kendaraan: gunakan atribut ini untuk membuat perspektif yang lebih terfokus pada operasi pengiriman Anda.

Batasan dan Pembatasan

  • Pembuatan atribut khusus: Fleet Engine membatasi jumlah atribut khusus yang dapat Anda tentukan per tugas. Hubungi Sales Rep Anda untuk meminta peningkatan batas tersebut.
  • Kemampuan pemfilteran: Meskipun menawarkan fleksibilitas pemfilteran, atribut tugas tidak menggantikan kolom data tugas inti. Gunakan filter tersebut untuk pemfilteran tambahan berdasarkan kebutuhan spesifik Anda.
  • Setiap atribut harus memiliki kunci unik.
  • Jangan sertakan informasi identitas pribadi atau informasi sensitif lainnya dalam nilai atribut, karena informasi tersebut mungkin terlihat oleh pengguna.
  • Validasi data: Pastikan jenis dan format data atribut kustom Anda kompatibel dengan persyaratan Fleet Engine.

Langkah berikutnya