Grafico del flusso
Descrizione
Il flusso project-decentralized-owner-min-form-full-validation-flow è un flusso Decentralizzato che modella il ciclo di vita di un progetto di ricerca, dalla proposta, all'ottenimento del finanziamento e dei successivi risultati.E' previsto
- form SEMPLIFICATO di raccolta dati per il responsabile scientifico
- flusso di validazione breve COMPLETO da schema riportato
L'avvio del processo viene effettuato dal responsabile del progetto che ha a disposizione un form semplificato di compilazione.
Ultimata la compilazione, il responsabile procede con la sottomissione della proposta agli uffici preposti (centralizzati o dipartimentali) che si occupano di portare avanti il processo amministrativo con l'ente finanziatore.
Questo flusso prevede i seguenti attori nelle diverse visioni.
- Visione completa
- Helpdesk - HD
Team con profili:- Profilo Helpdesk
- Profilo Helpdesk per i Progetti (project)
- Helpdesk - HD
- Visione dipartimentale
- Organi dipartimentali - OD
Team con la seguente naming convention "Profilo di dipartimento per XXX", dove XXX è il nome del dipartimento
La completa operatività su un dato progetto è consentita solo per il dipartimento marcato come "Principale"
I dipartimenti aggregati avranno accesso in sola lettura.
- Organi dipartimentali - OD
- Visione personale
- Responsabile scientifico - RS
Persona appartenente al team "Utenti", che compare tra i responsabili del progetto. Cfr modello dati TAB Soggetti interni - Partecipante - PA
Persona appartenente al team "Utenti", che compare tra i partecipanti del progetto. Cfr modello dati TAB Soggetti interni - Referente amministrativo - RA
Persona appartenente al team "Utenti", che compare tra i referenti amministrativi del progetto. Cfr modello dati TAB Soggetti interni - Delegati - RD
Persona appartenente al team "Utenti", che compare tra i delegati alla compilazione del progetto. Cfr modello dati TAB Soggetti interni
- Responsabile scientifico - RS
Nel grafico, per chiarezza, vengono riportate però solo le transizioni di stato canoniche.
Inoltre, facciamo presente che gli stati in arancione sono gli stati di sincronizzazione con UGOV-PJ
Etichette Stati
I nomi degli stati possono essere personalizzati con la funzione di Gestione etichette.
Nella tabella sottostante vengono riportati tutti gli stati previsti dal flusso con relativa etichetta e valore di default.
Vengono anche fornite le etichette per i vari bottoni che consentono lo spostamento di stato.
Di default venegono utilizzate le etichette dei bottoni per lo stato successivo, è possibile configurare il flusso in maniera tale da utlizzare anche le etichette dei bottoni per lo stato precedente.
Esempio di utilizzo: l'oggetto si trova nello stato in attesa di essere validato, i possibili stati di cambio sono bozza e operativo. Il bottone per lo stato operativo utilizzerà l'etichetta per lo stato successivo, mentre il bottone per lo stato bozza utilizzerà l'etichetta per lo stato precedente.
Identificativo stato | Chiave etichetta stato | Valore default stato | Etichetta del bottone stato successivo | Etichetta del bottone stato precedente | Valore etichetta del bottone stato successivo | Valore etichetta del bottone stato precedente |
---|---|---|---|---|---|---|
draft | wfState.prj.draft | Bozza | button.forward.to.prj.draft | button.backward.to.prj.draft | Salva e invia in "Bozza" | Torna in "Bozza" |
internalSubmitted | wfState.prj.internalSubmitted | In Lavorazione | button.forward.to.prj.internalSubmitted | button.backward.to.prj.internalSubmitted | Invia la proposta | Riporta "In lavorazione" |
internalFinal | wfState.prj.internalFinal | Proposta definitiva | button.forward.to.prj.internalFinal | button.backward.to.prj.internalFinal | Rendi definitiva | Riporta in "Proposta definitiva" |
internalApproved | wfState.prj.internalApproved | Proposta approvata da presentare | button.forward.to.prj.internalApproved | button.backward.to.prj.internalApproved | Approva la proposta | Riporta in "Proposta approvata da presentare" |
internalRejected | wfState.prj.internalRejected | Proposta non presentata | button.forward.to.prj.internalRejected | button.backward.to.prj.internalRejected | Invia in "Proposta non presentata" | Riporta in "Proposta non presentata" |
grantorSubmitted | wfState.prj.grantorSubmitted | Proposta presentata | button.forward.to.prj.grantorSubmitted | button.backward.to.prj.grantorSubmitted | Presenta la proposta | Riporta in "Proposta presentata" |
grantorApproved | wfState.prj.grantorApproved | Proposta accettata da ente finanziatore | button.forward.to.prj.grantorApproved | button.backward.to.prj.grantorApproved | Invia in "Proposta accettata da ente finanziatore" | Riporta in "Proposta accettata da ente finanziatore" |
grantorRejected | wfState.prj.grantorRejected | Proposta rifiutata da ente finanziatore | button.forward.to.prj.grantorRejected | button.backward.to.prj.grantorRejected | Invia in "Proposta rifiutata da ente finanziatore" | Riporta in "Proposta rifiutata da ente finanziatore" |
financed | wfState.prj.financed | Finanziato | button.forward.to.prj.financed | button.backward.to.prj.financed | Salva e invia in "Finanziato" | Salva e invia in "Finanziato" |
operative | wfState.prj.operative | Operativo | button.forward.to.prj.operative | button.backward.to.prj.operative | Salva e invia in "Operativo" | Salva e invia in "Operativo" |
concluded | wfState.prj.concluded | Concluso | button.forward.to.prj.concluded | button.backward.to.prj.concluded | Salva e invia in "Concluso" | Salva e invia in "Concluso" |
Modello Dati
Il dettaglio del modello dati associato a questo flusso è disponibile alla seguente pagina Produzione - Modello dati (project - PRJ)
Configurazioni
Le configurazioni associate a questo flusso sono disponibili alla seguente pagina: Produzione - IRIS AP-RM Configurazioni: Progetti (Project - PRJ)
Permessi
Nella seguente sezione viene riportato il dettaglio dei permessi e delle transizioni di stato possibili per tutti gli attori del flusso.
Per quanto riguarda le transizioni di stato vengono riportati gli identificativi degli stati verso i quali è possibile effettuare la transizione.
Quando viene riportato il marcatore "__PREVIOUS_STATE__" significa che la transizione di stato è consentita verso lo stato precedente.
Di seguito la legenda dei permessi:
- c: create (disponibile solo per il primo stato del flusso)
- r: read
- w: write
- d: delete
- f: forward
Validazioni
Nella seguente sezione viene riportato il dettaglio delle validazioni per tutte le coppie (attore, stato) del flusso.
Le validazioni sono distinte nei seguenti macrotipi e sono riferite, se non specificato altrimenti, all'oggetto radice.
-
enter: validazione applicata in ingresso nello stato
La transizione in ingresso viene NEGATA se anche solo una validazione NON viene superata con successo. -
save: validazione applicata ad ogni salvataggio e quindi anche per ogni spostamento di TAB
Il salvataggio viene NEGATO se anche solo una validazione NON viene superata con successo. - delete: validazione applicata in fase di eliminazione di un oggetto radice
- element: validazione applicata agli elementi figli di un oggetto radice
- permissions: logiche di generazione dinamica dei permessi (rwfd) sull'oggetto radice che sovrascrive i permessi di flusso (rwfd)
- required: validazione di obbligatorietà di un attributo sull'oggetto radice.
-
complex: validazione complessa applicabile sia all'oggetto radice che agli elementi.
Per avere maggiori dettagli sulla validazione cliccare sull'identificativo della validazione
- salvataggio (save)
- eliminazione (delete)
Ad esempio la seguente stringa
internalOrganizationUnit:delete departmentDeleteValidator indica che la validazione "departmentDeleteValidator" è applicata in eliminazione di un elemento di tipo internalOrganizationUnit dell'oggetto radice.
Per avere maggiori dettagli sui possibili elementi fare riferimento alla definizione del modello, disponibile nella sezione Modello Dati.
Infine è possibile applicare le validazioni, condizionalmente al soddisfacimento di determinate condizioni (opzionali).
Queste condizioni sono specificate nella colonna "Applicabilità": se è specificato always, la validazione è sempre attiva.
Per avere maggiori dettagli sulle possibili condizioni di applicabilità e dei relativi parametri, fare riferimento alla lista completa nella sezione Definizione Apply Logic condivise.
Logiche (action/start)
Nella seguente sezione vengono riportate le
- START LOGICS
Le start logics sono le "azioni" che vengono eseguite in fase di creazione di un nuovo oggetto radice - ACTION LOGICS
Le action logics sono delle "azioni" che vengono eseguite al verificarsi di determinati eventi.
Gli eventi contemplati sono:- enter: ingresso in uno stato
- save: salvataggio dell'oggetto radice
- wfStartLogicAcademicFieldPrefill
- wfStartLogicPartner
- wfStartLogicMultipleOwners
- wfStartLogicInheritInternalOrganizationUnitFromTeamOfLoggedUser
- wfStartLogicInternalRepresentativeFromUser
- wfStartLogicIdentifier
- wfStartLogicProjectTypeFromCall
- wfStartLogicYearFromStartDate
- wfStartLogicVisibileOnPortal
- wfStartLogicPnrrProject
- wfStartLogicLegacy
- Bozza (draft)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- In Lavorazione (internalSubmitted)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Proposta definitiva (internalFinal)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Proposta approvata da presentare (internalApproved)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Proposta non presentata (internalRejected)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Proposta presentata (grantorSubmitted)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Proposta accettata da ente finanziatore (grantorApproved)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Proposta rifiutata da ente finanziatore (grantorRejected)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSavePersonalVision - Delegato (internalRepresentative)
- wfActionLogicSaveNewIdentifier
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Finanziato (financed)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Operativo (operative)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor
- Concluso (concluded)
- ENTER LOGICS
-
SAVE LOGICS
- wfActionLogicSavePersonalVision - Responsabile (owner)
- wfActionLogicSavePersonalVision - Partecipante (contributor)
- wfActionLogicSaveContextVision
- wfActionLogicSavePersonalVision - Referente amministrativo (administrativeOwner)
- wfActionLogicSaveElementStartDate
- wfActionLogicSaveFieldReset con parametri (booleanMap['cupOwner'], stringMap['cup']==null)
- wfActionLogicSaveFieldReset con parametri (booleanMap['cigOwner'], stringMap['cig']==null)
- wfActionLogicSaveFieldReset con parametri (element:evaluation|dateMap['expectedEvaluationDate'], booleanMap['expectedEvaluation']==false)
- wfActionLogicSaveInternalContributionInferenceFromGrantor