project archive versione 2

versione 1.00, 1 maggio 2012



Michele Liberi
mail: mliberi@gmail.com
tel.: 049 9116199, cell: 3485211456

indice



Introduzione

Project archive è un'applicazione web progettata su specifiche ABB per gestire la documentazione di progetto, a fronte di una comunità di utenti.

Tutto ruota intorno al concetto di progetto, ed ogni documento gestito da project archive è inserito nel contesto di un ben preciso progetto e può avere un numero arbitrario di allegati.

Le funzioni disponibili per gli utenti dipendono dal ruolo ad essi assegnato.

Descrizione dell'applicazione

I nuovi progetti possono essere creati nel sistema solo da utenti con il ruolo di assistant, ed è subordinata alla presenza degli stessi nel gestionale SAP, con il quale project archive è collegato.

Ogni progetto ha:

Ogni progetto inoltre può essere collegato con una relazione genitore-figlio ad un altro progetto da cui è stato derivato.

I documenti inseriti in project archive sono essenzialmente dei files, identificati in modo univoco da un codice documento che viene assegnato dal sistema al momento del check-in. Per ogni documento il sistema gestisce i seguenti attributi:

Ogni documento con tipologia corrispondenza o disegno può avere un numero arbitrario di allegati. Per ogni allegato il sistema gestisce i seguenti attributi:

Il sistema gestisce inoltre un flusso di approvazione per alcune tipologie di documenti.

L'accesso ai documenti viene controllato dal sistema in base alla tipologia del documento, ed al ruolo che ha l'utente nel sistema e nel progetto che lo contiene.

Ruoli

I ruoli possibili per gli utenti sono:

Esistono anche utenti che non hanno alcun ruolo, in tal caso non hanno accesso al sistema. Vengono censiti solo perchè in passato hanno avuto un ruolo e sono referenziati come proprietari di documenti o allegati agli stessi, o come PM o AS di progetti chiusi.

Funzioni

Quando si accede all'applicazione con il proprio browser preferito all'URL http://10.39.148.33/pm/pa2, dopo aver completato la fase di autenticazione, viene mostrata la pagina principale dell'applicazione nella quale l'utente può immettere dei filtri di ricerca e attivare delle funzioni.

Progetti

Creazione nuovo progetto

Funzione accessibile solo dalla pagina principale e riservata ad utenti con ruolo assistant.

Con un click sul tasto new_project gli utenti con ruolo assistant accedono alla pagina di creazione nuovo progetto.

Dopo aver compilato il modulo contenente il numero di progetto e le altre informazioni del progetto, con un click sul tasto add_project il progetto verrà effettivamente creato.

La creazione di un progetto è subordinata alla esistenza dello stesso nel sistema gestionale SAP, a cui project archive è colegato.

Ricerca progetti o visualizzazione dettagli di un progetto

Funzione accessibile a tutti gli utenti.

Con un click sul bottone prjdetails l'utente può visualizzare i dettagli di un singolo progetto (se viene fornito il project number), oppure la lista dei progetti che corrispondono ai filtri di ricerca immessi, dalla quale si può successivamente accedere alle informazioni di dettaglio dei singoli progetti.

L'accesso ai dettagli di un singolo progetto è possibile:

I filtri di ricerca pertinenti per la ricerca dei progetti sono:

Nella pagina di dettaglio di un progetto c'è una tabellina con tutte le informazioni associate al progetto, la linea di ascendenza e l'albero dei progetti derivati (ottenuti tramite elaborazione delle relazioni genitore-figlio), e una tabellina di conteggio dei documenti associati al progetto suddivisi per tipologia degli stessi.

Solo il PM o AS del progetto hanno accesso da questa pagina alle funzioni di modifica del progetto stesso, cioè possono modificare: PM, AS, lista di distribuzione, progetto genitore.

Cambio del PM o AS di un progetto

Funzione accessibile dalla pagina dei dettagli del progetto, riservata al PM o AS del progetto.

Dopo aver selezionato il nuovo PM e/o il nuovo AS, con un click sul tasto update_manager, l'utente può modificare il progetto.

Modifica della lista delle persone interessate alle notifiche

