PREMESSA

In questo documento è illustrata la procedura di allineamento docenti in Esse3 da Ugov/CSA o altra fonte esterna e la procedura di allineamento personale d'ateneo (PTA)

Nome procedura: IMP_EXP.p_allinea_docenti_ext

Le anagrafiche dei docenti possono essere censite direttamente dalla maschera DOCENTI di Esse3, ma possono essere allineati (inseriti/aggiornati) da Ugov, qualora per l'ateneo sia Ugov ad essere il sistema master per le anagrafiche docenti. 
Il processo di allineamento può essere eseguito in diverse modalità:

  • ESSE3: esecuzione manuale da maschera ALLINEA DOCENTI DA PROCEDURA EXT
  • ESSE3: configurando il processo schedulato da maschera ELABORAZIONI BATCH : processo ALLINEA_DOCENTI per mantenere sempre allineato il sistema
  • UGOV Didattica: lanciando l' Esportazione della Logistica

In tutti i casi la procedura ha la stessa logica che definisce se e quali docenti saranno allineati, in che condizioni e quali dati saranno oggetto di allineamento.

ALLINEA DOCENTI: PROCESSO

Vista logica che definisce il recupero dei dati anagrafici

dei docenti: V_IMP_DOCENTI_EXT

La vista racchiude tutte le condizioni che i dati dei docenti dovranno soddisfare per essere allineati e recupera i docenti esposti da diverse fonti.

FONTE DATI

In particolare la vista V_IMP_DOCENTI_EXT (di ESSE3) recupera i dati da UGOV Risorse Umane, da UGOV Didattica, da una tabella di Esse3 dove l'ateneo può inserire specificamente i docenti che intende allineare. Queste fonti dati possiamo racchiuderle nelle seguenti viste che ugov espone:

  • V_XM_RU_PERSONALE_S3 - Vista UGOV del personale (docente) attivo - (con ruolo definito come docente - V_XM_RU_PERSONALE_S3.fl_docente=1)
  • V_XM_RU_PERSONALE_CESSATO_S3  - Vista UGOV del personale (docente) cessato - (con ruolo definito come docente - V_XM_RU_PERSONALE_CESSATO_S3.fl_docente=1)
  • V_XM_DI_DOC_S3  - Vista UGOV -Didattica che espone i dati delle coperture
  • EPI_IMP_DOCENTI  - Tabella Esse3 a disposizione dell'ateneo per inserimento manuale dei docenti da allineare (solo con par_conf  BI_IMP_DOC_ALLINEA_DA_EPI_IMP_DOCENTI  abilitato)

NB: Gli unici criteri di filtro che ESSE3 applica alle fonti esterne sono il fl_docente e la "mappatura" dei ruoli di esse3 con i ruoli esposti dalle viste "XM".

Dalla versione 18.02.00.00 di Esse3 la priorità sul tipo record è stata resa configurabile a DB, nella tabella EPI_DECODE (filtrando per CTX_COD = 'ALLINEA_DOCENTI').

A standard le nuove configurazioni riflettono la priorità già esistente precedentemente (riconfigurabile così sullo specifico caso/ateneo):

Atenei con UGOV Didattica (SIADI)


CTX_COD

CODE_IN

CODE_OUT

ALLINEA_DOCENTIAC0
ALLINEA_DOCENTIATTIVO1
ALLINEA_DOCENTIFUTURI2
ALLINEA_DOCENTISIADI3
ALLINEA_DOCENTICESSATO4
ALLINEA_DOCENTIEPI0


Atenei con GDA

Configurazione corretta per atenei che non ha Ugov Didattica (SIADI) ma ha GDA:

La tabella EPI_IMP_DOCENTI viene popolata da GDA con dati "minimi" (vedi parametro BI_IMP_LOG_AGGIORNA_ANA_DOCENTI) dei docenti e il record dalla fonte EPI viene considerato solo quando è l'unica fonte in cui il docente viene esposto dalla V_IMP_DOCENTI_EXT

CTX_COD

CODE_IN

CODE_OUT

ALLINEA_DOCENTIAC0
ALLINEA_DOCENTIATTIVO1
ALLINEA_DOCENTIFUTURI2
ALLINEA_DOCENTICESSATO3
ALLINEA_DOCENTIEPI4
ALLINEA_DOCENTISIADI0

Il valore code_out = 0 esclude la fonte

IMPORTANTE: il parametro BI_IMP_LOG_AGGIORNA_ANA_DOCENTI deve essere valorizzato a 0
Preserva le anagrafiche docenti già presenti in esse3 non importando il dato dalla EPI_IMP_DOCENTI. 

Indica se aggiornare sempre i dati anagrafici del docente in ESSE3 oppure inserire solo i nuovi docenti in ESSE3:
0 = inserisce nuovi docenti in ESSE3, ma non aggiorna mai i dati anagrafici di docenti già presenti in ESSE3. 
1 = aggiorna sempre i dati anagrafici del docente in ESSE3 (questa operazione rallenta l´import logistica, infatti per ogni docente proveniente da U-GOV Didattica viene lanciato l´allineamento del docente con U-GOV). 
Selezionando 0 l´import logistica è più veloce e se si desidera aggiornare i dati anagrafici dei docenti si può schedulare l´allineamento docenti in un altro momento. 

