Przykładowa klasa Java spotkania
Interfejs klasy Java dotyczącej spotkania, do którego istnieje odwołanie w konfiguracji cechy systemu zewnętrznego, jest odpowiedzialny za interakcję z motorem komunikatów wychodzących czasu rzeczywistego w narzędziu XAI, mającej na celu komunikację z systemem zewnętrznym logiki dotyczącej wizyty u klienta
Produkt bazowy zapewnia domyślną klasę Java (o nazwie com.splwg.wfmi.workforce.DefaultWFMSystem) do integracji spotkania, której można użyć, jeśli zapewni ona logikę wymaganą we wdrożeniu.
Moduł Oracle Utilities Mobile Workforce Management. Informacje na temat klasy Java dostarczonej w celu integracji z modułem Oracle Utilities Mobile Workforce Management zawiera dokumentacja dotycząca integracji.
Domyślna klasa Java dostarczona z produktem bazowym:
- Umożliwia pobranie dodatkowych informacji o zadaniu w terenie nie udostępnionych w usłudze strony dotyczącej spotkania
- Pozwala na konwersję danych w usłudze strony oraz dodatkowych informacji o zadaniu w terenie do dokumentu XML
- Umożliwia uruchomienie motoru komunikatów wychodzących czasu rzeczywistego.
Odpowiedzi odbierane z motoru mają postać dokumentu XML. Za pomocą klasy Java możliwa jest transformacja tych informacji do formatu rozpoznawalnego przez model danych strony i wysłanie ich z powrotem do kodu wyjścia użytkownika.
W pliku CILOAPTP.xml znajdującym się w katalogu xmlMetaInfo została opisana podstawowa struktura żądania XML wyświetlenia, rezerwacji i anulowania spotkania. Zadanie w terenie wybrane w celu rezerwacji, bądź anulowania zawiera dodatkowy element faExtraInfo. Budowa elementu faExtraInfo jest oparta o strukturę opisaną w pliku CILOEFIP.xml.
Pobieranie dostępnych spotkań
W celu pobrania dostępnych spotkań, kod wyjścia użytkownika przekazuje typ wysyłania powiadomienia, który odwołuje się do znacznika warunku pobierania dostępnych spotkań . Wszystkie dane dostępne w usłudze strony są przekazywane do motoru jako dokument XML, w tym wszelkie pola wyszukiwania zdefiniowane przez użytkownika.
Kod wyjścia użytkownika oczekuje odpowiedzi na ten komunikat w celu zwrócenia zbioru rekordów do wyświetlenia siatce dostępnych spotkań na stronie spotkania, w tym wszystkie pola wyniku zdefiniowane przez użytkownika. Użytkownik jest informowany o wszystkich błędach.
Tłumaczenie komunikatu. Każdy komunikat o błędzie odebrany z systemu zewnętrznego jest tłumaczony z komunikatu zewnętrznego na właściwy systemowy komunikat o błędzie przy użyciu informacji z konfiguracji cechy systemu zewnętrznego.
Rezerwowanie spotkania
Po potwierdzeniu z klientem żądanego spotkania użytkownik próbuje zarezerwować spotkanie. Przy użyciu ogólnej klasy Java integracji spotkania dostarczonej z systemem wysyłany jest komunikat w celu rezerwacji spotkania w czasie rzeczywistym. Kod wyjścia użytkownika przekazuje typ wysyłania powiadomienia, który odwołuje się do znacznika warunku rezerwacji spotkania .
Jedno zadanie w terenie w tym samym czasie. Przykładowy kod wyjścia użytkownika dostarczony z systemem obsługuje rezerwowanie spotkań tylko dla jednego działania w terenie w tym samym czasie. W wyniku tego, aby użyć przykładowego kodu wyjścia, należy skonfigurować systemy zewnętrzne tak, aby dla opcji Dozwolone dokonywanie wielu rezerwacji została ustawiona wartość N. Jeśli w organizacji użytkownika będzie obsługiwane rezerwowanie spotkań dla wielu zadań w terenie, wówczas należy utworzyć własny kod wyjścia w celu udostępnienia tej funkcjonalności.
W przykładowym kodzie wyjścia dostarczonym z produktem oczekiwana jest odpowiedź pozytywna lub negatywna na ten komunikat.
- Jeśli odpowiedź będzie pozytywna, do kodu wyjścia użytkownika zostanie przekazany numer rezerwacji oraz informacja o tym, czy wizyta u klienta jest wizytą wymuszoną. Zbiór charakterystyk zostanie wypełniony tymi wartościami przy użyciu opcji Rezerwacja - typ charakterystyki oraz Wymuszone spotkanie - typ charakterystyki zdefiniowanych w konfiguracji cechy systemu zewnętrznego.
- Jeśli odpowiedź będzie negatywna zostanie wyświetlony komunikat o błędzie.
Tłumaczenie komunikatu. Każdy komunikat o błędzie odebrany z systemu zewnętrznego jest tłumaczony z komunikatu zewnętrznego na właściwy systemowy komunikat o błędzie przy użyciu informacji z konfiguracji cechy systemu zewnętrznego.
Jeśli motor komunikatów nie może połączyć się z systemem zewnętrznym, zostanie zwrócone wskazanie na kod wyjścia użytkownika. Wykonanie kodu wyjścia użytkownika ma następujący przebieg:
- Jeśli system zewnętrzny wskazuje, że opcja Dozwolone ręczne ustalanie spotkania ma wartość fałszywą, zostanie wyświetlony błąd.
- Jeśli dozwolone jest ręczne ustalanie wizyty u klienta, wyświetlane jest ostrzeżenie z zapytaniem, o zarejestrowanie komunikatu i jego wysłanie w momencie ponownego ustalenia połączenia. Jeśli użytkownik wyrazi zgodę, zostanie wywołana klasa Java z zapytaniem o wysłanie komunikatów w najbliższym czasie rzeczywistym.
- W kodzie wyjścia użytkownika obliczany jest unikalny ID komunikatu wychodzącego dla systemu zewnętrznego. ID komunikatu jest obliczany za pomocą sekwencji bazy danych, do nazwy której odwołuje się opcja ID komunikatu - nazwa sekwencji bazy danych w konfiguracji cechy systemu zewnętrznego. Ten ID komunikatu jest przekazywany do motoru komunikatów czasu rzeczywistego w celu wypełnienia jako pozycja kontekstu wysyłania powiadomienia do obsługi asynchronicznej odpowiedzi na komunikat.
- Typ wysyłania, który odwołuje się do znacznika warunku Anulowanie spotkania - najbliższy czas rzeczywisty jest przekazywany w kodzie wyjścia użytkownika. Do motoru komunikatów czasu rzeczywistego przekazywany jest również ID zadania w terenie w celu wysłania do pozycji kontekstu wysyłania powiadomienia. System oczekuje, że w odpowiedzi na ten komunikat zostanie utworzy rekord ładowania narzędzia XAI oraz że ten rekord zaktualizuje charakterystyki zadania w terenie informacjami o rezerwacji i wymuszonym spotkaniu (jeśli dotyczy). Więcej informacji o odpowiedziach na komunikatu najbliższego czasu rzeczywistego i wysyłaniu narzędzia XAI zawiera sekcja Komunikaty wysyłania najbliższy czas rzeczywisty.
- Jeśli konfiguracja systemu zewnętrznego wskazuje, że wymuszone spotkania są dozwolone, do systemu zewnętrznego jest wysyłany komunikat z ustawieniem wymuszania. Jeśli system zewnętrzny nie zezwala na wymuszone spotkania, prawdopodobnie ręczne spotkanie zostanie przez system odrzucone.
Jeśli nie pojawi się żaden błąd, na stronie spotkania będzie kontynuowana czynność "zmiany". Okres spotkania zostanie utworzony dla wybranego czasu spotkania, jeśli nie istnieje jeszcze żaden okres, a następnie zostanie połączony z zadaniem w terenie.
Okres spotkania zostanie utworzony i połączony z działaniem w terenie nawet, jeśli komunikat zostanie wysłany do systemu zewnętrznego w najbliższym czasie rzeczywistym i nie zostanie zwrócone żadne potwierdzenie. Działanie to służy do zarejestrowaniu w systemie żądanego spotkania w celu obsługi sytuacji, w których klient chce zmienić bądź anulować spotkanie przed uzyskaniem potwierdzenia z systemu zewnętrznego.
Anulowanie spotkania
Jeśli klient chce anulować wizytę, użytkownik musi przejść do strony wizyty u klienta. Ogólna klasa Java integracji wizyty u klienta dostarczona z systemem wysyła komunikat w celu anulowania wizyty czasu rzeczywistego. Typ wysyłania powiadomienia, który odwołuje się do znacznika warunku Anulowanie spotkania , jest przekazywany w kodzie wyjścia użytkownika. W kodzie na ten komunikat oczekiwana jest odpowiedź pozytywna lub negatywna.
- Jeśli zostanie odebrana odpowiedź pozytywna, czynność zmiany będzie kontynuowana na stronie spotkania. (Patrz poniżej).
- Jeśli odpowiedź będzie negatywna zostanie wyświetlony komunikat o błędzie.
Tłumaczenie komunikatu. Każdy komunikat o błędzie odebrany z systemu zewnętrznego jest tłumaczony z komunikatu zewnętrznego na właściwy systemowy komunikat o błędzie przy użyciu informacji z konfiguracji cechy systemu zewnętrznego.
Jeśli motor komunikatów nie może połączyć się z systemem zewnętrznym, zostanie zwrócone wskazanie na kod wyjścia użytkownika. Wykonanie kodu wyjścia użytkownika ma następujący przebieg:
- Jeśli system zewnętrzny wskazuje, że opcja Dozwolone ręczne anulowanie spotkania ma wartość fałszywą, zostanie wyświetlony błąd.
- Jeśli dozwolone jest ręczne ustalanie wizyty u klienta, wyświetlane jest ostrzeżenie z zapytaniem, o zarejestrowanie komunikatu i jego wysłanie w momencie ponownego ustalenia połączenia. Jeśli użytkownik wyrazi zgodę, zostanie wywołana klasa Java z zapytaniem o wysłanie komunikatów w najbliższym czasie rzeczywistym.
- W kodzie wyjścia użytkownika obliczany jest unikalny ID komunikatu wychodzącego dla systemu zewnętrznego. ID komunikatu jest obliczany za pomocą sekwencji bazy danych, do nazwy której odwołuje się zewnętrzna opcja ID komunikatu - nazwa sekwencji bazy danych w tabeli systemu zewnętrznego. Ten ID komunikatu jest przekazywany do motoru komunikatów czasu rzeczywistego w celu wypełnienia jako pozycja kontekstu wysyłania powiadomienia do obsługi asynchronicznej odpowiedzi na komunikat.
- Typ wysyłania powiadomienia, który odwołuje się do znacznika warunku Anulowanie spotkania - najbliższy czas rzeczywisty , jest przekazywany w kodzie wyjścia użytkownika. Do motoru komunikatów czasu rzeczywistego przekazywany jest również ID zadania w terenie w celu wysłania do pozycji kontekstu wysyłania powiadomienia. Odpowiedzią na ten komunikat będzie potwierdzenie. Nie oczekuje się wykonania żadnych dalszych aktualizacji dla danych tego zadania w terenie.
Jeśli nie pojawi się żaden błąd, na stronie spotkania będzie kontynuowana czynność "zmiany". Okres spotkania zostanie odłączony od zadania w terenie i jeśli żadne inne zadanie nie jest połączone do tego okresu, okres jest usuwany. Ponadto z zadania w terenie są usuwane charakterystyki zadania dla numeru rezerwacji i wymuszonych spotkań.
Powyższe aktualizacje są wykonywane nawet, jeśli komunikat zostanie wysłany w najbliższym czasie rzeczywistym i nie zostanie zwrócone żadne potwierdzenie. Działanie to służy do anulowania w systemie żądanego spotkania w celu obsługi sytuacji, w których klient chce ponownie zarezerwować spotkanie przed uzyskaniem potwierdzenia z systemu zewnętrznego.