Dystrybucja słowników czasopism - instrukcja dla redaktorów
Informacje ogólne na temat działania skryptu:
Skrypt journalDistributionFromXmlFiles
umożliwia wgranie słownika Czasopisma i Serie z Centralnej bazy czasopism (w całości lub w części) na środowisko klienckie z uwzględnieniem następujących założeń:
Założenia:
Dane źródłowe (rekordy czasopism) zapisane w pliku XML.
Identyfikatory zewnętrzne takie jak Identyfikator
MNiSWid
oraz identyfikatorPBN_mongoID
są nadpisywane podczas procesu dystrybucji.Pozostałe identyfikatory np.
ScopusID
,WoSID
uzupełniane tylko jeżeli są puste (jeśli lokalnie będzie uzupełnione, a w bazie centralnej nie - to nie zostanie to nadpisane).
Przykłady:na środowisku lokalnym mamy np. identyfikator
ScopusId
inny niż w bazie centralnej → scheduler nie nadpisze wartości i nic nie zmieniw bazie centralnej mamy
ScopusId
natomiast nie mamy na środowisku lokalnym → scheduler uzupełni wartość na środowisku lokalnym wartością z Centralnej bazy czasopismmamy inne identyfikatory
Identyfikator MNiSW
iPBN MongoId
na środowisku lokalnym niż w bazie centralnej → zostanie podmienione i nadpisane jak w bazie centralnej, aby była zgodność
Rekordy, które zostały scalone w Centralnej bazie czasopism ze względu na duplikaty, podczas procesu dystrybucji są również scalane na środowiskach lokalnych.
Przykład:jeśli w rekordzie czasopisma z bazy centralnej znajduje się pole
field/merged_entity_id
wyszukiwane są one na środowisku lokalnym poprzez
journalseries/id = field/merged_entity_id
jeśli istnieją uruchomia się scalanie rekordów czasopism w bazie lokalnej i w publikacjach
usunięty (miękko) zostaje rekord, którego ID znajduje się w
field/merged_entity_id
W przypadku scalania należy pamiętać, aby w shedulerze ustawić parametr DELETE_MERGE_JOURNALS na true
Konfiguracja
Sekcja konfiguracyjna w skrypcie wygląda następująco:
/*-----CONFIGURATION-----*/
var XMLS_PATH = "/data/distribution/journalseries"
var PARTS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
var IDS = [];
var DELETE_MERGED_JOURNALS = false;
/*-----------------------*/
Opis parametrów konfiguracyjnych
XMLS_PATH [String]
ścieżka, w której znajdują się wgrane pliki XML na środowisku klienta
PARTS [Array<Integer>]
nazwy plików XML znajdujące się w zdefiniowanej powyżej ścieżce; zmiana tego parametru pozwala na częściową dystrybucję; aktualnie wyeksportowanie całego słownika czasopism z Centralnej bazy czasopism skutkuje utworzeniem ok. 14 plików XML
IDS [Array<String>]
parametr pozwalający na migrację jedynie rekordów o podanych identyfikatorach, wartości podajemy w '…' oddzielone przecinkami, np. var IDS = ['WUT4', 'WUT2', 'WUT0'];
DELETE_MERGED_JOURNALS [Boolean]
parametr decydujący o tym, czy skrypt powinien usuwać także czasopisma zmerdżowane (znajdujące się w polu field['merged_entity_id']
)
Rozpoczęcie dystrybucji:
Dystrybucję możemy przeprowadzić samodzielnie na dwa sposoby:
Aktualizacja słownika czasopism z pliku XML - plik zapisany na serwerze
wgranie rozpakowanych plików XML na środowisko klienta do odpowiedniego katalogu (eksport ze środowiska https://omega-uat.ii.pw.edu.pl/ , Pełny XML ZIP, pliki po ~100MB max.) - wymagana pomoc osób z uprawnieniami do logowania do serwera, na którym zainstalowana jest Omega
upewniamy się, że na środowisku lokalnym w Funkcje administracyjne → Scheduler znajduje się zadanie
journalDistributionFromXmlFiles
(dla Omegi w wersji >3.6.0
)(opcjonalnie) możemy wskazać, które konkretnie czasopisma (rekordy) mają być aktualizowane z całej paczki XML, wówczas należy wpisać ID rekordów w parametrze
IDS
(jeżeli kilka to wklejamy po przecinku i w pojedynczym apostrofie)var IDS = ['WUT8f29626d1af74aefb1e236bce37f77e5', 'WUT8f29626d1af74aefb1e236bce37f77e5'];
lub pozostawić pusty parametrvar IDS = [];
sprawdzamy poprawność, zapisujemy, przeładowujemy schedulery i uruchamiamy zadanie
po zakończeniu należy zweryfikować logi znajdujące się w schedulerze
(opcjonalnie) Przed uruchomieniem migracji można wyłączyć zadania powodujących nadmierne obciążenie systemu (generujących dużo zapisów np. consistencyFix
)
Aktualizacja wybranych czasopism z pliku XML - plik dołączony do zadania
wyszukujemy rekordy czasopism na UAT i eksportujemy do pliku XML
dodajemy wygenerowany plik XML do zadania
WAŻNE! parametry
PARTS
orazIDS
powinny być pustesprawdzamy poprawność, zapisujemy, przeładowujemy schedulery oraz uruchamiamy zadanie
po zakończeniu należy zweryfikować logi znajdujące się w schedulerze
Możemy skonfigurować dwa osobne zadania dla aktualizacji całej bazy i wybranych rekordów. Najprostszy sposób to: wykonać kopię oryginalnego zadania journalDistributionFromXmlFiles
, zmienić nazwę oraz odpowiednio zmodyfikować parametry.
Śledzenie postępu, weryfikacja działania
Przykładowe logi podczas uruchomienia zadania cyklicznego:
zaktualizowano jedno czasopismo z załączonego pliku XML (w przypadku aktualizacji wszystkich czasopism czy pojedynczych ID log z uruchomionego zadania wygląda tak samo)
zostało zaktualizowane jedno czasopismo, a usunięte dwa duplikaty tego czasopisma (nastąpił proces scalania)