Instrukcja hurtowego importowania autorów
Hurtowy import autorów jest przydatny w przypadku, gdy chcemy zaimportować większą liczbę rekordów do systemu bez potrzeby ręcznego wypełniania formularza dodawania nowego rekordu.
W tym celu należy wygenerować pojedynczy plik XML o schemacie zgodnym z polami przedstawionymi w pliku XSD. W poniższej instrukcji zawarto niezbędne informacje jak utworzyć takowy plik a następnie wgrać go do systemu.
Wygenerowanie pliku XML zgodnego z Omegą może zostać przeprowadzone w dowolnym języku programowania lub technologii.
Generowanie pliku XML
Główny schemat typu author wygląda następująco (ograniczony do podstawowych pól przydatnych przy imporcie):
<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ii.pw.edu.pl/lib" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1" xmlns:tns="http://ii.pw.edu.pl/lib" xmlns:fw="http://ii.pw.edu.pl/lib/framework" jaxb:extensionBindingPrefixes="fw" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<include schemaLocation="affiliation.xsd" />
<include schemaLocation="authorprofile.xsd" />
<include schemaLocation="term.xsd" />
<include schemaLocation="field.xsd" />
<include schemaLocation="authordiscipline.xsd"/>
<complexType name="author">
<element name="id" type="ID"></element>
<element name="recordStatus" minOccurs="0" default="completed">
<simpleType>
<restriction base="string">
<enumeration value="partial"></enumeration>
<enumeration value="completed"></enumeration>
<enumeration value="verified"></enumeration>
</restriction>
</simpleType>
</element>
<element name="active" type="boolean" />
<element name="status" fw:required="true" default="ZEWNETRZNY">
<simpleType>
<restriction base="string">
<enumeration value="PRACOWNIK"></enumeration>
<enumeration value="DOKTORANT"></enumeration>
<enumeration value="PRACOWNIK-DOKTORANT"></enumeration>
<enumeration value="DYPLOMANT"></enumeration>
<enumeration value="EMERYT"></enumeration>
<enumeration value="GOSC"></enumeration>
<enumeration value="ZEWNETRZNY"></enumeration>
<enumeration value="NIEZYJACY"></enumeration>
</restriction>
</simpleType>
</element>
<element name="belonging2N" type="boolean" />
<element name="name" type="string" fw:defaultFormatter="true" fw:required="true">
<simpleType>
<restriction base="string">
<minLength value="2"></minLength>
<maxLength value="1024"></maxLength>
</restriction>
</simpleType>
</element>
<element name="surname" type="string" fw:defaultFormatter="true" fw:required="true">
<annotation>
<appinfo>
<fw:unique required="false" />
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<minLength value="2"></minLength>
<maxLength value="1024"></maxLength>
</restriction>
</simpleType>
</element>
<element name="otherName" type="string" minOccurs="0" maxOccurs="unbounded" />
<element name="email" type="string">
<annotation>
<appinfo>
<fw:unique required="true" />
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<pattern value="^[A-Za-z0-9!#$%'*-/=?^_`{|}~\+]+(\.[A-Za-z0-9!#$%'*-/=?^_`{|}~\+]+)*@[A-Za-z0-9!#$%'*-/=?^_`{|}~\+]+(\.[A-Za-z0-9!#$%'*-/=?^_`{|}~\+]+)*(\.[A-Za-z]{2,})$" id="email"></pattern>
</restriction>
</simpleType>
</element>
<element name="otherEmail" type="string" minOccurs="0" maxOccurs="unbounded"></element>
<element ref="tns:affiliation" fw:defaultFormatter="true" tns:editable="false"></element>
<element type="tns:authordiscipline" name="activityDiscipline" minOccurs="0" maxOccurs="unbounded" tns:suggest="false" />
<element type="tns:term" name="staffGroup" tns:editable="false" />
<element ref="tns:authorprofile" fw:defaultFormatter="true" tns:selectable="false">
<annotation>
<appinfo>
<fw:maxNest value="1" />
</appinfo>
</annotation>
</element>
<element ref="tns:field" minOccurs="0" maxOccurs="unbounded"></element>
</complexType>
<element name="author" type="tns:author"></element>
</schema>
Należy zadbać o wypełnienie pól dla których atrybut required jest true.
Szczegółowe informacje o dostępnych polach w typie author
Pole | Opis | Przykładowa wartość |
---|---|---|
id | Wymagane do aktualizacji istniejących rekordów - dla nowych system automatycznie generuje. W przypadku autorów można wygenerować ID jako konkatenacja akronimu instytucji + ID z systemu kadrowego. | UAM0123456789 |
recordStatus | Ustala kompletność rekordu - domyślnie jest kompletny, jeśli brakuje pewnych danych na etapie importu można ustawić wartość partial. | completed |
active | Czy autor ma się pokazywać w wyszukiwarce pracowników Omegi (wersja publiczna) | false |
status | Aktualny status (status zatrudnienia) autora. Wartość ze słownika dostępnego w schemacie. | ZEWNETRZNY |
belonging2N | Czy autor jest zaliczany do N | true |
name | Imię (imiona) autora | Jan Amadeusz |
surname | Nazwisko autora | Nowak |
otherName | Inne formy imienia i nazwiska autora (opcjonalne, powtarzalne) | Jan Inny |
Adres email autora | author@example.com | |
otherEmail | Inne adresy email autora (opcjonalne, powtarzalne) | author@exemplary.com |
affiliation | Aktualna przypisana jednostka zatrudnienia autora (złożony obiekt typu affiliation). Należy podać wartość accronymPL jako ID rekordu afiilacji po którym system automatycznie dopasuje poprawny rekord podczas importu. Afiliacja musi wcześniej być zarejestrowana w Omedze w słowniku jednostek. | <affiliation><accronymPL>PW</accronymPL> |
activityDiscipline | Dyscypliny 2.0 autora wraz z procentami - obiekt złożony, powtarzalny typu authordiscipline. Dla pracowników naukowych niezbędny. Dyscyplina to numer z klasyfikacji rozszerzonej OECDX. | <activityDiscipline> <activityPercentage>100</activityPercentage> </activityDiscipline> |
staffGroup | Grupa zatrudnienia pracownika - obiekt dynamicznego słownika typu term. Podobnie jak w przypadku afiliacji wystarczy podać zagnieżdzony identyfikator - systemName. W zależności od instytucji grupy zatrudnienia mogą być różne. | <staffGroup> |
authorprofile | Złożony obiekt z dodatkowym opisem autora jako pracownika uczelni. | Opis z przykładami poniżej |
field | Dodatkowe pola typu klucz wartość opisujące autora. Prosty obiekt złożony typu field, powtarzalny. | <field> |
Szczegółowe informacje o dostępnych polach w typie authorprofile
Należy pamiętać, że obiekt typu authorprofile nie może być samodzielnym rekordem i zawsze musi być włączony w rekord typu author.
Pole | Opis | Przykładowa wartość |
---|---|---|
pesel | Nr PESEL danej osoby o długości 11 znaków | 00000000000 |
birthDate | Data urodzenia | 01-01-1980 |
extid | Lista identyfikatorów pracownika w systemach zewnętrznych. Pole złożone typu Termfield, powtarzalne. Typ pola musi być wcześniej zarejestrowany w Omedze. Aktualnie dostępne są typy o systemName równym:
| <extid> |
possitionPL | Nazwa stanowiska autora w języku polskim | Adiunkt |
possitionEN | Nazwa stanowiska autora w języku angielskim | Assistant Professor |
prefixPL | Tytuł autora w formie przedrostka w języku polskim. | mgr inż. |
prefixEN | Tytuł autora w formie przedrostka w języku angielskim. | PhD |
phone | Nr telefonu autora (publiczny - który może być umieszczony na stronie publicznej Omegi) | 000-000-000 |
descriptionPL | Bio autora w języku polski | Tekst bio autora. |
descriptionEN | Bio autora w języku angielskim | Author bio text. |
supervisor | Opiekun naukowy autora (przydatne dla doktorantów) - obiekt opiekuna powinien wcześniej istnieć w systemie. | <supervisor> |
language | Języki komunikacji, którymi autor się posługuje. | <language> |
Import w Omedze
Po zalogowaniu się w serwisie Omegowym należy rozwinąć panel redaktora i znaleźć Funkcję pomocniczą o nazwie Import (ostatnia na panelu).
Na ekranie importowania należy wybrać przycisk Prześlij plik XML i tym samym wgrać uprzednio wygenerowany. System będzie informował na bieżąco o postępie procesu importowania.
Po zaimportowaniu autorów można wejść w moduł Autorzy i pracownicy w Funkcjach pomocniczych i przefiltrować listę po dacie utworzenia aby łatwiej odnaleźć właśnie zaimportowane rekordy do systemu.