Sommario
Table of Contents |
---|
1 Introduzione
Il presente documento descrive il DB di frontiera IRIS IE (IRIS Import/Export) concentrandosi sugli aspetti che riguardano la procedura di sincronizzazione delle anagrafiche tra il modulo RM di IRIS e Sistemi Informativi in uso presso il cliente.
Ricordiamo comunque il DB di frontiera può venire utilizzato non solo ai fini della sincronizzazione delle anagrafiche ma ogniqualvolta ogni qual volta ci sia la necessità di condividere delle informazioni da moduli di IRIS verso Sistemi Informativi del cliente e viceversa.
...
Questa tabella raccoglie le informazioni fondamentali (e OBBLIGATORIE) per una persona.
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBLIGATORIO | VINCOLI |
ID | Identificativo UNIVOCO della persona nei SI sorgenti |
SI | Questo è l’identificativo che verrà utilizzato per effettuare le operazioni di mappatura tra SI sorgenti e IRIS. | |
FIRST_NAME |
Nome |
SI |
LAST_NAME | Cognome |
SI |
ERROR | Codice di errore |
NO | Usato per check di validità |
2.2 I_RM_PERSON_DATA
Questa tabella raccoglie informazioni aggiuntive (NON OBBLIGATORIE) sulle persone, di seguito elencate.
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE O FORMATO | NOTE |
birthDate | Data di nascita | XML DateTime | Il format DateTime è specificato nella seguente forma: YYYY-MM-DDThh:mm:ss dove: YYYY indica l'anno Tutte le componenti sono obbligatorie |
birthCountryId | Identificativo nazione di nascita | ISO_3166-1 Alpha-2 | |
birthPlaceId | Identificativo città/paese di nascita | CODICE CATASTALE | Nel caso di città/paesi italiani deve essere utilizzato il Codice Catastale. |
birthPlaceString | Nome del paese/città di nascita |
Questo campo, alternativo a birthPlaceId, deve essere usato quando non è utilizzabile un identificativo | |||
gender | Sesso | M/F | Gli unici valori consentiti sono M o F |
codiceFiscale | Codice fiscale |
Il codice fiscale DEVE essere valido | |||
idAb | Identificativo UGOV (ID_AB) | A SOLO USO CINECA |
La tabella prevede le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBL | VINCOLI |
FK_PERSON | Chiave esterna verso I_RM_PERSON |
SI | Questo è l’identificativo che verrà utilizzato per effettuare le operazioni di mappatura tra SI sorgenti e IRIS. |
DISCRIMINATOR |
Tipologia di informazione aggiuntiva | I valori accettabili per questo campo sono uno di quelli elencati lista precedente: - birthDate |
- idAb | SI |
STRING_VALUE | Valore |
SI |
ERROR | Codice di errore |
NO | Usato per check di validità |
A titolo esemplificativo considerare il seguente esempio.
Supponiamo di avere già caricato la persona MARIO ROSSI di identificativo XYZ nella tabella I_RM_PERSON.
ID | FIRST_NAME | LAST_NAME |
XYZ | MARIO | ROSSI |
Supponiamo anche di volere caricare il codice fiscale MRORSS70B25A691H e la data di nascita 15/10/1970. Dovranno essere inseriti due record distinti nella tabella I_RM_PERSON_DATA
FK_PERSON | DISCRIMINATOR | STRING_VALUE |
XYZ | codiceFiscale | MRORSS70B25A691H |
XYZ | birthDate | 1970-10-15T00:00:00 |
2.3 I_RM_USER
Questa tabella raccoglie informazioni sugli utenti.
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBLIGATORIO | VINCOLI |
USERNAME | Username utilizzato per autenticazione |
SI | UNIVOCITA’ dello username | ||
LDAP_DN |
LDAP Distinguished Name nel caso di utilizzo di autenticazione LDAP |
NO |
FK_PERSON | Chiave esterna verso I_RM_PERSON |
SI |
ERROR | Codice di errore |
NO | Usato per check di validità |
Non viene conservata nessuna password perché si considera prerequisito che il processo di autenticazione venga effettuata su sistemi del cliente (LDAP, IDP, …).
2.4 I_RM_ORG_UNIT
Questa tabella raccoglie informazioni sulle unità organizzative fisiche (come uffici, dipartimenti) e logiche (come ruoli, qualifiche, SSD, Aree ministeriali, …eccetera).
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBL | VINCOLI |
ID | Identificativo UNIVOCO dell’unità organizzativa nei SI sorgenti. |
SI | Questo è l’identificativo che verrà utilizzato per effettuare le operazioni di mappatura tra SI sorgenti e IRIS | |
DESCRIPTION |
Denominazione dell’unità organizzativa |
SI |
START_DATE | Data di attivazione dell’unità organizzativa |
SI
SI | |
END_DATE | Data di cessazione dell’unità organizzativa |
NO |
FK_ORG_UNIT_TYPE | Chiave esterna verso E_RM_ORG_UNIT_TYPE |
SI | Ogni unità organizzativa DEVE essere mappata sulle tipologie di unità di IRIS | |
ERROR | Codice di errore |
NO | Usato per check di validità |
2.5 E_RM_ORG_UNIT_TYPE
Questa tabella viene fornita in sola lettura (notare il prefisso “E_”) ed elenca le tipologie di unità organizzative presenti in IRIS. Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBL | VINCOLI |
ID | Identificativo UNIVOCO della tipologia di unità organizzativa in IRIS |
SI |
DESCRIPTION |
Nome breve della tipologia di unità organizzativa |
SI |
Di tutte le tipologie di unità organizzativa presenti nella tabella, tipicamente vengono usate:
...
All’interno di una gerarchia NON POSSONO essere presenti strutture di una stessa tipologia: unica eccezione è la tipologia "other".
Ad esempio, supponendo che X e Y siano due strutture di tipologia A, la gerarchia X>>Z non è contemplata.
...
Questa tabella raccoglie i legami tra unità organizzative.
Al momento attuale sono gestiti solo i legami gerarchici.
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBL | VINCOLI |
FK_ORG_UNIT_1 | Chiave esterna verso I_RM_ORG_UNIT |
SI |
DISCRIMINATOR | Tipo di relazione | L’unico valore accettabile è: | SI |
ERROR | Codice di errore |
NO | Usato per check di validità |
Considerare, a titolo di esempio, il seguente record.
FK_ORG_UNIT_1 | DISCRIMINATOR | FK_ORG_UNIT_2 |
XXX | Parent | YYY |
Questo significa che l’unità organizzativa di ID XXX è gerarchicamente padre dell’unità di ID YYY
...
Questa tabella raccoglie centralmente gli indirizzi di unità organizzative (I_RM_ORG_UNIT) e di persone (I_RM_PERSON).
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBLIGATORIO | VINCOLI |
ID | Identificativo univoco |
SI |
DISCRIMINATOR | Tipologia di indirizzo | Gli unici valori accettabili sono: | SI |
COUNTRY_ID | Identificativo nazione | ISO_3166-1 Alpha-2 | SI |
PLACE_ID | Identificativo del paese/città | Codice catastale | NO | Deve essere popolato alternativamente a PLACE_STRING. |
PLACE_STRING | Nome del paese/città |
NO | Deve essere popolato alternativamente a PLACE_ID. Da usare per i paesi/città non italiani | ||
DESCRIPTION | Indirizzo completo di via/piazza e numero civico |
SI |
POSTAL_CODE | Codice postale |
NO |
PRINCIPAL | Flag indirizzo principale per tipologia (discriminator) | 1 = indirizzo principale | SI |
FK_ORG_UNIT | Chiave esterna verso I_RM_ORG_UNIT |
NO | Deve essere popolato alternativamente a FK_PERSON | |
FK_PERSON | Chiave esterna verso I_RM_PERSON |
NO | Deve essere popolato alternativamente a FK_ORG_UNIT | ||
ERROR | Codice di errore |
NO | Usato per check di validità |
Si precisa che
- uno ed uno solo tra PLACE_ID e PLACE_STRING deve essere popolato.
- uno ed uno solo tra FK_ORG_UNIT e FK_PERSON deve essere popolato.
...
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBLIGATORIO | VINCOLI |
ID | Identificativo univoco |
SI |
DISCRIMINATOR | Tipologia di contatto | Gli unici valori accettabili sono: | SI |
DESCRIPTION | Contatto |
SI |
PRINCIPAL | Flag contatto principale per tipologia (discriminator) | 1 = contatto principale | SI |
FK_ORG_UNIT | Chiave esterna verso I_RM_ORG_UNIT |
NO | Deve essere popolato alternativamente a FK_PERSON | ||
FK_PERSON | Chiave esterna verso I_RM_PERSON |
NO | Deve essere popolato alternativamente a FK_ORG_UNIT | |
ERROR | Codice di errore |
NO | Usato per check di validità |
Si precisa che uno ed uno solo tra FK_ORG_UNIT e FK_PERSON deve essere popolato
...
Questa tabella raccoglie tutte le informazioni di carriera delle persone.
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | CLASSIFICAZIONE | OBBLIGATORIO | VINCOLI |
FK_PERSON | Chiave esterna verso I_RM_PERSON |
SI | Cfr §2.9.1 | |
FK_POSITION_TYPE | Chiave esterna verso I_RM_ORG_UNIT |
SI | Cfr §2.9.2 | |
FK_ORG_UNIT | Chiave esterna verso I_RM_ORG_UNIT |
SI | Cfr §2.9.3 | |
START_DATE | Data inizio validità |
SI | Cfr §2.9.4 | |
END_DATE | Data fine validità |
NO | Cfr §2.9.5 | |
PRIORITY | Peso del rapporto di lavoro |
NO | Cfr §2.9.6 | ||
ERROR | Codice di errore |
NO | Usato per check di validità | ||
IRIS_GENERATED | Flag |
NO | Cfr §2.9.7 |
2.9.1 FK_PERSON
In questa colonna devono essere specificati ID di persone (presenti in I_RM_PERSON).
...
Queste tipologie (denominate qualifiche, profili, titoli) sono strettamente legate ai ruoli: forniscono una classificazione più fine fatta a partire dai ruoli. Ad esempio per il ruolo “Ricercatore” come qualifiche potrebbero essere associate “Ricercatore Confermato”, “Ricercatore a tempo determinato” , …e così via.
Le qualifiche devono rispettare i seguenti vincoli di coerenza:
...
Il vincolo sopra riportato deve essere replicato per gli altri ruoli (supportRole, functionRole, teachingRole).
2.9.4 START_DATE
In questa colonna DEVE essere specificata la data (non nulla) di inizio validità della tripla (FK_PERSON, FK_POSITION_TYPE, FK_ORG_UNIT).
2.9.5 END_DATE
In questa colonna può essere specificata la data di fine validità della tripla (FK_PERSON, FK_POSITION_TYPE, FK_ORG_UNIT).
Se la colonna non è valorizzata allora si intendono correntemente valide le informazioni fornite dalla tripla.
...
Supporre di aver caricato in I_RM_PERSON la seguenti riga:
ID | FIRST_NAME | LAST_NAME |
XYZ | MARIO | ROSSI |
Supporre di aver caricato in I_RM_ORG_UNIT le seguenti righe:
ID | DESCRIPTION | FK_ORG_UNIT_TYPE |
1544 | Dottorando | 1 |
1371 | Tecnico Amministrativo | 101 |
5121 | Area Tecnica | 102 |
5122 | Area Amministrativa | 102 |
DIP22 | Dipartimento di Fisica | 51 |
DIP23 | Dipartimento di Matematica | 51 |
DOT-032888 | 032888 | 5 |
TA-A52454 | A52454 | 5 |
Considerato che in E_ORG_UNIT_TYPE sono presenti le seguenti righe:
ID | DESCRIPTION |
1 | researchRole |
101 | supportRole |
2 | researchTitle |
102 | supportTitle |
5 | identificationNumber |
51 | department |
Possiamo inserire i seguenti record in I_RM_POSITION:
FK_PERSON | FK_POSITION_TYPE | FK_ORG_UNIT | START_DATE | END_DATE | PRIORITY |
XYZ | 1544 | DIP22 | 15/01/2015 | 15/01/2016 | 5 |
XYZ | 1544 | DOT-032888 | 15/01/2015 | 15/01/2016 | 5 |
XYZ | 1371 | 5121 | 01/01/2015 |
2 | |||
XYZ | 1371 | DIP23 | 30/04/2015 |
2 | |||
XYZ | 1371 | TA-A52454 | 01/01/2015 |
2 | |||||
XYZ | 1371 | 5122 | 01/01/2014 | 31/12/2014 | 2 |
XYZ | 1371 | DIP23 | 01/01/2014 | 31/12/2014 | 2 |
XYZ | 1371 | TA-A52454 | 01/01/2014 | 31/12/2014 | 2 |
In linguaggio naturale, Mario Rossi ha:
...
Questa tabella è funzionale alla procedura di sincronizzazione: il suo utilizzo viene descritto in dettaglio nel paragrafo successivo.
Sono previste le seguenti colonne:
NOME CAMPO | DESCRIZIONE | OBBLIGATORIO |
NAME | Nome univoco del lock | SI |
LAST_ACQUIRE_ACTOR |
Stringa dell’ultimo ”attore” che ha acquisito il lock | SI | |
LAST_ACQUIRE_TIMESTAMP | Timestamp di ultima acquisizione del lock | SI |
LAST_RELEASE_TIMESTAMP | Timestamp di ultimo rilascio del lock | SI |
ACQUIRED | Flag indicante lo stato di acquisizione del lock (0/1) | SI |
3 Procedura di sincronizzazione
...
La procedura di sincronizzazione procede con il caricamento dei SOLI dati che hanno superato i check di validità.
Al termine della procedura, qualora vengano rilevati dei record che non superano i check di validità, verrà inviata una mail ai referenti SI dei Sistemi Informativi del cliente con un file Excel che riporta il dettaglio dei record errati.
...
I_RM_PERSON_DATA: INVALID DISCRIMINATOR
E' È stato individuato un record con un DISCRIMINATOR NON VALIDO. Gli unici discriminator validi sono:
...
I_RM_PERSON_DATA: NULL VALUE
E' È stato individuato un record con un STRING_VALUE nullo
I_RM_PERSON_DATA: INVALID BIRTH_DATE
E' È stato individuato un record con una data che non rispetta il formato DateTime (YYYY-MM-DDThh:mm:ss)
I_RM_PERSON_DATA: INVALID BIRTH_COUNTRY_ID
E' È stato individuato un record con una codice non recuperabile da ISO_3166-1 Alpha-2
I_RM_PERSON_DATA: INVALID BIRTH_PLACE_ID
E' È stato individuato un record con una codice catastale non valido
I_RM_PERSON_DATA: INVALID GENDER E'
È stato individuato un record con sesso non valido
I_RM_PERSON_DATA: INVALID CODICE_FISCALE
E' È stato individuato un record con codice fiscale non valido
...
I_RM_ORG_UNIT: NULL FK_ORG_UNIT_TYPE
E' È stato individuato un record con FK_ORG_UNIT_TYPE nullo
I_RM_ORG_UNIT: NULL DESCRIPTION
E' È stato individuato un record con DESCRIPTION nulla
I_RM_ORG_UNIT: NULL START_DATE
E' stato È stato individuato un record con START_DATE nulla
I_RM_ORG_UNIT: INCOMPATIBLE DATE
E' stato È stato individuato un record con START_DATE e END_DATE non consistenti
I_RM_ORG_UNIT_LINK: INVALID DISCRIMINATOR
E' È stato individuato un record con DISCRIMINATOR non valido. L'unico valido è 'parent'
I_RM_ADDRESS: INVALID DISCRIMINATOR
E' stato È stato individuato un record con DISCRIMINATOR non valido. L'unico valido è 'office'
I_RM_ADDRESS: INVALID COUNTRY_ID
E' stato È stato individuato un record con una codice non recuperabile da ISO_3166-1 Alpha-2
I_RM_ADDRESS: INVALID PLACE_ID OR PLACE_STRING
E' È stato individuato un record che presenta entrambi popolati o entrambi nulli i campi PLACE_ID e PLACE_STRING
I_RM_ADDRESS: INVALID PLACE_ID
E' stato È stato individuato un record con una codice catastale non valido
I_RM_ADDRESS: NULL DESCRIPTION
E' stato È stato individuato un record con DESCRIPTION nulla
I_RM_ADDRESS: INVALID PRINCIPAL
E' stato È stato individuato un record con PRINCIPAL nullo o con valore diverso da 0 e 1
I_RM_ADDRESS: INVALID FK_ORG_UNIT OR FK_PERSON
E' stato È stato individuato un record che presenta entrambi popolati o entrambi nulli i campi FK_ORG_UNIT e FK_PERSON
I_RM_CONTACT: INVALID DISCRIMINATOR
E' stato È stato individuato un record con un DISCRIMINATOR NON VALIDO. Gli unici discriminator validi sono:
...
I_RM_CONTACT: INVALID DESCRIPTION
E' stato È stato individuato un record con DESCRIPTION nulla
I_RM_CONTACT: INVALID MAIL FORMAT
E' stato È stato individuato un record con indirizzo mail non valido
I_RM_CONTACT: INVALID PRINCIPAL
E' stato È stato individuato un record con PRINCIPAL nullo o con valore diverso da 0 e 1
I_RM_CONTACT: INVALID FK_ORG_UNIT OR FK_PERSON
E' stato È stato individuato un record che presenta entrambi popolati o entrambi nulli i campi FK_ORG_UNIT e FK_PERSON
I_RM_POSITION: INVALID FK_POSITION_TYPE
E' stato È stato individuato un record che presenta il campo FK_POSITION_TYPE che punta ad una ORG_UNIT non valida.
Le tipologie di ORG_UNIT valide per questo campo sono SOLO:
...
I_RM_POSITION: INVALID FK_ORG_UNIT
E' È stato individuato un record che presenta il campo FK_ORG_UNIT che punta ad una ORG_UNIT non valida.
Le tipologie di ORG_UNIT valide per questo campo sono tutte quelle che NON RICADONO in:
...
I_RM_POSITION: INVALID FK_ORG_UNIT_FOR_FK_POSITION_TYPE
E' È stato individuato un record che presenta dati non validi per i campi FK_ORG_UNIT e FK_POSITION_TYPE
Per maggiori dettagli fare riferimento al §2.9.3
I_RM_POSITION: INVALID DATE
E' È stato individuato un record che presenta START_DATE successiva alla END_DATE
I_RM_ORG_UNIT_LINK: TOO_MANY_LINKS
E' È stata individuata una gerarchia troppo profonda. Il numero massimo di livelli consentiti è 5.
Il caricamento della gerarchia è completamente disabilitato.
...
I_RM_ORG_UNIT_LINK: ORG_UNIT_TYPE NOT UNIQUE DETECTED IN HIERARCHY
E’ È stata rilevata una gerarchia all’interno della quale ci sono più volte strutture della stessa tipologia.
Questo utilizzo è consentito SOLO per la tipologia other.
Il caricamento della gerarchia è completamente disabilitato.
...
I_RM_USER: USERNAME COLLISION BETWEEN SYSTEM MANAGED AND USER MANAGED
E' È stato rilevato un tentativo di caricamento di uno username già presente in IRIS che è stato caricato manualmente da un operatore.
Procedere all'eliminazione in IRIS dello username in questione dopo avere eventualmente salvato il profilo dell'utente.
I_RM_USER: USERNAME admin NOT ALLOWED
E' È stato rilevato un tentativo di caricamento dello username admin: non è possibile caricare questo username.
...