La terza funzionalità della macroarea Gestione sito permette di intervenire su tutti gli aspetti relativi alla
profilazione dei vari utenti.
Quest’applicativo web suddividerà gli utenti tramite due attributi:
• Ad ogni utente verrà associato un Profilo definito in precedenza da parte degli sviluppatori; ogni Profilo sarà associato ad una serie di oggetti astratti, permettendo quindi di accedere soltanto ad alcune funzionalità sviluppate. La possibilità di creare Profili rimane esclusiva dei programmatori, in quanto soltanto essi avranno le conoscenze necessarie per poterli configurare correttamente.
• Ad ogni utente verrà inoltre assegnato un Gruppo di Lavoro, definendo quindi a quali documenti avrà accesso; infatti ogni gruppo di lavoro, come detto in precedenza, avrà accesso a tutti i documenti caricati da altri gruppi ad esso associati e che si trovano negli stati sempre ad esso associati. Entrambi questi aspetti saranno modificabili dagli utenti con i relativi privilegi.
71
Figura 4.25, sottomenù parziale della macroarea Gestione sito
Vediamo quindi tutte le funzionalità nel dettaglio.
4.5.1 Nuovo utente, profili e gruppi
72
Figura 4.26, oggetti astratti delle sezioni relative alla gestione utenti
Quando l’utente si trova all’interno del sottomenù Gestione Utenti e Gruppi e clicca sul tasto Inserimento Nuovo Utente, viene riportato in una pagina che contiene un report di tutti gli utenti inseriti ed un input form che permette di inserirne di nuovi specificando i dati anagrafici e username. Bisogna notare che, in fase di creazione di un nuovo utente, è richiesto obbligatoriamente l’assegnamento di un gruppo di lavoro: senza di esso, infatti, l’utente non potrebbe accedere a nessun documento. Quest’azione non è tuttavia sufficiente a rendere l’utenza appena creata funzionale all’interno dell’applicativo web: essa dovrà infatti essere associata ad un profilo esistente.
L’utente dovrà quindi cliccare sul tasto Associa Utente a Profilo: in questo modo verrà rimandato in una pagina che conterrà un filtro per effettuare una ricerca personalizzata degli utenti, un group button inizialmente invisibile ed un report con i risultati della ricerca. All’interno del report sarà presente, per ogni utente, un link ipertestuale che, una volta cliccato, renderà visibile il group button: cliccando su di esso l’utente verrà riportato in un’ulteriore pagina contenente un report con i profili associati all’utente selezionato ed un input form che permette, attraverso una finestra di selezione, di aggiungerne altri tra quelli precedentemente creati.
Infine, l’utente potrà cliccare sul tasto Associa Utente a Gruppo di Lavoro per modificare il gruppo di lavoro associato ad un qualsiasi utente: verrà infatti rimandato in una pagina che conterrà un filtro per effettuare una ricerca sugli utenti, un report ad esso collegato ed un input form. All’interno del report sarà presente un link ipertestuale che popolerà l’input form in modo da poter modificare il gruppo associato all’utente selezionato.
73
Una volta effettuato il salvataggio si attiverà un “dispatcher” che rimanderà ad una pagina contenente un button che riporta al filtro della ricerca ed un report contenente i dati aggiornati degli utenti presenti. Per come è stato impostato il nostro DB, l’operazione di cambio di gruppo di lavoro di un utente non apporta modifiche ai documenti da lui caricati: essi saranno infatti associati allo stesso gruppo a cui apparteneva
l’utente in fase di caricamento.
In questo modo il documento sarà sempre visibile dal gruppo che lo ha caricato, e non dal gruppo di appartenenza dell’utente che lo ha creato, rendendo quindi possibile la variazione, senza conseguenze, dei diversi profili amministrativi all’interno dei diversi reparti.
4.5.2 Gestione gruppi di lavoro
L’ultimo tasto rimasto all’interno della voce Gestione sito è quello relativo alla Gestione Gruppi di Lavoro, la cui sezione includerà i seguenti oggetti:
Figura 4.27, oggetti astratti della sezione Gestione Gruppi di Lavoro
Se l’utente clicca su sul pulsante Gestione Gruppi di Lavoro verrà riportato in una pagina contenente un report di tutti i gruppi di lavoro inseriti ed un input form che servirà ad aggiungerne di nuovi.
Tramite l’input form l’utente potrà quindi inserire nuovi gruppi di lavoro: questa opzione è stata introdotta, proprio come per la possibilità di aggiungere stati dei documenti, per garantire la flessibilità e la funzionalità nel tempo dell’applicativo web, in quanto esso potrà adattarsi alle modifiche interne del reparto amministrativo in maniera rapida e senza complicazioni.
74
All’interno del report saranno inoltre presenti due link ipertestuali per ogni gruppo mostrato: essi permetteranno una configurazione completa di essi, lasciando al reparto amministrativo la libertà di decidere chi può vedere determinati documenti in base al loro stato o al gruppo dell’utente che li ha caricati.
Il primo link ipertestuale riporta alla pagina per la gestione delle associazioni tra gruppi di lavoro: cliccandoci sopra l’utente verrà rimandato in una pagina che conterrà un report, il quale mostrerà i diversi gruppi associati a quello selezionato, un input form che permetterà di aggiungerne altri ed un button che permetterà di tornare alla lista dei gruppi presenti.
Figura 4.28, report delle associazioni tra gruppi di lavoro
Proprio come per l’aggiunta di stati, l’input form sarà composto da una finestra di selezione che permetterà di scegliere un gruppo di lavoro tra quelli non associati al gruppo selezionato; questo sarà possibile attraverso la seguente QUERY presente all’interno della Select denominata S_GRP_RIMASTI:
SELECT
AA_T_GRUPPO_CODICE as val, AA_T_GRUPPO_DESCR as descr FROM AA_T_GRUPPO
WHERE AA_T_GRUPPO_CODICE NOT IN( SELECT
AA_T_GRUPPO_CODICE_OUT FROM AA_REL_GRP
WHERE AA_T_GRUPPO_CODICE_IN = <codgrp> )
ORDER BY descr
Questa QUERY, al pari di quella utilizzata per la selezione di nuovi stati citata nel paragrafo relativo ad essi, utilizza nelle condizioni un’altra QUERY annidata per trovare tutti i gruppi di lavoro associati a quello selezionato, identificato tramite il parametro <codgrp>: tramite la condizione “NOT IN” verranno selezionati quindi tutti i gruppi che non sono associati ad esso. A seguito del salvataggio si verrà reindirizzati, tramite un “dispatcher”, in una seconda pagina costituita dagli stessi oggetti denominati come _BIS, in maniera tale da poter effettuare ulteriori modifiche grazie
all’aggiornamento della Select S_GRP_RIMASTI.
Da questa pagina l’utente potrà anche cancellare le associazioni tra gruppi di lavoro tramite un link ipertestuale presente nel report per ogni gruppo mostrato: esso modificherà l’aspetto dell’input form, proprio come per la cancellazione degli stati nel workflow dei documenti, specificando il record selezionato e chiedendo conferma all’utente dell’operazione da svolgere, il quale potrà proseguire annullando o salvando le modifiche; a seguito di queste operazioni si verrà quindi rimandati in una pagina con gli stessi oggetti denominati _BIS in maniera tale da permettere ulteriori operazioni.
75
Tornando alla pagina contenente la lista dei gruppi presenti, il secondo link ipertestuale presente nel report rimanderà alla pagina della gestione delle associazioni tra di essi e gli stati dei documenti: essa presenterà, in maniera analoga a quella appena sopracitata, un oggetto button per tornare alla lista dei gruppi, un report degli stati associati al gruppo selezionato ed un input form utile ad aggiungerne altri.
Figura 4.29, report delle associazioni tra gruppi di lavoro e stati
La logica tra le due pagine è identica: tramite l’input form, popolato dalla Select
S_STATO_GRP_RIMASTI, l’utente potrà associare uno stato al gruppo di lavoro selezionato e,
tramite il link ipertestuale presente nel report, potrà invece eliminare l’associazione presente,
modificando di fatto la visibilità dei documenti per il gruppo selezionato.
76
CONCLUSIONI
Questo lavoro di tesi si è svolto ponendosi come obiettivo quello di semplificare il lavoro del reparto amministrativo della FTGM accorpando diverse funzionalità provenienti da diversi sistemi. A partire quindi dalle vecchie versioni dei Database e dai vecchi sistemi basati sul BMF2, sono stati sviluppati un unico Database completo ed un unico applicativo web che permette alle diverse figure di svolgere i propri compiti.
Rispetto ai vecchi sistemi sono state aggiunte diverse migliorie: adesso il reparto amministrativo potrà modificare il grafo di evoluzione dei documenti, la disposizione dei diversi utenti all’interno dei vari gruppi di lavoro, e potrà inoltre gestire autonomamente la visibilità che possiedono i vari gruppi su due livelli, ovvero tramite l’associazione tra gruppi stessi e tra gruppi e stati dei documenti, rendendo il nostro applicativo web maggiormente flessibile rispetto ai precedenti sistemi. Un altro aspetto importante è stato quello di minimizzare la possibilità di errore dovute ad un inserimento manuale dei dati: creando infatti un Database unico e associando le diverse entità tramite delle relazioni, e quindi tramite l’utilizzo delle FK, gli utenti non potranno effettuare delle associazioni con dei dati errati in quanto saranno sempre vincolati a selezionare dei dati già esistenti. Il nostro sistema presenterà quindi una forte modularità: le diverse macroaree, infatti, svolgeranno dei compiti precisi, ma saranno anche in grado di interagire tra di loro grazie alle diverse associazioni presenti tra i diversi atti.
Infine, questo sistema migliora il sistema di reportistica: infatti l’utilizzo del BMF3 ha permesso di renderla più chiara e comprensibile, grazie ad alcune migliorie grafiche e ad alcune customizzazioni che rendono più chiare le operazioni svolte dal personale amministrativo.
Per svolgere questo lavoro si è quindi rivelato necessario approfondire non solo la conoscenza stessa del BMF3, di tutti i linguaggi utilizzati per programmarlo e della sua architettura strutturata su tre livelli, ma anche quella relativa al workflow seguito da parte del reparto amministrativo: il nostro scopo, infatti, è stato quello di creare un sistema che si adattasse alle loro esigenze sfruttando le nuove tecnologie messe a disposizione, e che allo stesso tempo rendesse chiaro ed intuitivo il loro lavoro.
Questo lavoro, come detto in precedenza, copre soltanto una parte di quello che sarà l’applicativo nella sua versione finale: tramite il percorso intrapreso, infatti, gli sviluppatori della FTGM potranno sviluppare ulteriori funzionalità per HMSDOCUM, in maniera tale da soddisfare pienamente le esigenze del reparto amministrativo, migliorando la qualità del lavoro che svolgono quotidianamente.
77