Synchronizacja pracowników

 

Krótki Opis

Do synchronizacji pracowników został stworzony dedykowany do tego mikroserwis, dalej nazywany author-service. Udostępnia on możliwość zapisania do Omegi obiektów typu Author przy wykorzystaniu pojedynczej encji Author, jak i przez podanie URLa z którego zostanie zaciągnięta cała kolekcja Author'ów

Opis API

Zapis pojedynczej encji z wykorzystaniem RESTowego API

Zapisanieobiektu typu Author do Omegi odbywa się poprzez przesłanie takiego obiektu (w formacie XML) metodą POST, która jest dostępna pod ścieżką:
<omega-domain-name>:8080/author-service/rest/authoraccesspoint/save
Wystawiony endpoint konsumuje na razie tylko format XML
Przykładowe body do tej metody:

<ns2:author xmlns:ns2="http://ii.pw.edu.pl/lib"> <recordStatus>completed</recordStatus> <active>false</active> <status>ZEWNETRZNY</status> <belonging2N>false</belonging2N> <disciplinesApprovedByAuthor>false</disciplinesApprovedByAuthor> <ns2:authorprofile> <hindex>0</hindex> </ns2:authorprofile> <profilepreferences/> <ns2:authormirprofile/> </ns2:author>
Testowy Scenariusz użycia

Wysłanie żądania (request) np. z aplikacji Postman, pod adres <omega-domain-name>:8080/author-service/rest/authoraccesspoint/save, zawierającego w treści (body) encję Author, którego chcemy zapisać do Omegi (w XMLu).

 

Po kliknięciu przycisku “send” obiekt zostanie wysłany i zapisany do Omegi. Możemy go teraz wyszukać w “Funkcje pomocnicze”-> “Autorzy i pracownicy”. Wysłany autor nie miał przypisanej jednostki więc odznaczamy wszystkie jednostki przy wyszukiwaniu.

Wybieramy zaimportowanego autora (tutaj John Doe) i możemy sprawdzić czy zapisał się poprawnie.

Pobranie całej kolekcji author'ów z danego endpointa

Pobranie całej kolekcji Author'ów jest możliwe poprzez wysłanie URLa, z którego można pobrać taki zbiór, do author-service. Mikroserwis nasłuchuje na taki URL pod nazwą topic’a: GET_AUTHORS_BY_URL_TOPIC_NAME.

W systemie Omega tworzone jest zadanie, które takie żądanie wyśle do author-service. W Omedze wchodzimy: panel redaktora → Funkcje Administracyjne → Scheduler. Poniżej przykładowa treść zadania w JavaScript:

org.jboss.seam.contexts.Lifecycle.beginCall(); var messagingService = component('messagingService'); messagingService.publishOnTopic( 'GET_AUTHORS_BY_URI_TOPIC_NAME', 'http://some-external-system/getAuthors'); org.jboss.seam.contexts.Lifecycle.endCall();

Poniżej format odpowiedzi z podanego URLa ( w przykładzie: http://some-external-system/getAuthors ) w XML lub JSONie. Przykładowy spodziewany XML

<collection xmlns:ns2="http://ii.pw.edu.pl/lib"> <ns2:author> <recordStatus>completed</recordStatus> <active>false</active> <status>ZEWNETRZNY</status> <belonging2N>false</belonging2N> <disciplinesApprovedByAuthor>false</disciplinesApprovedByAuthor> <ns2:authorprofile> <hindex>0</hindex> </ns2:authorprofile> <profilepreferences/> <ns2:authormirprofile/> </ns2:author> </collection>
Testowy Scenariusz użycia

wchodzimy do “Panel redaktora”

Wybieramy “Funkcje administracyjne“ i potem “Scheduler”

Możemy tutaj dodać nowe zadanie (task) klikając przycisk “Nowy”

Uzupełniamy tutaj pola

  • “nazwa”

  • “zawartość”- gdzie wpisujemy kod w JavaScript

  • “harmonogram” - wpisujemy wyrażenie cron (można skorzystać do tego z http://www.cronmaker.com)

  • zaznaczamy checkbox “Aktywny”

Po skończeniu edycji klikamy “sprawdź poprawność” a następnie jeśli wszystko się zgadza, klikamy “zapisz”

Aktywnego taska możemy też wykonać manualnie klikając strzałkę przypisaną do taska

Wykonanie tego zadania powinno zaciągnąć wszystkich autorów dostępnych pod podanym URLem do Omegi.

Dla poniższych autorów wystawionych pod podanym w tasku URLem:

w Omega pojawili się odpowiadający im autorzy: