Ten dokument opisuje usługę zaplanowanych zadań we Fleet Engine. Zakładamy, że przeczytałeś(-aś) artykuł Co to jest Fleet Engine? i znasz wymaganą przez Ciebie funkcję usługi Fleet Engine.
Czytając tę dokumentację, pamiętaj o tych kwestiach:
- Tworzysz zadania i powiązujesz je z przystankami pojazdu, aby modelować rzeczywiste powiązanie między zadaniem a miejscem, w którym pojazd powinien się zatrzymać. Umożliwi to kierowcy wykonanie zadania. Przeczytaj Wprowadzenie do pojazdów, aby lepiej zrozumieć, jak pojazdy działają we Fleet Engine.
- Fleet Engine do zaplanowanych zadań korzysta z tych zasobów:
Task
iDeliveryVehicle
. Fleet Engine udostępnia interfejsy usługi gRPC i REST:
Co to jest zaplanowane zadanie?
Zaplanowane zadanie we Fleet Engine reprezentuje pojedyncze działanie, które ma wykonać kierowca korzystający z pojazdu w szerszym kontekście działań transportowych. Określa konkretny cel dla kierowcy. Na przykład:
- dostarczanie dobra do miejsca zamieszkania
- odbiór przesyłki w celu jej zwrotu do magazynu
- zatrzymać się w danym miejscu, aby wykonać usługę na miejscu dla klienta;
- aby dokonać zaplanowanego postoju na tankowanie pojazdu.
Elementy zadania
Na poniższym obrazku pokazano te elementy zadania w standardowej zaplanowanej trasie pojazdu.
Podstawowe pola zadań
Pole | Opis |
---|---|
Typ | Określa typ działania powiązanego z zadaniem. |
Identyfikator zadania | Ciąg jednoznacznie identyfikujący zadanie w systemie. |
Planowana lokalizacja | Określa docelową lokalizację, w której należy wykonać zadanie. Ta lokalizacja nie zawsze jest taka sama jak zaplanowana lokalizacja przystanku. |
Stan | Wskazuje, czy zadanie jest otwarte czy zamknięte. |
Wynik zadania | Wskazuje, czy zadanie zostało wykonane, czy nie. |
Model danych na potrzeby zadań
Poniższe diagramy ilustrują model danych zasobu Task
i diagram powiązanego z nim zasobu DeliveryVehicle
. Możesz przejrzeć oba diagramy, aby zbadać relacje między nimi. Pamiętaj o tych kwestiach:
- Planowana lokalizacja: zarówno postoje dla pojazdów, jak i zadania mają zaplanowane lokalizacje, które różnią się od siebie.
- W przypadku zadań zaplanowana lokalizacja wskazuje miejsce, w którym powinno nastąpić działanie sterownika. Na przykład 15 dostaw paczek do dużego kompleksu mieszkalnego wymaga dostarczenia do różnych pomieszczeń pocztowych w tym samym kompleksie.
- W przypadku postojów z pojazdami planowana lokalizacja wskazuje przystanek dla pojazdu na czas wykonywania zadań przez kierowcę. Na przykład pojazd zatrzymuje się przed wejściem do kompleksu mieszkalnego, a kierowca dostarcza ręcznie paczki do osobnych pomieszczeń pocztowych w kompleksie.
- Stan: zarówno zadania, jak i przystanki pojazdu mają pole stan, które różni się od siebie.
- Stan zatrzymania pojazdu odzwierciedla postęp pojazdu w zależności od przystanku i jest używany do śledzenia floty.
- Stan zadania wskazuje, czy jest ono aktywne. Ma to wpływ na inne operacje wykonywane na zadaniach, np. określenie rezultatu lub przypisanie go do pojazdu.
Rezultat zadania: wynik zadania to ważne pole w modelu danych, ponieważ służy do wskazywania powodzenia lub niepowodzenia zadania niezależnie od jego stanu.
Identyfikatory:
- Gdy przypiszesz zadanie do pojazdu, silnik floty wypełni pole
deliveryVehicleId
. To pole tylko do odczytu wskazuje pojazd, do którego zostało przypisane zadanie. - Identyfikatory zadań to unikalne identyfikatory wszystkich zadań w systemie.
- Identyfikatory śledzenia identyfikują zadanie na potrzeby śledzenia przesyłki.
- Gdy przypiszesz zadanie do pojazdu, silnik floty wypełni pole
Model danych Listy zadań
Model danych pojazdu
Identyfikatory zadań
Podobnie jak w przypadku identyfikatorów pojazdów we Fleet Engine, zadania muszą zawierać identyfikatory pozwalające odróżnić je od innych zadań w systemie. Możesz odwoływać się
do wszystkich zadań w przepływie pracy i zarządzać nimi, używając ich identyfikatorów. Tworzysz te identyfikatory, korzystając z usługi CreateTaskRequest
i podając ciąg znaków identyfikatora zgodny z wymaganiami opisanymi w tej sekcji.
Ten ciąg tekstowy stanowi część nazwy zasobu zadania, czyli pola tylko do odczytu w obiekcie Task
. Jest to analogiczne do sposobu, w jaki Fleet Engine tworzy zasoby nazw pojazdów. Zapoznaj się z sekcją Nazewnictwo zasobów we wprowadzeniu do Fleet Engine.
Właściwość | Opis |
---|---|
Unikalność | Aby uniknąć nieporozumień i zapewnić prawidłową identyfikację, każdy identyfikator zadania musi być niepowtarzalny w ramach implementacji Fleet Engine. |
Format |
|
Przykłady dobrych identyfikatorów zadań |
|
---|---|
Zabronione identyfikatory zadań |
|
typy zadań;
Fleet Engine obsługuje różne typy zadań, które reprezentują różne działania w ramach operacji transportowej. Opisujemy je tutaj wraz z ich widocznością i szczegółami płatności.
Typ zadania | Opis | Widoczność śledzenia przesyłki | Rozliczono |
---|---|---|---|
Delivery Task | Używaj do dostarczania produktów lub wykonywania zadań dla klienta. | Klienci mogą to zobaczyć i śledzić. | Tak |
Zadanie odbioru | Użyj, aby wskazać odbiór towarów od klienta. W przypadku każdego zadania odbioru musisz mieć odpowiednie zadania dostawy. | Konsumenci mogą to sprawdzić i śledzić. | Nie |
Zadanie dotyczące niedostępności | Identyfikuje pojazd jako niedostępny w usłudze, np. gdy kierowca robi sobie przerwę lub uzupełnia paliwo. | Nie są one widoczne dla konsumentów. | Nie |
Zaplanowane zatrzymanie | zadanie niewymagające dostawy, które wymaga zatrzymania się w konkretnej lokalizacji; Korzystaj z zadań zaplanowanych przy odbiorze w przypadku zaplanowanych codziennych postojów na odbiór zamówień w określonej lokalizacji, niezależnie od innych dostaw lub odbioru w tym samym miejscu. Możesz też tworzyć zaplanowane zadania zatrzymania dla odbiór ze skrzynek referencyjnych lub modelować transfery między pojazdami dostarczanymi przez system dostarczania danych lub przystanki w centrach serwisowych i punktach serwisowych. | Konsumenci nie mogą śledzić tego konkretnego zadania, ale mogą je widzieć w ramach śledzenia innych zadań. | Nie |
Cykl zadań i ścieżek
W tej sekcji znajdziesz szczegółowe informacje o cyklu życia zadania dostawy w Fleet Engine. Cykl życia zadania jest połączony z trasą pojazdu, ponieważ pojazd musi dotrzeć do przystanku, aby kierowca mógł wykonać zadanie w zaplanowanym miejscu.
1. Tworzenie zadań
Przy pierwszym tworzeniu zadania we Fleet Engine ustawiasz dla niego różne pola niezależnie od powiązania go z przystankiem.
Właściwość | Opis |
---|---|
Stan | Ustaw na OTWARTE. |
Identyfikatory | Ustaw zadanie i identyfikator śledzenia, jeśli korzystasz ze śledzenia przesyłki dla klientów. |
Czas | Planowany czas trwania zadania i docelowy przedział czasowy. Więcej informacji znajdziesz w sekcji Czas trwania zadania. |
Planowana lokalizacja | Ustaw dokładne współrzędne geograficzne miejsca, w którym ma zostać wykonane zadanie. |
2. Przypisanie zadania
Gdy przypisujesz zadanie do pojazdu, robisz to wraz z przystankiem pojazdu. Przystanki to współrzędne geograficzne, które wskazują lokalizację, w której pojazd się zatrzymuje, gdy kierowca wykonuje zadania związane z danym przystankiem. Przystanki to zwykle punkty dostępu, takie jak ładowarka lub lokalizacja na drodze.
3. W toku
Stan zadania to „OTWARTE” lub „ZAMKNIĘTE”. Gdy jednak zadanie zostanie przypisane do pojazdu, możesz śledzić jego postępy dzięki powiązaniu z pojazdem oraz dzięki informacji o tym, gdzie znajduje się pojazd w stosunku do przystanku, na którym ma zostać wykonane zadanie.
Gdy pojazd odjeżdża ze przystanku lub rozpoczyna nawigację, stan przystanku powinien zmienić się na ENROUTE
. Dzięki temu funkcja śledzenia przesyłki klienta może zaktualizować adres odbiorcy zadania o liczbę pozostałych postojów i szacowany czas dotarcia na miejsce. Umożliwia też wizualizację w czasie rzeczywistym na potrzeby śledzenia przesyłek konsumentów lub floty.
4. Przyjazd i wynik zadania
Gdy pojazd znajdzie się na przystanku, stan przystanku powinien być ustawiony na ARRIVED
. Podobnie jak w przypadku stanu zatrzymania ENROUTE
, nie wpływa to na stan samego zadania, ale umożliwia wysyłanie powiadomień do klientów i raportowanie w czasie rzeczywistym w ramach śledzenia floty używanego przez operatorów floty. Umożliwia to też późniejsze analizowanie i raportowanie danych o działaniach, które wykorzystujesz do optymalizacji dostarczania.
Gdy pojazd dotrze do przystanku, system może wykonać pozostałą część zadania w jeden z tych sposobów:
Zamykanie zadań po ich wykonaniu
Gdy kierowca zaznaczy, że zadanie zostało wykonane, system może usunąć je z przystanku, ale pozostawić przystanek z innymi przypisanymi do niego zadaniami.
Usuń cały przystanek z pojazdu.
Gdy kierowca oznaczy wszystkie zadania jako wykonane, a pojazd znajdzie się w drodze do następnego przystanku, możesz usunąć z pojazdu cały przystanek. Fleet Engine automatycznie zamyka wszystkie zadania powiązane z usuniętym przystankiem.
Zamknięcie zadania nie wskazuje na jego powodzenie lub niepowodzenie.
Zamknięcie zadania oznacza tylko, że nie jest ono już uważane za realizowane.
W przypadku zadań w stanie CLOSED
ich wynik może być SUCCEEDED
lub FAILED
. Jest to konieczne, aby wskazać rzeczywisty wynik śledzenia przesyłki i właściwie obciążyć klienta. Fleet Engine nalicza opłaty tylko za zadania dostawy ze stanem SUCCEEDED.
Gdy określisz wynik zadania, nie możesz go zmienić.
Zaznaczając wynik zadania, Fleet Engine automatycznie wypełnia lokalizację zadania, korzystając z ostatniej znanej lokalizacji pojazdu. Możesz jednak zmienić czas i lokalizację wyniku zadania po ustawieniu tych pól, przez co Fleet Engine nie zastąpi tych pól.
5. Inne scenariusze zadań
Nie wszystkie zadania modelowane w Fleet Engine pasują do typowego przebiegu podróży. Przykład:
- Zadania związane z odbiorem. Jeśli masz zadanie odbioru dla przesyłki, które ma zostać zwrócone do zakładu w celu późniejszego przetworzenia, utwórz dla niej odpowiednie zadanie dostawy z zaplanowaną lokalizacją ustawioną na magazyn. W przeciwnym razie zadania związane z odbiorem będą przebiegać tak samo jak w przypadku zadań związanych z dostawą.
- Przypisanie zadania innej osobie. Nie możesz bezpośrednio przypisać zadania do innego pojazdu. Aby przenieść zadanie z jednego pojazdu do innego, zamknij pierwotne zadanie i utwórz je ponownie, zanim przypiszesz je do nowego pojazdu. Jeśli zaktualizujesz kolejność zadań dla zadania, które jest już przypisane do innego pojazdu, Fleet Engine wygeneruje błąd.
- Usuwanie zadań. Podobnie jak w przypadku pojazdów, Fleet Engine usuwa zadania, które nie zostały zaktualizowane po upływie 7 dni. Jeśli spróbujesz ponownie użyć identyfikatora zadania, które zostało wcześniej zamknięte, Fleet Engine zwróci błąd, jeśli ten identyfikator został użyty w ciągu ostatnich 7 dni. Jeśli natomiast chcesz zachować dane zadania dłużej niż przez 7 dni, musisz samodzielnie wdrożyć tę funkcję, na przykład za pomocą zaplanowanego zadania, aby zresetować licznik 7-dniowego okresu.
Udostępnianie postępów w wykonaniu zadania
We Fleet Engine możesz monitorować postęp zadań w czasie rzeczywistym i udostępniać przejazdy kierowcy na 2 kluczowe sposoby:
- Obsługa klienta, dzięki której klienci mogą poznać stan zamówień wysyłki lub zamówień na usługę.
- Śledzenie floty, aby operatorzy floty mogli śledzić i analizować stan pojazdów we flocie.
Wrażenia konsumentów
Aby udostępnić postępy w wykonaniu zadania, skonfiguruj interfejs użytkownika za pomocą pakietu JavaScript Consumer SDK. Dzięki pakietowi SDK możesz ulepszać wrażenia wizualne w witrynie lub aplikacji mobilnej, aby klienci mogli sprawdzać stan przesyłki wraz z szacowanym czasem dostawy i aktualizacjami lokalizacji pojazdu dostawczego w czasie rzeczywistym. Zobacz Omówienie zaplanowanych zadań pakietu SDK klienta.
Pakiet Consumer SDK zawiera komponenty mapy JavaScript i komponenty danych, które łączą się z Fleet Engine. Mapa zastępuje standardowy obiekt google.maps.Map
. Klient powinien uwierzytelnić użytkowników końcowych i użyć roli konsumenta Delivery w Twoim projekcie Google Cloud, aby zwracać tylko informacje o konkretnym kliencie. Fleet Engine filtruje i usuwa w odpowiedzi
wszystkie inne informacje. Na przykład podczas zadania związanego z niedostępnością
żadne informacje o lokalizacji nie są udostępniane użytkownikowi.
We Fleet Engine włączysz następujące ustawienia, aby udostępniać konsumentowi postęp zadania:
- Zadania używają właściwości
TaskTrackingViewConfig
. Opcjonalnie: - Zadania używają identyfikatora śledzenia, którego biblioteka potrzebuje do identyfikowania zadań dla klienta.
Śledzenie floty
Biblioteka śledzenia flot w języku JavaScript umożliwia wizualizację lokalizacji pojazdów w ich flotach w czasie zbliżonym do rzeczywistego. Biblioteka korzysta z interfejsu Fleet Engine API, aby wizualizować pojazdy dostawcze oraz przypisane im zadania. Podobnie jak pakiet SDK dla konsumentów JavaScript zawiera on komponent mapy JavaScript, który jest zamiennikiem standardowego obiektu google.maps.Map
z komponentami danych służącymi do nawiązywania połączenia z Fleet Engine.
Ta biblioteka pokazuje widoczność pojazdów dostawczych, gdy tylko zostaną utworzone w Fleet Engine. W ramach tej implementacji musisz użyć roli Superużytkownik Cloud IAM usługi Fleet Engine i podać deklarację tokenów sieciowych Java w celu uzyskania dostępu do pojazdów dostarczania i powiązanych z nimi zadań.
Scenariusze zaplanowanych zadań
W tej sekcji znajdziesz różne scenariusze zadań, które podsumowują informacje podane w tym momencie przewodnika. Ma ona na celu pomóc Ci zrozumieć różne sposoby modelowania operacji transportowych w Fleet Engine, w zależności od Twojej firmy.
Dostawa ze śledzeniem
Ten scenariusz dostawy pokazuje zadanie zaplanowanego zatrzymania przypisane do zakładu, zarówno na początku trasy, jak i na początku podróży, a także na końcu przejazdu. Pokazuje też 2 zadania dostarczania związane z przystankiem, z których 1 z nich zakończyło się niepowodzeniem. Użyj tego przypisania, aby włączyć śledzenie przesyłek z i do magazynu oraz modelować czasy rozpoczęcia i zakończenia w ciągu dnia. Za zaplanowane zatrzymywanie nie są naliczane żadne opłaty.
Odbiór z dostawą z magazynu
Ten scenariusz pokazuje, jak modelować odbiór z odpowiednim zadaniem dostawy. Ustawiasz zwrot do magazynu jako dostawę do celów rozliczeniowych.
Pojazd dozowników
Ten scenariusz pokazuje 2 dostawy z zaplanowanym przystankiem w środku pojazdu dostarczającego, który ma na celu umożliwienie dostawy pojazdu dostawy do magazynu z pewną liczbą przesyłek do wysłania. Możesz też modelować pojazd dodatkowy z zaplanowanym przystankiem.
Harmonogram zadania
Modelowanie czasu trwania zadań pomaga w skutecznym planowaniu tras, szacowaniu czasu przybycia i zarządzaniu oczekiwaniami dotyczącymi dostawy. Fleet Engine oferuje 2 kluczowe funkcje do modelowania i prognozowania czasów zadań, jak opisano w tej sekcji.
Czas trwania działania
Czas trwania zadania ustawia się w polu task_duration
– wymaganym polu, które modeluje przewidywany czas, który kierowca może spędzić na wykonaniu zadań w związku z zatrzymaniem lub na przerwę. W przypadku przystanków obejmuje to wszystkie niezbędne działania po dotarciu do przystanku, takie jak wyładowanie przesyłek i interakcja z klientem. Im bardziej szczegółowe są te informacje, tym lepiej Fleet Engine może podawać realistyczne czasy przyjazdu i przewidywane czasy przyjazdu na kolejne przystanki w trasie.
Szczegółowe informacje o tym polu znajdziesz w dokumentacji Protocol Buffers w sekcji Duration.
Przedział czasu docelowego
Czas docelowy określa proponowany zakres czasu dla zadania. Jest on zwykle używany do komunikacji z klientami lub do celów planowania wewnętrznego. Możesz to ustawić w polu target_time_window
, które składa się z godziny rozpoczęcia i zakończenia.
Nie wpływa to bezpośrednio na obliczenia trasy, ale może być przydatne w sytuacjach, takich jak powiadamianie konsumenta o przedziale czasowym na dostarczenie przesyłki lub spodziewanym przybyciu wyznaczonego pracownika obsługi klienta.
Atrybuty zadania
Atrybuty zadań w Fleet Engine umożliwiają wygodne filtrowanie zadań według określonych cech za pomocą żądania ListTasks
. Możesz też używać niestandardowych atrybutów zadań do analizy w Cloud Logging, a także do komunikowania się z konsumentami lub śledzenia floty. Funkcja ta jest podobna do tej w przypadku atrybutów pojazdów – pozwala uzyskać bardziej precyzyjną perspektywę działań związanych z dostawą.
Ograniczenia
- Tworzenie atrybutów niestandardowych: silnik floty ogranicza liczbę atrybutów niestandardowych, które możesz zdefiniować na zadanie. Aby poprosić o zwiększenie tych limitów, skontaktuj się z przedstawicielem handlowym.
- Możliwości filtrowania: atrybuty zadań nie zastępują podstawowych pól danych zadań, ale zapewniają elastyczność filtrowania. Użyj ich do dodatkowego filtrowania w zależności od swoich potrzeb.
- Każdy atrybut musi mieć unikalny klucz.
- W wartości atrybutu nie podawaj informacji umożliwiających identyfikację osób ani innych informacji poufnych, ponieważ mogą one być widoczne dla użytkownika.
- Weryfikacja danych: upewnij się, że typy i formaty atrybutów niestandardowych są zgodne z wymaganiami Fleet Engine.