Funzione accessibile dalla pagina dei dettagli del progetto, riservata al PM o AS del progetto.

La lista delle persone facenti parte della lista di distribuzione avviene tramite menu a tendina a scelta multipla. Per selezionare/deselezionare un elemento bisogna premerlo con il mouse mantenendo premuto il tasto CTRL della tastiera.

Per modificare la lista di distribuzione del progetto, l'utente deve premere il tasto update_dlist

Modifica della relazione genitore-figlio di un progetto

Funzione accessibile dalla pagina dei dettagli del progetto, riservata al PM o AS del progetto.

L'albero delle derivazioni dei vari progetti viene mantenuta tramite un collegamento tra figlio e genitore, ovvero tra progetto derivato e progetto dal quello esso è stato derivato.

Per modificare l'albero il PM o AS deve accedere alla pagina di dettaglio del progetto derivato (figlio), introdurre nel campo parent il codice del progetto da cui è stato derivato, e premere il tasto update_parent.

Cancellazione di un progetto

Funzione accessibile dalla pagina dei dettagli del progetto, riservata al PM o AS del progetto.

Solo nel caso il progetto non contenga alcun documento, nella pagina di dettaglio ci sarà il tasto prj_delete.

L'utente dovrà confermare la cancellazione del progetto con un click sul tasto confirm_prj_delete.

Documenti

Ricerca documenti

Funzione accessibile a tutti gli utenti, dalla pagina principale.

Questa è senz'altro la funzione principale del sistema: permette di cercare nell'archivio tutti i documenti che corrispondono ai filtri di ricerca immessi.

Con un click sul tasto search viene generata la lista di tutti i documenti che corrispondono ai criteri di ricerca immessi. Inoltre verrà generata una tabellina riepilogativa del numero dei documenti selezionati suddivisi per tipo.

Tutti i filtri di ricerca relativi alla selezione dei progetti continuano a funzionare esattamente come descritto nel capitolo precedente: i documenti selezionati saranno quelli relativi ad uno dei progetti selezionati.

L'utente potrà ulteriormente circoscrivere la ricerca utilizzando i seguenti filtri specifici per i documenti:

A partire dalla lista generata dalla funzione di ricerca l'utente potrà:

Dettagli di un documento

Funzione accessibile a tutti gli utenti, con un click sul collegamento presente nella colonna title della pagina contenente i risultati della ricerca.

Si accede ad una pagina contenente le informazioni di dettaglio del documento non contenute nella tabella principale.

Tra i dettagli del documento ci sono i suoi allegati.

Accesso ai files associati ai documenti

Funzione accessibile a tutti gli utenti, con alcune limitazioni legate alla tipologia dei documenti.

Nella pagina contenente i risultati di una ricerca, per ogni documento, nella colonna files, c'è un collegamento al file in esso contenuto.

Gli utenti con ruolo rev (revisore dei conti) ha accesso solo a files associati a documenti con tipo costo/conteggio oppure logistico/contabile.

L'accesso a files di tipo costo/conteggio è riservato al PM del progetto e al suo assistente.

L'accesso ai disegni non approvati è riservato al proprietario (utente che lo ha immesso in archivio), al PM e al suo AS.

Per scaricare un insieme di files con un'operazione unica è disponibile la funzione extract_selected, che l'utente attiverà dopo aver scelto i files desiderati. Arriverà un file in formato .zip dal quale l'utente potrà estrarre i files.

Creazione nuovi documenti

Funzione accessibile dalla pagina principale e dalla pagina contenente i risultati di una ricerca, riservata ad utenti con ruolo pm (project manager), pe (project engineer), as (assistant), con un click sul tasto new_document.

La creazione di nuovi documenti può avvenire con tre modalità:

  1. file singolo
  2. files multipli
  3. stampa PDF

Nel primo caso l'utente seleziona un singolo file da inserire nell'archivio.

Nel secondo invece i files da inserire nell'archivio sono contenuti in un unico file .zip.

