Przegląd nasłuchiwacza ESM
Nasłuchiwacze kart danych w Matrix42 Professional
Nasłuchiwacze kart danych to mechanizm implementacji logiki biznesowej w Matrix42 Professional (ESM). Zostały one zaprojektowane tak, aby reagować na określone zdarzenia w szablonach M42 Pro , umożliwiając zautomatyzowane działania w oparciu o zdefiniowane warunki. Gdy szablon zawiera nasłuchiwacza, wszystkie utworzone karty danych mogą go aktywować po zapisaniu:

Kolejność wykonania: patrz artykuł „ Zapisywanie Pro w M42 Pro ”.
Konfigurowanie odbiorników kart danych
Nasłuchiwacze kart danych są konfigurowane za pomocą plików XML, które definiują właściwości i zachowania nasłuchiwacza. Proces konfiguracji obejmuje:
- Tworzenie konfiguracji XML : Zachowanie i warunki nasłuchiwania są definiowane w pliku XML. Plik ten określa sposób interakcji nasłuchiwania ze zdarzeniami na karcie danych.
- Importowanie do szablonu M42 Pro : Po utworzeniu konfiguracji XML należy ją zaimportować do odpowiedniego szablonu M42 Pro . Ten krok aktywuje nasłuchiwacz w szablonie.
- Dostosuj kolejność odbiorników : Zapisy przed zapisem są uruchamiane jako pierwsze w kolejności sekwencyjnej, a zapisy po zapisie w ten sam sposób. Istotne jest, który odbiornik zostanie uruchomiony jako pierwszy. Na przykład, umieść odbiorniki validatora jako pierwsze przed zapisem. Przenieś odbiorniki, aby odzwierciedlały prawidłową kolejność uruchamiania.
Nasłuchiwacze można również eksportować jako część ogólnej konfiguracji XML M42 Pro , co pozwala na łatwą replikację i wdrażanie w różnych środowiskach.
Funkcjonalność słuchacza i ustawienia wyzwalacza
Każdy szablon M42 Pro może zawierać jednego lub więcej odbiorników. Po zapisaniu karty danych powiązanej z szablonem, każdy odbiornik zarejestrowany w tym szablonie zostanie powiadomiony o zdarzeniu.
Nasłuchiwacze są konfigurowani tak, aby reagować na określone zdarzenia na podstawie ustawień wyzwalacza, które mogą być:
- Wyzwalacz przed zapisem : Słuchacz aktywuje się przed zapisaniem karty danych. Modyfikuje tylko kartę danych źródłowych .
- Wyzwalacz po zapisaniu : Słuchacz aktywuje się po zapisaniu karty danych. Modyfikuje tylko inne karty danych.
- Chyba że istnieje konkretna potrzeba modyfikacji źródłowej karty danych i celowego uruchomienia drugiego cyklu zapisu. Przykładem jest zamiana wartości statusu na zgłoszeniu za pomocą nasłuchiwacza, ale z jednoczesnym uruchomieniem procedur obsługi DataCardHiddenState i ValueChange w celu odzwierciedlenia zmiany.