BI_IMP_DOC_ALLINEA_DA_EPI_IMP_DOCENTI =1 ("Se impostato a 1 vengono anche recuperati i docenti dalla tabella EPI_IMP_DOCENTI con tipo record EPI.
In VAL_ALFA è possibile inserire un ruolo docente da salvaguardare ovvero se il docenti in ESSE3 ha tale ruolo e risulta attivo allora non viene mai modificato dai dati provenienti da U-Gov.")


N.B.: oltre ad indicare la priorità, tramite le medesime configurazioni è possibile indicare anche gli eventuali tipi record che si vogliono escludere impostando un valore uguale o minore di zero.


Inoltre dalla versione 18.09.03.00 di Esse3 la procedura Allinea Docenti permette di allineare i docenti anche dalle solo Anagrafiche Comuni di UGov (fonte dati AC) secondo la seguente modalità:

  • la fonte dati AC si abilita indicando un valore > 0 sulla tabella EPI_DECODE (campo CODE_OUT), record avente CTX_COD = 'ALLINEA_DOCENTI' e CODE_IN = 'AC', altrimenti si intende disabilitata
  • rimane identica la logica relativa alle altre fonti dati (RU attivo, RU cessato, SIA-DI, EPI), descritta nel seguito
  • come ultima operazione in coda a tutto, se la fonte AC e' abilitata, vengono considerati tutti i docenti presenti in Esse3 per i quali esiste un record esposto da V_IE_AC_PF_BASE con lo stesso Codice Fiscale (COD_FIS) e che non sono stati estratti in precedenza da una delle altre fonti dati; per ognuno di questi:
    • si confrontano ID_AB e dati anagrafici di base (cognome, nome, sesso, data di nascita e comune di nascita)
    • se risulta qualche dato differente viene aggiornato il record di anagrafica docente su Esse3 con i dati presi da AC.


CONDIZIONE SUI RUOLI 

La principale condizione di recupero si basa sul ruolo del docente: verifica il ruolo con cui il docente viene esposto dalle varie viste.

In Esse3 esiste una tabella di definizione dei ruoli (RUOLI DOC) la cui maschera client è la RUOLI DOCENTE, in cui sono definiti tutti i ruoli di esse3 ed eventualmente la mappatura con i relativi ruoli ugov/csa.
Questa mappatura dei ruoli è la condizione principale affinché avvenga l'allinemento/inserimento dei docenti esposti da Ugov su Esse3.

La maschera dei Ruoli docente presenta una colonna (Codice CSA) che viene visualizzata o meno in base al valore del parametro di configurazione DOCENTI_IMPORT_DA_CSA: parametro che abilita la procedura, abilita la visualizzazione della colonna nella maschera RUOLI DOCENTE e abilita la visibilità del campo ORIGINE DATO nella maschera DOCENTI (questo campo, se valorizzato con CSA, definisce l'origine da allineamento e ne impedisce la modifica dei dati anagrafici oggetto di allineamento, per i quali il "master" non è Esse3)

La mappatura dei ruoli e lo stato di possibile allineamento è visibile anche dalla maschera ALLINEA DOCENTI DA PROCEDURA ESTERNA, che riporta le stessi informazioni dei ruoli definiti nella maschera RUOLI DOCENTE.

Le tipologie "interno" o "esterno" dipendono allo stesso modo dall'associazione in Ruoli Docenti con il 'Codice Tipo Ruolo' (EST esterno o INT interno). Tale informazione è aggiornata automaticamente a seguito della modifica in Ruoli Docenti. Per cui è sufficiente procedere con l'allineamento con le impostazioni definite automaticamente dal sistema.

La maschera ALLINEA DOCENTI DA PROCEDURA ESTERNA riporta un'informazione in più rispetto alla maschera Ruoli Docenti: mostra infatti se l'allineamento è possibile o meno  nella colonna ALLINEARE.

Per associare un 'SI' nella colonna Allineare, in corrispondenza di un determinato Ruolo Esse3, è necessario  definire ed inserire il codice EXT. Se non risulta valorizzato alcun Codice Ext, non è possibile allineare poiché non vi è corrispondenza tra il Codice ext e il Ruolo Esse3.

Da questa maschera, inoltre, è possibile lanciare la procedura solo per inserimento nuovi docenti, per aggiornamento, o entrambi.


Ed è possibile verificare le ultime elaborazioni con gli eventuali messaggi di warning:


RUOLO ESPOSTO DA UGOV/CSA (V_XM_...)

Il ruolo con cui Ugov espone un docente è il ruolo definito in CSA  nella Tabella degli "Stati Giuridico-Economici" (RU01_SGE) che viene assegnato al docente al momento della creazione della sua carriera/contratto.

CONDIZIONE SULLO STATO DOCENTE (FL_DOCENTE) 

In aggiunta alle condizioni sui ruoli, i docenti che vengono allineati o inseriti per la prima volta su Esse3, sono recuperati dalla vista sulla base delle seguenti condizioni: 

  • fl_docente: se su Ugov il docente è censito come docente (fl_docente = 1). A meno che non sia disattivato il parametro BI_IMP_DOC_RECUPERA_SOLO_RUOLO_DOCENTE, in tal caso la logica considera anche i ruoli non docente.
  • Ruolo prevalente: A parità di matricola con più ruoli nello stesso periodo viene considerato il ruolo con il peso più alto
  • data inizio rapporto: a parità di ruolo prevalente sarà considerato quello con data inizio rapporto piu alta
  • data dine rapporto: a parità di data inizio rapporto sarà considerato quello con data fine rapporto piu alta

Il fl_docente dipende da come è stato definito il ruolo, assegnato al docente, a livello dei RUOLO LOCALI (CSA) - per maggiori dettagli vedere l'apposita documentazione.

Nota: se viene definito che un dato ruolo non è piu di tipo docente (nei ruoli locali), questo dettaglio sarà "ereditato" alla creazione di una nuova carriera ma non modificherà il pregresso.
Per far si che il docente venga esposto come docente, è necessario 
ricalcolare da applicativo CSA gli intervalli dell'SGE per il personale per gli specifici docenti o per tutti (menù Personale>Intervalli di stato giuridico ed economico).

ESECUZIONE DEL SERVIZIO

La procedura di allineamento può essere eseguita:

  • su richiesta, utilizzando l’omonima funzionalità client[1]
  • in modalità schedulata, utilizzando il processo di sistema attivato tramite il Batch Scheduler e configurato nella maschera ELABORAZIONI BATCH
  • da Ugov Didattica utilizzando l'export della logistica: in tal caso la procedura allineerà solo i docenti oggetto di quell'esportazione logistica.

LOGICA DI AGGIORNAMENTO

In base alla logica di recupero dei docenti esposti da Ugov, questi vengono allineati su Esse3, ricercando il docente già presente su Esse3 in quest’ordine:

  • Per matricola
  • Per codice fiscale
  • Per cognome / nome (se trova solo 1 record)

Saranno aggiornati solo i dati tra i seguenti (se differenti):

  • sett_cod      
  • matricola      
  • cognome       
  • nome          
  • e_mail        
  • appellativo   
  • fac_id        
  • dip_id        
  • orig_dato_cod 
  • ruolo_doc_cod 
  • profilo       
  • cod_fis       
  • cellulare     
  • nominativo_alt
  • data_ini_att  
  • data_fin_att  
  • sesso         
  • data_nascita  
  • nazi_nasc_id  
  • com_nasc_id   
  • citstra_nasc  
  • data_ini_ruolo
  • ateneo_id     
  • id_ab         
  • usr_mod_id    
  • data_mod     


Se non viene recuperate su Esse3 nessun record rispondente a matricola, cod_fis o cognome/nome, allora il dato viene inserito come nuovo docente.

La procedura può anche allineare lo user_id del docente se esposto da Ugov e in base al parametro di configurazione IMP_GENERA_USER.
Il dato prelevato dai sistemi CINECA coincide con l’ultimo tratto di carriera dell’anagrafica, valido alla data in cui viene eseguito il servizio: ruolo, date di inizio e di fine incarico, in generale qualunque altra informazione acquisita tramite il servizio vengono determinate utilizzando questo criterio. Qualora il servizio venga attivato utilizzando la tabella di frontiera, le informazioni da acquisire vengono determinate dalle procedure, realizzate di norma dalla struttura IT dell’Ateneo, che alimentano la tabella di frontiera.

In presenza di più prodotti CINECA, contemporaneamente attivi presso l’Ateneo, il servizio considera come preferenziali le informazioni esposte dal prodotto UGOV RU, se la carriera del docente risulta ancora attiva; qualora la carriera del docente risulti cessata, le informazioni di riferimento diventano quelle definite nel prodotto UGOV DI. 

Il servizio può essere eseguito:

  • su richiesta, utilizzando l’omonima funzionalità client[1]
  • in modalità schedulata, utilizzando il processo di sistema attivato tramite il Batch Scheduler
  • da Ugov Didattica utilizzando l'export della logistica

Il servizio prevede la gestione di diversi parametri, tramite i quali poter condizionare le logiche di elaborazione; in particolare, il tipo di elaborazione permette di poter acquisire:

  • le sole anagrafiche non ancora presenti in ESSE3 (inserimento)
  • le sole anagrafiche già presenti in ESSE3 (aggiornamento)
  • tutte le anagrafiche, a prescindere dallo stato dell’anagrafica ESSE3 (aggiornamento/inserimento)
  • l’anagrafica identificata dalla matricola passata; è questo il caso in cui il servizio di importazione dell’anagrafica viene invocato durante il processo di importazione dell’Offerta Didattica (direttamente dal modulo Ugov Didattica).


DETTAGLIO PROCEDURA

Nome Procedura → IMP_EXP.p_allinea_docenti_ext

Cursore di recupero dei docenti [ CUR_DOCENTI_EST ]
SELECT
    imp.tipo_record,
    DECODE(docenti.docente_id,NULL,0,1) AS presente_flg,
    imp.comparto,
    imp.ruolo,
    imp.profilo
             /* per UNIPI nella matricola di U-Gov va eliminato il primo carattere (sempre 0) */,
    DECODE(l_ateneo_id_par_conf,48,substr(imp.matricola,2,5),imp.matricola) AS matricola,
    imp.data_in,
    imp.cognome,
    imp.nome,
    imp.sesso,
    imp.cod_fis,
    imp.data_ini_att,
    imp.data_rap_ini,
    DECODE(imp.tipo_record,'SIA-DI', (DECODE(imp.data_rap_fin,TO_DATE('02022222','DDMMYYYY'),imp.data_rap_fin,add_months(imp.data_rap_fin
,l_mm_parconf) ) ),'CESSATO',DECODE(imp.data_rap_fin,TO_DATE('02022222','DDMMYYYY'),imp.data_rap_fin,add_months(imp.data_rap_fin,l_mm_parconf_ugovru
) ),imp.data_rap_fin) AS data_rap_fin,
    imp.sett_cod,
    imp.fac_ext_cod
             /* per UNICAM prendo campo SEDE altrimente campo AFF_ORG */,
    DECODE(l_ateneo_id_par_conf,12,imp.sede,imp.aff_org) AS dip_ext_cod,
    imp.data_nasc,
    imp.comune_nasc_cod,
    imp.comune_nasc_des,
    imp.prov_nasc_sigla,
    imp.naz_ext_cod,
    imp.cellulare,
    imp.email,
    imp.appellativo,
    imp.ateneo_istat_cod,
    imp.id_ab
/*'----------------------- -----------------------------------------------------------------------------*/
/* LOGICA RECUPERO USER_ID -----------------------------------------------------------------------------*/
/*----------------------- -----------------------------------------------------------------------------'*/,
    CASE
/*' per UNIPV lo user_id in ESSE3 è diverso da quello gestito su UGOV e viene sempre generato '*/
            WHEN l_ateneo_id_par_conf = 44 THEN NULL
/*' per IUAV lo user_id in ESSE3 non prevede  eventuale dominio @iuav.it '*/
            WHEN l_ateneo_id_par_conf = 76 THEN
                CASE instr(imp.user_id,'@')
                    WHEN 0   THEN imp.user_id
                    ELSE substr(imp.user_id,1,instr(imp.user_id,'@') - 1)
                END
/*' per UNIPD, UNIVE e UNINA2 lo user_id letto come cod_fis concatenato con -D '*/
            WHEN l_ateneo_id_par_conf IN (
                41,
                75,
                37
            ) THEN imp.cod_fis || '-D'
/*' per UNIVPM lo user_id del docente è recuperato come NVL tra lo user_id di UGOV e P || matricola '*/
            WHEN l_ateneo_id_par_conf = 1  THEN nvl(imp.user_id,'P' || imp.matricola)
            WHEN l_ateneo_id_par_conf = 77 THEN 
/*' per UNIVR lo username se presente viene recuperato dalla vista V_IE_RU_RISUMA_ALL per codice fiscale '*/ nvl( (
                SELECT
                    MAX(cd_anagrafico)
                FROM
                    v_ie_ru_risuma_all
                WHERE
                    v_ie_ru_risuma_all.cod_fis = imp.cod_fis
            ),imp.user_id)
            ELSE
/*' per TUTTI GLI ATENEI '*/ imp.user_id
        END
    AS user_id
/*'----------------------- -----------------------------------------------------------------------------*/
/* LOGICA RECUPERO USER_ID -----------------------------------------------------------------------------*/
/*----------------------- -----------------------------------------------------------------------------'*/,
    imp.user_pwd
/*' LOGICA EXTERNAL_ID SOLO UNIPD------------------------------------------------------------------------ '*/,
    CASE
            WHEN l_ateneo_id_par_conf = 41 THEN imp.user_id
            ELSE imp.external_id
        END
    external_id
/*' LOGICA ETERNAL_ID SOLO UNIPD ----------------------------------------------------------------------- '*/,
    imp.ruolo_doc_cod,
    COUNT(1) OVER(
        PARTITION BY NULL
    ) AS count
FROM
    v_imp_docenti_ext imp
    LEFT OUTER JOIN docenti ON docenti.matricola = DECODE(l_ateneo_id_par_conf,48,substr(imp.matricola,2,5),imp.matricola)
WHERE
    (
        (
            pi_tipo_elab = 4
            AND pi_matricola = DECODE(l_ateneo_id_par_conf,48,substr(imp.matricola,2,5),imp.matricola)
        )
        OR ( pi_tipo_elab <> 4 )
    )
    AND (
        (
            DECODE(imp.tipo_record,'SIA-DI',DECODE(imp.data_rap_fin,TO_DATE('02022222','DDMMYYYY'),imp.data_rap_fin,add_months(imp.data_rap_fin
,l_mm_parconf) ),'CESSATO',DECODE(imp.data_rap_fin,TO_DATE('02022222','DDMMYYYY'),imp.data_rap_fin,add_months(imp.data_rap_fin,l_mm_parconf_ugovru
) ),imp.data_rap_fin) < SYSDATE
            AND docenti.docente_id IS NOT NULL
        )
        OR ( nvl(DECODE(imp.tipo_record,'SIA-DI',DECODE(imp.data_rap_fin,TO_DATE('02022222','DDMMYYYY'),imp.data_rap_fin,add_months(imp.data_rap_fin
,l_mm_parconf) ),'CESSATO',DECODE(imp.data_rap_fin,TO_DATE('02022222','DDMMYYYY'),imp.data_rap_fin,add_months(imp.data_rap_fin,l_mm_parconf_ugovru
) ),imp.data_rap_fin),SYSDATE) >= SYSDATE )
    )
    AND (
        (
            tipo_record = 'CESSATO'
            AND docenti.docente_id IS NOT NULL
        )
        OR tipo_record != 'CESSATO'
    )
ORDER BY
    matricola,
    DECODE(tipo_record,'EPI',1,'ATTIVO',2,'SIA-DI',3,'CESSATO',4,9);


Se il cursore recupera piu record, la priorità sul tipo_record è:

  • EPI
(solo se par_cod = 'BI_IMP_DOC_ALLINEA_DA_EPI_IMP_DOCENTI' )
  • ATTIVO
  • SIA-DI
  • CESSATO
  • CSA

Se TIPO_RECORD != EPI

  • val_alfa del par_conf BI_IMP_DOC_ALLINEA_DA_EPI_IMP_DOCENTI per escludere da aggiornamento quelli con ruolo in ESSE3 DOCENTI = ruolo definito nel val_alfa; (NON AGGIORNA)
  • con eccezione utleriori se ruolo in ESSE3 DOCENTI = ruolo definito nel val_alfa ma ruoli derivati da ugov = ruolo restituito dalla condizione di applicabilità: (AGGIORNA)
    =esse3.f_regola_sql('BI_IMP_DOC_ALLINEA_DA_EPI_EL_RUOLI_UPD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,l_doc_ruolo_doc);


Inizio procedura

Parametri di configurazione utilizzati nella logica di recupero

-- Recupero parametro id nazione Italia

   l_nazi_id_ita_par_conf := pkg18.f_get_parconf_num ('ITA');

-- Recupero parametro id ateneo di lavoro

   l_ateneo_id_par_conf := pkg18.f_get_parconf_num ('ATE'); 

-- Recupero parametro che indica se la login dei docenti avviene per EXTERNAL_ID

   l_login_doc_by_ext_id := pkg18.f_get_parconf_num ('LOGIN_DOC_BY_EXT_ID'); 

-- Recupero parametro che indica se deve aggiornare anche il campo appellativo

   l_imp_appellativo_par_conf := pkg18.f_get_parconf_num ('BI_IMP_DOC_APPELLATIVO');

-- Recupero parametro che indica i mesi oltre i quali il docente proveniente da u-gov didattica viene considerato cessato in esse3 (data fine validità).

   l_mm_parconf := pkg18.f_get_parconf_num ('BI_IMP_DOC_MM_CESSATO_DATA_RAP_FINE');

-- Recupero parametro che indica i mesi oltre i quali il docente proveniente da u-gov ru viene considerato cessato in esse3 (data fine validità).

   l_mm_parconf_ugovru := nvl(pkg18.f_get_parconf_num('BI_IMP_DOC_MM_CESSATO_DATA_RAP_FINE_RU'),0);

-- Recupero parametro che indica se viene attivato il controllo dell'unicità del codice fiscale nell'anagrafica docenti.

   l_docenti_codfis_unico := pkg18.f_get_parconf_num ('DOCENTI_CODFIS_UNICO');

l_tipo_firma_id := NVL(pkg18.f_get_parconf_num('TIPO_FIRMA_DEFAULT'),1);

-- Recupero parametro che indica se deve essere richiesto il nominativo alternativo docente

    SELECT val_alfa, val_num
        INTO l_nom_alt_format_par_conf, l_nom_alt_par_conf
        FROM par_conf
       WHERE par_cod = 'DOCENTI_NOMINATIVO_ALT';

-- Recupero parametro attiva import tipo record EPI da tabella EPI_IMP_DOCENTI

        SELECT val_num, NVL(val_alfa, '**')
        INTO l_import_epi_par_conf, l_ruolo_doc_par_conf
        FROM par_conf
       WHERE par_cod = 'BI_IMP_DOC_ALLINEA_DA_EPI_IMP_DOCENTI';

-- Recupero parametro per abilitare generazione account (P18_USER)

   l_imp_genera_user_par_conf := pkg18.f_get_parconf_num ('IMP_GENERA_USER');


/* Parametro di configurazione per abilitare o meno l'invio della mail al docente se gli viene attivato l'account su ESSE3 in fase di import dei dati da UGOV/CSA*/

   l_invia_mail_cod_att_account := NVL (pkg18.f_get_parconf_num ('INVIA_MAIL_DOC_ATTIV_ACCOUNT'), 0);

L'invio della mail si basa sull’evento  ATTIVA_USER_DOC.


LOOP del cursore cur_docenti_est


AGGIORNAMENTO

Verifica se il docente è presente in ESSE3 ricercando per MATRICOLA

SELECT *
FROM docenti
WHERE docenti.matricola = docente_est.matricola;

AGGIORNA

 

se non viene recuperato alcun record viene ricercato per NOMINATIVO/ COD_FIS

SELECT *
FROM docenti
WHERE     kion.f_normalize_char (UPPER(docenti.cognome)) = kion.f_normalize_char (UPPER(docente_est.cognome))
AND kion.f_normalize_char (UPPER(docenti.nome))    = kion.f_normalize_char (UPPER(docente_est.nome))
AND docenti.cod_fis = docente_est.cod_fis;

AGGIORNA


SE docente con stesso cognome e nome, con matricola valorizzata e senza cod_fis

SELECT COUNT (1)
FROM docenti
WHERE     kion.f_normalize_char (UPPER(docenti.cognome)) = kion.f_normalize_char (UPPER(docente_est.cognome))
AND kion.f_normalize_char (UPPER(docenti.nome))    = kion.f_normalize_char (UPPER(docente_est.nome))
AND docenti.cod_fis IS NULL
AND docenti.matricola IS NOT NULL;

NON AGGIORNA NON INSERISCE

 

SE docente con stesso cognome e nome, senza matricola valorizzata e senza cod_fis

SELECT COUNT (1)
FROM docenti
WHERE     kion.f_normalize_char (UPPER(docenti.cognome)) = kion.f_normalize_char (UPPER(docente_est.cognome))
AND kion.f_normalize_char (UPPER(docenti.nome))    = kion.f_normalize_char (UPPER(docente_est.nome))
AND docenti.cod_fis IS NULL
AND docenti.matricola IS NULL;

AGGIORNA

 


AGGIORNAMENTO



AGGIORNAMENTO RUOLO
  • Verifica se ruolo UGOV = ruoloCSA mappato con un ruolo ESSE3 (RUOLI_DOC)

SELECT ruolo_doc_cod
FROM ruoli_doc
WHERE csa_cod = docente_est.ruolo;

  • altrimenti verifica se ruolo ugov = ruoloesse3

SELECT ruolo_doc_cod
FROM ruoli_doc
WHERE ruolo_doc_cod = docente_est.ruolo;

AGGIORNAMENTO DATA_FINE_ATT

Se docente_est.data_rap_fin = TO_DATE ('02022222', 'DDMMYYYY')
  • DATA_FINE_ATT = null
  • Altrimenti
    • DATA_FINE_ATT = docente_est.data_rap_fin
AGGIORNAMENTO SETT_COD

Verifica che il settore esiste in esse3

P07_SETT.sett_cod = docente_est.sett_cod;

AGGIORNAMENTO EMAIL

Email = docente_est.email

Solo UNIMORE = LOWER (   REPLACE (docente_est.nome, ' ')
                             || '.'
                             || REPLACE (docente_est.cognome, ' ')
                             || '@UNIMORE.IT');

AGGIORNAMENTO APPELLATIVO

Solo se par_conf      BI_IMP_DOC_APPELLATIVO

e se LENGTH (docente_est.appellativo) <= 40

AGGIORNAMENTO FAC_ID  e DIP_ID

Se esiste in Esse3, viene preso il fac_id piu altro

SELECT MAX (fac_id)
FROM p06_fac
WHERE csa_cod = docente_est.fac_ext_cod

lo stesso per dip_id

SELECT MAX (dip_id)
FROM p06_dip
WHERE csa_cod = docente_est.dip_ext_cod;

AGGIORNAMENTO ATENEO_ID

Valorizzato con il min ateneo_id a parità di istat_cod

SELECT MIN (ateneo_id)
FROM p06_atenei
WHERE     tipo_univ_cod != '9999999999'
AND istat_cod = docente_est.ateneo_istat_cod;

Se UNIPI =  par_conf ATE l_ateneo_id_par_conf

AGGIORNAMENTO CELLULAREdocente_est.cellulare solo se di 20 caratteri
AGGIORNAMENTO NOMINATIVO_ALT

Solo se par_conf 'DOCENTI_NOMINATIVO_ALT'

  • Se ='NC' →  INITCAP (docente_est.nome) || ' ' || INITCAP (docente_est.cognome);
  • Se != 'NC' →  INITCAP (docente_est.cognome) || ' ' || INITCAP (docente_est.nome);
AGGIORNAMENTO SESSOSe docente_est.sesso IN ('M', 'F')
AGGIORNAMENTO DATI NASCITAnazi_nasc_id
  • Se diverso da ITA →  SELECT MIN (nazione_id)
                                       FROM p01_nazi
                                       WHERE csa_cod = docente_est.naz_ext_cod;
  • com_nasc_id
    • Se ITA →   SELECT comune_id
                        FROM p01_comu
                        WHERE     sigla = docente_est.prov_nasc_sigla
                        AND comune_cod = docente_est.comune_nasc_cod;
    • citstra_nasc
      • Se straniero →  SUBSTR (docente_est.comune_nasc_des, 1, 80)
      • id_ab


INSERIMENTO

Campi valorizzati della tabella DOCENTI di ESSE3:

  • docente_id
  • sett_cod
  • matricola
  • cognome
  • nome
  • e_mail
  • appellativo
  • fac_id
  • dip_id
  • orig_dato_cod
  • ruolo_doc_cod
  • profilo
  • cod_fis
  • cellulare
  • nominativo_alt
  • data_ini_att
  • data_fin_att
  • sesso
  • data_nascita
  • nazi_nasc_id
  • com_nasc_id
  • citstra_nasc
  • data_ini_ruolo
  • ateneo_id
  • id_ab
  • usr_ins_id
  • data_ins



PARAMETRI DI CONFIGURAZIONE



Utilizzo tabella EPI_IMP_DOCENTI  

parametro: BI_IMP_DOC_ALLINEA_DA_EPI_IMP_DOCENTI

Import (allineamento) docenti: indica se allineare i docenti anche dalla tabella EPI_IMP_DOCENTI (tipo record EPI).

"Se impostato a 1 vengono anche recuperati i docenti dalla tabella EPI_IMP_DOCENTI con tipo record EPI.
In VAL_ALFA è possibile inserire un ruolo docente da salvaguardare ovvero se il docenti in ESSE3 ha tale ruolo e risulta attivo allora non viene mai modificato dai dati provenienti da U-Gov."

Recupero parametro che indica se la login dei docenti avviene per EXTERNAL_ID

 parametro: LOGIN_DOC_BY_EXT_ID

E' impostato a 1 se la login dei docenti su ESSE3 avviene per EXTERNAL_ID; 0 altrimenti per user_id canonico


Recupero parametro che indica se deve aggiornare anche il campo appellativo

parametro: BI_IMP_DOC_APPELLATIVO

Import (allineamento) docenti: indica se deve aggiornare anche il campo appellativo nell´anagrafica docenti di ESSE3.

"Solo se impostato a 1 aggiorna il campo DOCENTI.APPELLATIVO con il corrispondente campo di U-GOV (attributo PREF_ONOR);
sovrascrive il valore presente in ESSE3 solo se quello proveniente da U-GOV è diverso da NULL, altrimenti lascia il valore di ESSE3."


Recupero docenti cessati

parametro: BI_IMP_DOC_AGGIORNA_DOCENTI_CESSATI

Import (allineamento) docenti: indica se aggiornare in ESSE3 la data di fine rapporto dei docenti già cessati su UGO che UGOV non espone più come docenti. Si tratta di persone che hanno cambiato ruolo.

"Se val_num=1 vengono aggiornate su ESSE3, in coda all'allineamento dei docenti, le date di fine attività per i docenti che hanno quel ruolo cessato su UGOV e che UGOV stesso non espone pi�me docenti.
Se Val_num = 0 (default), il suddetto aggiornamento non è previsto."


Recupero parametro che indica i mesi oltre i quali il docente proveniente da u-gov didattica viene considerato cessato in esse3 (data fine validità).

parametro: BI_IMP_DOC_MM_CESSATO_DATA_RAP_FINE

Import (allineamento) docenti: indicare i mesi oltre i quali il docente proveniente da U-Gov Didattica viene considerato cessato in ESSE3 (data fine validità).

"L'anagrafica docente proveniente da U-Gov Didattica solitamente, essendo principalmente docenti a contratto, hanno una data di fine attività entro l'anno accademico
in questo modo però in ESSE3 il docente risulta cessato anche se deve essere ancora utilizzato (appelli, altro).
Con questo parametro è possibile aggiungere tot mesi alla data di fine in modo da posticipare la data fine attività in ESSE3.
Ad es. se da U-Gov diattica arriva un docente con data rapporto fine 14/06/2014 e nel parametro inseriamo 12 mesi, la data fine in ESSE3 divente 14/06/2015;
se inseriamo 6 mesi allora la data di fine diventa 14/09/2014, se inseriamo 0 rimane 14/06/2014. "


Recupero parametro che indica i mesi oltre i quali il docente proveniente da u-gov ru viene considerato cessato in esse3 (data fine validità).

parametro: BI_IMP_DOC_MM_CESSATO_DATA_RAP_FINE_RU

Import (allineamento) docenti: indicare i mesi oltre i quali il docente proveniente da U-Gov RU viene considerato cessato in ESSE3 (data fine validità).

Deve contenere il numero di mesi oltre i quali il docente proveniente da U-Gov RU viene considerato cessato in ESSE3 (data fine validità).


Recupero parametro che indica se viene attivato il controllo dell'unicità del codice fiscale nell'anagrafica docenti.

parametro: DOCENTI_CODFIS_UNICO

Indica se viene attivato il controllo dell'unicità del codice fiscale nell'anagrafica docenti.

1 = attivazione controllo unicità codice fiscale docente per impedire l'inserimento di un docente già presente in anagrafica; 0 = non viene attivato il controllo, quindi è possibile inserire lo stesso codice fiscale.


Recupero parametro per abilitare generazione account (P18_USER)

parametro: IMP_GENERA_USER

Parametro per abilitare o disabilitare la generazione dell'account (P18_USER) in fase di importazione dalle anagrafiche da sistemi esterni.

Se = 1 per ogni anagrafica importata (Docenti, Personale TA, ..) viene generato un record anche nella tabella P18_USER; se = 0, la tabella P18_USER non viene alimentata.


Recupero parametro che indica il tipo firma da utilizzare se viene creato anche lo user (vedi: IMP_GENERA_USER)

parametro: TIPO_FIRMA_DEFAULT

Valore di default del tipo firma

Indica la tipologia di firma da impostare per gli utenti in fase di creazione


Recupero parametro che indica se deve essere richiesto il nominativo alternativo docente

parametro: DOCENTI_NOMINATIVO_ALT

Indica se deve essere richiesto il nominativo alternativo docente nella relativa anagrafica.

"0=non viene richiesto 1=viene richiesto il campo Nominativo alternativo (nominativo in modalità case sensitive, viene utilizzato solo per le personalizzazioni, nello standard vengono sempre utilizzati cognome e nome).

Nel campo Val.Afanum. è possibile indicare come comporre il nominativo: NC = nome e cognome; CN = cognome e nome."


Parametro di configurazione per abilitare o meno l'invio della mail al docente se gli viene attivato l'account su ESSE3 in fase di import dei dati da UGOV/CSA

parametro: INVIA_MAIL_DOC_ATTIV_ACCOUNT

Parametro di configurazione per abilitare o meno l'invio della mail al docente se gli viene attivato l'account su ESSE3 in fase di import dei dati da UGOV/CSA

Se = 1 viene generata la comunicazione al docente quando lo user è attivato su ESSE3; 0 = la comunicazione non viene generata. 

L'invio della mail si basa sull’evento/template di comunicazione:  ATTIVA_USER_DOC.


Considerare o meno la condizione sul ruolo docente esposto da Ugov (fl-docente)

parametro:  BI_IMP_DOC_RECUPERA_SOLO_RUOLO_DOCENTE

Import (allineamento) docenti: indica se recuperare solo i docenti con ruolo U-Gov docente (FL_DOCENTE = 1).

"Indica se recuperare solo i docenti con ruolo U-Gov docente oppure anche quelli con ruolo non docente:
- 0 = recupera sia i docenti con ruolo U-Gov docente (FL_DOCENTE = 1) sia quelli con ruolo non docente (FL_DOCENTE = 0)
- 1 = recupera solo i docenti con ruolo U-Gov docente (FL_DOCENTE = 1)
In ogni caso vengono recuperati solo i docenti con ruolo U-Gov mappato in ESSE3 (campo RUOLI_DOC.CSA_COD). "


Per importare anche il cellulare esposto da Ugov

parametro: BI_IMP_DOC_CELLULARE

Import (allineamento) docenti: indica se aggiornare in ESSE3 il cellulare del docente esposto da UGOV o meno.

Se val_num = 1 viene aggiornato sulla tabella DOCENTI di ESSE3 il numero di cellulare esposto da UGOV; se = 0 (default) il cellulare non viene mai aggiornato su ESSE3 ed esposto a NULL da UGOV


Importazione condizionata all'inquadramento Ugov su Esse3

Parametro: BI_DOC_GEST_RUOLO_PER_INQUADR

L'operando valuta l'accoppiata ruolo e inquadramento collegando tali informazioni con i ruoli docente già presenti su Esse3, secondo regole precedentemente stabilite.

Se Val_alfa = 0 Non viene considerato l'inquadramento su UGOV per l'attribuzione del ruolo docente su ESSE3;

= 1 Si attiva l'operando SQL che determina il ruolo della RUOLI_DOC che soddisfa l'accoppiata RUOLO/INQUADRAMENTO.


Altri parametri

BI_IMP_DOC_DATA_FIN_RAPP_GEST_SQL 

BI_IMP_DOC_DATA_INI_RAPP_GEST_SQL 

per abilitare rispettivamente il calcolo dinamico della data di fine rapporto e della data di inizio rapporto da inserire nella DOCENTI in fase di allineamento da UGOV. In caso di PAR_CONF abilitato (VAL_NUM=1) nel campo VAL_ALFA dello stesso PAR_CONF deve essere indicato il codice dell'operando SQL che calcola rispettivamente la data di fine rapporto e inizio rapporto da impostare sulla docenti in fase di allineamento da UGOV in funzione di ruolo, inquadramento e/o matricola docente.

I parametri utilizzati per la valutazione dell'operando sono 
P9 (ruolo|inqaudramento) 
P10 (il valore numerico della matricola) 
L'operando SQL deve essere di tipo D (data). 



Gestione USER_ID 

  • Se il ParConf 'IMP_GENERA_USER' risulta attivo (valore numerico = 1)
  • e se:
    • Ugov espone user_id
    • oppure ateneo ha autenticazione per external_id ('LOGIN_DOC_BY_EXT_ID')
    • oppure ateneo è UNIPV

Allora viene creato anche lo user_id su Esse3, come abilitato. Se lo user_id esposto da Ugov è maggiore di 20 caratteri, viene creato l'utente con user_id autogenerato e allo stesso tempo viene creato l'alias (p18_alias) con lo user_id esposto da Ugov.

Nota bene

A partire dalla versione 21.02.01.00 di Esse3 è possibile anche importare lo UserId esterno come Alias, senza toccare l'eventuale utente già esistente su Esse3.

A tale scopo il Parametro di Configurazione IMP_GENERA_USER, nel momento in cui viene impostato a 1 nel valore numerico, può essere impostato anche ad 'ALIAS' nel valore alfanumerico.

Così facendo nell'allineare un docente per il quale è disponibile lo UserId esterno:

  • lo UserId esterno viene sempre inserito su Esse3 facendo uso di un Alias (tabella P18_ALIAS)
  • se per il docente in questione esiste già un utente attivo (tabella P18_USER) l'alias viene associato a tale utente
  • se non esiste ancora l'utente ne viene creato uno ex-novo, associandogli quindi l'alias di cui sopra; il nuovo utente avrà UserId (della P18_USER) generato automaticamente (recependo le principali configurazioni di Formato Utente - impostazione FORMAT_USER a livello di gruppo o ParConf).


SCHEDULAZIONE PROCESSO

La procedura di allineamento docenti può essere richiamata in diversi modi:

  • Da UGOV didattica mediante la funzione Esporta attività Reali e Coperture a Esse3
  • Da Esse3 mediante la maschera ALLINEA DOCENTI DA PROCEDURA ESTERNA (in maniera "manuale")
  • Da Esse3 in maniera automatica e schedulata mediante il processo batch ALLINEA_DOCENTI

E' possibile lanciare la funzione di Allineamento docenti dalla maschera ALLINEA DOCENTI DA PROCEDURA ESTERNA, previa abilitazione del parametro DOCENTI_IMPORT_DA_CSA.

Da questa maschere è possibile eseguire "manualmente" l'esecuzione del processo decidendo di operare per solo inserimento nuovi docenti, o solo per aggiornamento degli esistenti o entrambi.

Nella sezione in basso è possibile definire quali ruoli allineare.


E' possibile inoltre schedulare questa attività per non dover agire manualmente: nella maschera Elaborazioni Batch esiste il processo ALLINEA_DOCENTI.

dove è possibile definirne la schedulazione:

 



[1] Back-office di Segreteria

MODIFICHE DATI ANAGRAFICA DOCENTI

Se l'anagrafica risulta importata da CSA vengono effettuati dei controlli in base al par_conf DOCENTI_IMPORT_DA_CSA che abilita la modifica ai dati oggetto di allineamento, solo a utenti superuser; altri utenti vedranno quei campi non editabili.


QUERY DI CONTROLLO - ID_AB già valorizzato in Esse3

Numero docenti con ID_AB valorizzato e fonte dati da cui sono stati allineati:
SELECT
    orig_dato_cod,
    fonte_record,
    COUNT(1)
FROM
    docenti d
WHERE
    d.id_ab IS NOT NULL
GROUP BY
    d.orig_dato_cod,
    d.fonte_record;

SELECT
    *
FROM
    docenti
WHERE
    id_ab IS NOT NULL;

QUERY DI CONTROLLO - DOCENTI DOPPI

Nella seguente query vengono recuperate le anagrafiche dei docente duplicate secondo questo criterio:

  • CF_DOPPI : i record duplicati hanno lo stesso COD_FIS;
  • COGNOMI_DOPPI: anagrafiche duplicate per stesso cognome, nome e data di nascita non incluse in CF_DOPPI;
  • COGNOMI_AMBIGUI: non è possibile avere la certezza che si tratti di duplicati o semplici omonimie non avendo ma hanno stesso cognome e stesso nome e non sono inclusi in CF_DOPPI e in COGNOMI_DOPPI

Vengono incrociati i dati di esse3 con quelli esposti come docenti (fl_docente=1) dalle viste del sistema esterno (ugov)-

Docenti duplicati in Esse3 per cod_fis o cognome/nome
WITH docenti_ext AS (
    SELECT
        matricola,
        cognome,
        nome,
        cod_fis
    FROM
        v_imp_docenti_ext
), cf_doppi AS (
    SELECT
        cod_fis
    FROM
        docenti
    GROUP BY
        cod_fis
    HAVING
        COUNT(cod_fis) > 1
), cognomi_doppi AS (
    SELECT
        cognome,
        nome,
        data_nascita,
        COUNT(*)
    FROM
        docenti d
    WHERE
            1 = 1
        AND cognome IS NOT NULL
        AND nome IS NOT NULL
        AND data_nascita IS NOT NULL
        AND nvl(d.cod_fis, 'aaa') NOT IN (
            SELECT
                cod_fis
            FROM
                cf_doppi
        )
    GROUP BY
        cognome,
        nome,
        data_nascita
    HAVING
        COUNT(*) > 1
), cognomi_ambigui AS (
    SELECT
        cognome,
        nome,
        COUNT(*)
    FROM
        docenti d
    WHERE
            1 = 1
        AND cognome IS NOT NULL
        AND nome IS NOT NULL
        AND nvl(d.cod_fis, 'aaa') NOT IN (
            SELECT
                cod_fis
            FROM
                cf_doppi
        )
        AND ( cognome, nome ) NOT IN (
            SELECT
                cognome, nome
            FROM
                cognomi_doppi
        )
    GROUP BY
        cognome,
        nome
    HAVING
        COUNT(*) > 1
)
SELECT
    'cognomi_doppi'  AS tipo_duplicato,
    v.id_ab          AS imp_id_ab,
    v.matricola      AS imp_matricola,
    v.cod_fis        AS imp_cod_fis,
    v.cognome        AS imp_cognome,
    v.nome           AS imp_nome,
    v.ruolo          AS imp_ruolo,
    v.data_in        AS imp_data_in,
    v.data_fin       AS imp_data_fin,
    v.data_ini_att   AS imp_data_ini_att,
    v.data_rap_ini   AS imp_data_rap_ini,
    v.data_rap_fin   AS imp_data_rap_fin,
    v.user_id        AS imp_user_id,
    d.docente_id     AS s3_docente_id,
    d.id_ab          AS s3_id_ab,
    d.matricola      AS s3_matricola,
    d.cod_fis        AS s3_cod_fis,
    d.cognome        AS s3_cognome,
    d.nome           AS s3_nome,
    d.ruolo_doc_cod  AS s3_ruolo_doc_cod,
    d.data_ini_att   AS s3_data_ini_att,
    d.data_fin_att   AS s3_data_fin_att,
    d.data_ini_ruolo AS s3_data_ini_ruolo,
    u.user_id        AS s3_user_id,
    a.alias          AS s3_alias,
    u.disable_flg    AS s3_disable_flg,
    (
        SELECT
            MAX(f.dtm_cl_conn)
        FROM
            fw_sessions_sto f
        WHERE
            f.id_user = u.id
    )                AS s3_ultima_sessione_web,
    d.e_mail         AS s3_e_mail,
    d.data_nascita   AS s3_data_nascita,
    d.orig_dato_cod  AS s3_orig_dato_cod,
    d.usr_ins_id,
    d.data_ins,
    d.usr_mod_id,
    d.data_mod
FROM
    docenti           d
    LEFT JOIN p18_user          u ON d.docente_id = u.ana_id
                            AND u.grp_id = 7
    LEFT JOIN p18_alias         a ON a.id_user = u.id
    LEFT JOIN v_imp_docenti_ext v ON v.cognome = d.cognome
                                     AND v.nome = d.nome
                                     AND v.data_nasc = d.data_nascita
WHERE
        1 = 1
    AND d.cognome IS NOT NULL
    AND d.nome IS NOT NULL
    AND ( d.cognome, d.nome ) IN (
        SELECT
            cognomi_doppi.cognome, cognomi_doppi.nome
        FROM
            cognomi_doppi
    )
UNION ALL
SELECT
    'CF_doppi'       AS tipo_duplicato,
    v.id_ab          AS imp_id_ab,
    v.matricola      AS imp_matricola,
    v.cod_fis        AS imp_cod_fis,
    v.cognome        AS imp_cognome,
    v.nome           AS imp_nome,
    v.ruolo          AS imp_ruolo,
    v.data_in        AS imp_data_in,
    v.data_fin       AS imp_data_fin,
    v.data_ini_att   AS imp_data_ini_att,
    v.data_rap_ini   AS imp_data_rap_ini,
    v.data_rap_fin   AS imp_data_rap_fin,
    v.user_id        AS imp_user_id,
    d.docente_id     AS s3_docente_id,
    d.id_ab          AS s3_id_ab,
    d.matricola      AS s3_matricola,
    d.cod_fis        AS s3_cod_fis,
    d.cognome        AS s3_cognome,
    d.nome           AS s3_nome,
    d.ruolo_doc_cod  AS s3_ruolo_doc_cod,
    d.data_ini_att   AS s3_data_ini_att,
    d.data_fin_att   AS s3_data_fin_att,
    d.data_ini_ruolo AS s3_data_ini_ruolo,
    u.user_id        AS s3_user_id,
    a.alias          AS s3_alias,
    u.disable_flg    AS s3_disable_flg,
    (
        SELECT
            MAX(f.dtm_cl_conn)
        FROM
            fw_sessions_sto f
        WHERE
            f.id_user = u.id
    )                AS s3_ultima_sessione_web,
    d.e_mail         AS s3_e_mail,
    d.data_nascita   AS s3_data_nascita,
    d.orig_dato_cod  AS s3_orig_dato_cod,
    d.usr_ins_id,
    d.data_ins,
    d.usr_mod_id,
    d.data_mod
FROM
    docenti           d
    LEFT JOIN p18_user          u ON d.docente_id = u.ana_id
                            AND u.grp_id = 7
    LEFT JOIN p18_alias         a ON a.id_user = u.id
    LEFT JOIN v_imp_docenti_ext v ON v.cod_fis = d.cod_fis
WHERE
        1 = 1
    AND d.cognome IS NOT NULL
    AND d.nome IS NOT NULL
    AND d.cod_fis IS NOT NULL
    AND ( d.cod_fis ) IN (
        SELECT
            cf_doppi.cod_fis
        FROM
            cf_doppi
    )
UNION ALL
SELECT
    'cognomi_ambigui' AS tipo_duplicato,
    v.id_ab           AS imp_id_ab,
    v.matricola       AS imp_matricola,
    v.cod_fis         AS imp_cod_fis,
    v.cognome         AS imp_cognome,
    v.nome            AS imp_nome,
    v.ruolo           AS imp_ruolo,
    v.data_in         AS imp_data_in,
    v.data_fin        AS imp_data_fin,
    v.data_ini_att    AS imp_data_ini_att,
    v.data_rap_ini    AS imp_data_rap_ini,
    v.data_rap_fin    AS imp_data_rap_fin,
    v.user_id         AS imp_user_id,
    d.docente_id      AS s3_docente_id,
    d.id_ab           AS s3_id_ab,
    d.matricola       AS s3_matricola,
    d.cod_fis         AS s3_cod_fis,
    d.cognome         AS s3_cognome,
    d.nome            AS s3_nome,
    d.ruolo_doc_cod   AS s3_ruolo_doc_cod,
    d.data_ini_att    AS s3_data_ini_att,
    d.data_fin_att    AS s3_data_fin_att,
    d.data_ini_ruolo  AS s3_data_ini_ruolo,
    u.user_id         AS s3_user_id,
    a.alias           AS s3_alias,
    u.disable_flg     AS s3_disable_flg,
    (
        SELECT
            MAX(f.dtm_cl_conn)
        FROM
            fw_sessions_sto f
        WHERE
            f.id_user = u.id
    )                 AS s3_ultima_sessione_web,
    d.e_mail          AS s3_e_mail,
    d.data_nascita    AS s3_data_nascita,
    d.orig_dato_cod   AS s3_orig_dato_cod,
    d.usr_ins_id,
    d.data_ins,
    d.usr_mod_id,
    d.data_mod
FROM
    docenti           d
    LEFT JOIN p18_user          u ON d.docente_id = u.ana_id
                            AND u.grp_id = 7
    LEFT JOIN p18_alias         a ON a.id_user = u.id
    LEFT JOIN v_imp_docenti_ext v ON v.cognome = d.cognome
                                     AND v.nome = d.nome
WHERE
        1 = 1
    AND d.cognome IS NOT NULL
    AND d.nome IS NOT NULL
    AND ( d.cognome, d.nome ) IN (
        SELECT
            cognomi_ambigui.cognome, cognomi_ambigui.nome
        FROM
            cognomi_ambigui
    );

-----------------------------------------------------------------------------------------------------------------------


ALLINEA PERSONALE (PTA): PROCESSO

La procedura è del tutto identica (nel processo) a quella di Allineamento docenti con le seguenti specifiche:

  • il processo batch è ALLINEA_PERSONALE;
  • La tabella per la mappatura dei ruoli è la RUOLI_PTA (non esiste la relativa maschera Client);
  • La vista logica di riferimento è la V_IMP_PERSONALE_EXT
  • Gli utenti sono esposti dalle viste Ugov con fl_docente=0