Il terzo è un caso un po' particolare. Su ogni PC è installata una stampante PDF tramite la quale gli utenti possono creare dei files a partire da qualsiasi programma, ad esempio lotus notes, che verranno salvati direttamente sul server dove gira project archive. Nel modulo di check in è presente un tasto pdf_files che consente all'utente di andare a selezionare uno dei files PDF che ha precedentemente creato. Nella stessa pagina l'utente può cancellare files PDF utilizzando il tasto pdf_remove

Nel modulo è inoltre presente un'opzione send e-mail to PM: se impostato il PM del progetto riceverà una e-mail di notifica con i dettagli del documento inserito nell'archivio.

L'inserimento del documento avviene quando l'utente preme il tasto check_in o pdf_checkin.

Nuova revisione di un documento

Funzione accessibile dalla pagina contenente i risultati di una ricerca con un click sul collegamento newrev presente nella colonna action, riservata ad utenti con ruolo pm, pe, as.

La funzione non è disponibile per i documenti per i quali esiste già una revisione successiva, o per i disegni non approvati.

La creazione di una nuova revisione di un documento è simile a quella di un documento ex novo, ma prevede solo la modalità "file singolo".

Anche in questo caso nel modulo è presente l'opzione send e-mail to PM: se impostato il PM del progetto riceverà una e-mail di notifica con i dettagli del documento inserito nell'archivio.

Cancellazione di un documento

Funzione accessibile dalla pagina contenente i risultati di una ricerca con un click sul collegamento delete presente nella colonna action, riservata al proprietario del documento.

L'utente dovrà confermare l'intenzione di cancellare il documento con un click sul tasto confirm_delete.

Tutti gli allegati al documento vengono parimenti cancellati.

Approvazione disegni

Funzione accessibile dalla pagina contenente i risultati di una ricerca con un click sul collegamento approve presente nella colonna action, riservata al PM del progetto che contiene il disegno.

Allegati

Creazione allegati

Funzione accessibile dalla pagina principale e dalla pagina contenente i risultati di una ricerca, riservata ad utenti con ruolo pm (project manager), pe (project engineer), as (assistant), con un click sul tasto new_document.

La creazione di allegati ad un documento può avvenire con due modalità:

  1. file singolo
  2. files multipli

Nel primo caso l'utente seleziona un singolo file da inserire nell'archivio.

Nel secondo invece i files da inserire nell'archivio sono contenuti in un unico file .zip.

L'inserimento dell'allegato avviene quando l'utente preme il tasto attach.

Accesso agli allegati

Funzione accessibile a tutti gli utenti.

Nella pagina dei dettagli di un documento è presente una tabellina con una riga per ognuno degli allegati al documento. Per ogni allegato è disponibile un collegamento al file in esso contenuto.

Per scaricare un insieme di files con un'operazione unica è disponibile la funzione extract_selected, che l'utente attiverà dopo aver scelto i files desiderati. Arriverà un file in formato .zip dal quale l'utente potrà estrarre i files.

Cancellazione allegato

Funzione accessibile dalla pagina di dettaglio di un documento, con un click sul collegamento delete presente nella colonna action, riservata al proprietario dell'allegato.

L'utente dovrà confermare l'intenzione di cancellare il documento con un click sul tasto confirm_delete.

Utenti

La gestione degli utenti esula dall'applicazione web e viene fatta a mano dall'amministratore di sistema.

tabella riepilogativa funzioni/ruoli

funzione/ruolosuperpmasperorev
creazione nuovo progetto*-*---
ricerca progetti o visualizzazione dettagli di un progetto******
cambio del PM o AS di un progetto*11---
modifica della relazione genitore-figlio di un progetto*11---
modifica della lista delle persone interessate alle notifiche*11---
cancellazione di un progetto*11---
ricerca documenti*****2
dettagli di un documento******
accesso ai files associati a disegni non approvati*1----
accesso ai files di tipo costo/conteggio*11---
accesso ai files associati ad altri documenti******
creazione nuovi documenti****--
nuova revisione di un documento****--
cancellazione di un documento*333--
approvazione disegni**----
creazione allegati****--
accesso agli allegati******
cancellazione allegato*333--

Legenda:
*disponibile
-non disponibile
1solo per il PM o AS del progetto
2ricerca limitata ai soli documenti di tipo costo/conteggio e logistico/contabile
3solo se proprietario del file