Po uruchomieniu, obiekt nasłuchujący ocenia, czy powinien zareagować na zdarzenie. Decyzja ta opiera się na zdefiniowanych Warunkach Źródłowych, czyli kryteriach ustawionych w konfiguracji obiektu nasłuchującego. Warunki źródłowe określają, czy karta danych źródłowych (tj. zapisana karta danych) spełnia parametry wymagane do działania obiektu nasłuchującego. Podobnie, aby wprowadzić zmiany do konkretnych kart danych docelowych innego szablonu, warunki docelowe na początku sekcji łańcucha akcji określają cel(e).
- Wielu słuchaczy : Jeden szablon może obsługiwać wielu słuchaczy, z których każdy reaguje na różne wyzwalacze lub warunki.
- Logika warunkowa : Obiekty nasłuchujące reagują na zdarzenia tylko wtedy, gdy spełnione są określone warunki. Umożliwia to precyzyjną kontrolę nad tym, kiedy i w jaki sposób stosowana jest logika biznesowa.
Najlepsze praktyki
Należy zachować ostrożność: Tworzenia konstrukcji, w których aktualizujesz tę samą kartę danych kilkakrotnie za pomocą różnych nasłuchiwaczy zapisu. Konfliktów między nasłuchiwaczami a innymi funkcjami opartymi na obsłudze.
Ogólny
Plik XML programu Listener można skomentować za pomocą sekcji <!-- foobar -->, ale komentarze zostaną usunięte po zaimportowaniu programu Listener do M42 Pro (tzn. komentowanie programów Listener jest przydatne tylko wtedy, gdy „dane główne” programu Listener są przechowywane gdzie indziej).
- Możesz dodać więcej niż jeden łańcuch akcji
- Na przykład, jeśli w programie nasłuchującym zapisu posta trzeba by było dotknąć wielu różnych docelowych szablonów kart danych na podstawie tych samych warunków źródłowych
- Unikaj stosowania głębokich/wielopoziomowych łączonych warunków AND-OR-AND.., aby kod nasłuchujący był bardziej zrozumiały. Zamiast tego spróbuj albo uprościć warunki, albo zastosować bardziej złożoną logikę w kodzie wyrażenia w atrybucie pomocniczym.
- Wskazówka: atrybut pomocniczy wyrażenia można ustawić jako ciąg wielowartościowy, aby umożliwić ustawienie wielu wartości w jednym atrybucie pomocniczym, które słuchacze będą mogli wykorzystać jako różne wyzwalacze
XML
- Tradycyjna metoda tworzenia logiki biznesowej / uruchamiania automatycznych funkcjonalności bez pól na podstawie określonego szablonu.
Konfigurowane poprzez utworzenie odpowiedniej konfiguracji XML.- Aby korzystać z programów nasłuchujących, należy zaimportować ten kod XML do szablonu M42 Pro .
- Słuchacze mogą być eksportowani jako część konfiguracji XML M42 Pro .
- Kolejność jest kwestią, którą należy wziąć pod uwagę.
- Najpierw wstępne zapisywanie w kolejności, a następnie końcowe zapisywanie w kolejności zgodnej z szablonem.
- Wstępne zapisywanie słuchaczy:
- Uruchom i sprawdź przy każdym zapisie karty danych, po wszystkich programach obsługi, z wyjątkiem AutoMailSender i TargetDeleter.
- Używane na kartach danych „tego” szablonu.
- Słuchacze po zapisaniu:
- Zwykle używane na kartach danych innych szablonów powiązanych z kartą danych „tego” szablonu.
- Może zawierać warunki docelowe.
- Można ponownie uruchomić sekwencję na podstawie innego szablonu.
- Obsługujące elementy w szablonie docelowym są uruchamiane po tych
Przesyłanie danych typu string do pola referencyjnego za pomocą akcji zmiany lub kopiowania może nie działać.
- Tradycyjnie, aby połączyć się z konkretną kartą danych, należy przesłać identyfikator jednostki.
- Kopiowanie odniesienia do odniesienia powinno działać.
- W większości przypadków łatwiej jest łączyć odwołania z wyrażeniami, lecz na przykład podczas wykonywania transformacji może zaistnieć potrzeba użycia słuchaczy, aby później utworzyć pewne odwołania.
Uważaj na:
- Tworzenie konstrukcji, w których aktualizujesz tę samą kartę danych kilkakrotnie za pomocą różnych programów nasłuchujących post-zapis.
- Konflikty między nasłuchiwaczami i innymi funkcjami opartymi na obsłudze.
- Ustalanie kolejności startowej.
PAMIĘTAJ : Musisz zaktualizować statystyczne znaczniki datetime za pomocą programu nasłuchującego, jeśli zamykasz karty danych za pomocą funkcji datechecker – automatyzacji programu nasłuchującego. Ta metoda jest przeznaczona dla początkujących i polega na niekompletnym i sztywnym kodowaniu, co nie jest elastyczne w dłuższej perspektywie. Należy pamiętać, że nie jest to możliwe w sytuacji, gdy konieczne jest utworzenie zmian wartości. Bardziej elastycznym, ale skomplikowanym sposobem jest użycie polecenia post-save, a następnie wyzwolenie odpowiednich procedur obsługi (które mogą się różnić w zależności od konfiguracji po utworzeniu programów nasłuchujących).
Importowanie słuchacza
Podczas importowania obiektu nasłuchującego M42 Pro weryfikuje zawartość i strukturę pliku XML:
- Wyświetlany komunikat o błędzie jest często niemożliwy do zinterpretowania, np. „XML nie może być pusty”.
- Sprawdź, czy zamknąłeś wszystkie znaczniki XML </> i czy wszystkie kody atrybutów są poprawne itd.
- Przejrzyj dokumentację programu nasłuchującego, aby upewnić się, że nie próbujesz wykonywać czynności niemożliwych do wykonania, np. porównywania pól tekstowych lub pól odniesień zewnętrznych.
- Spróbuj usunąć lub zmodyfikować podejrzane komponenty i spróbuj wykonać operację bez nich.
Korzystanie z rejestrowania i debugowania
- Możesz spróbować wyodrębnić więcej informacji, otwierając niektóre z tych klas w celu rejestrowania czasu wykonania i ustawiając poziom DEBUG podczas próby importowania pliku XML
- com.bitmount.equipment.action.TemplateListenerImport zaznacz to w większości przypadków
- com.bitmount.equipment.importing.ValidatingEntityXMLImporter
- com.efecte.datamodel.entity.listener.importing.XMLActionChainImporter
- com.efecte.datamodel.entity.listener.importing.XMLDataCardListenerImporter
- com.efecte.datamodel.entity.listener.importing.XMLSourceConditionsImporter
- com.efecte.datamodel.entity.listener.importing.XMLTemplatesDataCardListenerImporter
- Pamiętaj, aby po naprawieniu programów nasłuchujących ustawić rejestrowanie z powrotem na poziom INFO, w przeciwnym razie wygenerujesz ogromną ilość plików dziennika!!
- Program nasłuchujący został pomyślnie zaimportowany, ale nie działa w sposób, w jaki byśmy chcieli
- Sprawdź logi czasu wykonania i ustaw poziom DEBUG, a zobaczysz, co się wyzwala, a co nie.
- Warunki źródłowe
- com.efecte.datamodel.entity.listener.condition.(?????)
- Warunki docelowe
- com.efecte.datamodel.entity.action.chain.condition.(?????)
- Akcje
- com.efecte.datamodel.entity.action.implementations.(?????)
- (?????) = każdy składnik XML
- Warunki źródłowe
- Pamiętaj, aby po naprawieniu programów nasłuchujących ustawić rejestrowanie z powrotem na poziom INFO, w przeciwnym razie wygenerujesz ogromną ilość plików dziennika!!
- Ustawienia platformy dla słuchaczy
- datacard.listeners.run.as.root
Zmiana statusu biletu
Jeśli zmieniasz wartość statusu zgłoszenia za pomocą programu nasłuchującego, musisz wziąć pod uwagę:
- Znaczniki czasu statystyk są odpowiednio aktualizowane
- Historia zmian wartości statusu jest odpowiednio aktualizowana
- Możliwe jest ukrycie/ustawienie widocznej karty danych, która zostanie odpowiednio zaktualizowana
- Jeśli ustawisz pole za pomocą programu nasłuchującego przed zapisem, nie spodziewaj się, że wyrażenie zostanie uruchomione na jego podstawie, chyba że zrobisz to wewnątrz programu nasłuchującego!
- Jeśli usuniesz atrybut związany z obiektem nasłuchującym, obiekt nasłuchujący zostanie uszkodzony
- Aby wyeksportować konfigurację, należy usunąć obiekt nasłuchujący
- W większości przypadków można to naprawić, ponownie tworząc usunięty atrybut z tym samym kodem atrybutu
GuiEdit
GuiEdit –condition nie działa w następujących scenariuszach:
- Obsługujący przycisk ValueButton kliknięty w trybie widoku
- Obsługa TicketReservation kliknięta w trybie widoku
- EntityStateMail wysłany w trybie przeglądania
- Dodano komentarz WorklogHandler w trybie widoku
Zawsze dodawaj GuiEdit podczas wykonywania AlwaysFailDataCardAction, aby mieć pewność, że edycje integracji nie zostaną przez niego zablokowane i będą zawsze pierwszymi elementami nasłuchującymi w kolejności.
- Za pomocą interfejsu administratora można zobaczyć tylko nazwy i kolejność słuchaczy. Aby zbadać rzeczywiste funkcjonalności słuchaczy, należy wyeksportować całą konfigurację w formacie XML.
Kolejność słuchaczy
Utrzymuj słuchaczy w kolejności uruchamiania: najpierw uruchamiane są zapisy wstępne, a następnie zapisy końcowe.
Nazewnictwo
Zachowaj spójną metodę nazewnictwa!
- Rozważ nadanie im nazw przejrzystych i informacyjnych, na przykład obejmujących większość z nich:
- Presave lub postsave
- Numer zamówienia
- Krótki opis
- co to robi
- co/dlaczego to wyzwala
- Jeżeli wiele osób zarządza lub rozwija
- Data modyfikacji
- Może nawet inicjały lub skrót nazwy osoby, która dokonała modyfikacji
Przykłady:
- presave.Kopiuj zespół programistów, jeśli wartość jest pusta i wybrano usługę-09.10.2019-AA
- presave.SET Rozwiązano w ramach SLA_04052021_MK
- postsave.4. Ustaw odniesienia, jeśli przychodzące wiadomości e-mail zostały wygenerowane 04.05.2017
Słuchacze – bieżąca wartość prawda kontra bieżąca wartość fałsz
current_value false = Stara / Poprzednia wartość
current_value true = Nowa / Wartość bieżąca
<source_condition>
<value>
<attribute>
<code>status</code>
<current_value>false</current_value>
</attribute>
<operator>=</operator>
<compared_value>01 - New</compared_value>
</value>
</source_condition>
<source_condition>
<value>
<attribute>
<code>status</code>
<current_value>true</current_value>
</attribute>
<operator>=</operator>
<compared_value>02 - Solving</compared_value>
</value>
</source_condition>