notifiche

Project archive prevede delle notifiche via e-mail collegate a funzioni richiamate dagli utenti.

Ove non specificato diversamente la e-mail di notifica viene inviata al PM del progetto, al AS del progetto e a tutti i componenti della lista di distribuzione.

Le situazioni che prevedono una notifica sono le seguenti:

Architettura e componenti dell'applicazione

Project archive è un'applicazione pensata per funzionare in ambiente UNIX, ma in linea teorica può funzionare anche in ambiente Windows utilizzando l'ambiente di compatibilità open source Cygwin.

Si tratta di un'applicazione scritta in korn shell, linguaggio di programmazione standard in ambiente UNIX, che utilizza l'interfaccia CGI. Per il suo funzionamente è quindi necessario un server HTTP opportunamente configurato.

La script fa ampio uso di comandi del mio personale pacchetto di strumenti, che devono essere installati nel sistema e sono un prerequisito indispensabile. Essi sono pubblicamente disponibili e liberamente scaricabili all'URL http://mliberi.top.

Per quanto riguarda i dati gestiti dall'applicazione non è necessario alcun database relazionale, è sufficiente il filesystem di UNIX.

Struttura del database

Una delle peculiarità di project archive versione 2 (nel seguito brevemente pa2) è che non usa un database relazionale, ma si appoggia esclusivamente su filesystem.

Questa caratteristica rende molto semplice la gestione dei dati da un punto di vista sistemistico e consente di operare sugli stessi con i normali comandi del sistema operativo UNIX (ls, grep, awk, etc.).

pa2 può funzionare con qualunque tipo di filesystem, ma per motivi di prestazioni e di ottimizzazione dello spazio si consiglia di utilizzare "raiserFS", di gran lunga migliore di tutti gli altri.

Tutti i dati sono contenuti in un'unica directory base e tutti i componenti descritti nel seguito sono contenuti in questa directory base.

Nel database di pa2 esistono quattro tipologie di oggetti:

Per ogni oggetto, al momento della creazione, la procedura andrà a generare un identificatore univoco. Tutti gli identificatori di oggetti sono memorizzati nella directory .r.

Il file .csys contiene i contatori per la numerazione progressiva dei record all'interno del database.

Il file .pol contiene i contatori per la numerazione progressiva dei documenti.

I files contenuti nei documenti sono salvati nella directory .p/N.18.ext, con N=id univoco del record, ext=estensione originale del file (doc, xls, pdf, etc.).

I files allegati ai documenti sono salvati nella directory .p/N.23.ext, con N=id univoco del record, ext=estensione originale del file (doc, xls, pdf, etc.).

persone

Ogni persona censita nel DB ha i seguenti attributi:

Per ogni persona esiste un file nella directory people/.k/, il nome del file corrisponde al valore dell'attributo username, chiave primaria del record.

Per ottimizzare le ricerche massive i dati relativi agli oggetti di questo tipo sono mantenuti anche nel file people/.fts.

progetti

Ogni progetto censito nel DB ha i seguenti attributi:

Per ogni progetto esiste un file nella directory projects/.k/, il nome del file corrisponde al valore dell'attributo P, chiave primaria del record.

Per ottimizzare le ricerche massive i dati relativi agli oggetti di questo tipo sono mantenuti anche nel file projects/.fts.

documenti

Ogni documento censito nel DB ha i seguenti attributi:

Per ogni documento esiste un file nella directory docs/.k/, il nome del file corrisponde al numero progressivo assegnato da pa2 al momento del check-in, infatti il record non ha chiave primaria.

Per ottimizzare le ricerche massive i dati relativi agli oggetti di questo tipo sono mantenuti anche nel file docs/.fts.

allegati

Ogni allegato censito nel DB ha i seguenti attributi:

Per ogni allegato esiste un file nella directory attachs/.k/, il nome del file corrisponde al numero progressivo assegnato da pa2 al momento del check-in, infatti il record non ha chiave primaria.

Per ottimizzare le ricerche massive i dati relativi agli oggetti di questo tipo sono mantenuti anche nel file attachs/.fts.