Grafico del flusso
Descrizione
Il flusso publicEngagement-flow è un flusso di validazione per il censimento di iniziative di public engagement.Questo flusso prevede uno step di validazione da parte di una authority (centrale o dipartimentale)
Sono previsti i seguenti attori nelle diverse visioni.
- Visione completa
- Helpdesk - HD
Team con profilo "Profilo Help Desk per le iniziative di public engagement (publicEngagement)"
- Helpdesk - HD
- Visione dipartimentale
- Organi dipartimentali - OD
Utenti appartenenti al team con la seguente naming convention "Profilo di dipartimento per XXX", dove XXX è il nome del dipartimento
Sono abilitati a questa visione tutti i dipartimenti presenti nella sezione "Dipartimenti".
Cfr modello dati TAB Referenti
Questo flusso prevede il calcolo dinamico dei permessi per la visione dipartimentale (segnalato nel grafico dal simbolo "+").
- Organi dipartimentali - OD
- Visione personale
- Responsabili scientifici - RS
Persona appartenente al team "Utenti", che compare tra i responsabili dell'iniziativa.
Cfr modello dati TAB Referenti - Partecipante - PA
Persona appartenente al team "Utenti", che compare tra i partecipanti all'iniziativa.
Cfr modello dati TAB Referenti - Delegato - RD
Persona appartenente al team "Utenti", che compare tra i delegati alla compilazione dell'iniziativa.
Cfr modello dati TAB Referenti
- Responsabili scientifici - RS
Trattandosi di un flusso a prodotto è possibile effettuare delle personalizzazioni, per esempio è possibile abilitare/disabilitare la creazione dell'oggetto da parte dell'owner, di default la creazione viene consentita, mentre se la variabile ap.publicEngagement-flow.owner.create viene settata a false la creazione viene impedita.
Altro esempio, è possibile "salatare degli stati" per farlo è necessario introdurre le configurazioni che personalizzano i "nextStates" dei vari attori.
Per maggiori dettagli fare riferimento alla logica di Customizzazione flussi Customizzazione flussi
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.pen.draft | Bozza | button.forward.to.pen.draft | button.backward.to.pen.draft | Salva e invia in "Bozza" | Riporta in "Bozza" |
approved | wfState.pen.approved | Approvato | button.forward.to.pen.approved | button.backward.to.pen.approved | Approva iniziativa | Torna in "Iniziativa approvata" |
submitted | wfState.pen.submitted | In Validazione | button.forward.to.pen.submitted | button.backward.to.pen.submitted | Salva e invia in "In Validazione" | Salva e invia in "In Validazione" |
reopened | wfState.pen.reopened | Riaperto | button.forward.to.pen.reopened | button.backward.to.pen.reopened | Salva e invia in "Riaperto" | Salva e invia in "Riaperto" |
rejected | wfState.pen.rejected | Non Ammesso | button.forward.to.pen.rejected | button.backward.to.pen.rejected | Abbandona | Salva e invia in "Non Ammesso" |
Modello Dati
Il dettaglio del modello dati associato a questo flusso è disponibile alla seguente pagina Produzione - Modello dati (publicEngagement - PEN)
Configurazioni
Le configurazioni associate a questo flusso sono disponibili alla seguente pagina: Produzione - IRIS AP-RM Configurazioni: Terza Missione (public engagement - PEN)
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.
Stato | Attori | MacroTipo | Tipo | Attributo/Identificativo | Applicabilita' |
---|---|---|---|---|---|
Bozza
(draft) |
all | enter | required | wfItemTypeId | |
dateMap[startDate] | |||||
description | |||||
personMap[owner] |
isNull
( id )
|
||||
organizationUnitMap[internalOrganizationUnit] |
isNull
( id )
booleanFieldTrue
( customizedInternalOrganization, false )
|
||||
complex | checkCreationPermissionsValidator | ||||
ownerWithSameDepartmentAsHeadValidator | |||||
transitionCommentValidator | |||||
save | required | dateMap[startDate] | always | ||
complex | sameDefinitionForGenericItemValidator | always | |||
itemTypeNotWithdrawnValidator | always | ||||
delete | complex | childAndParentDetectorDeleteValidator | always | ||
element | required | contributor:save addOrgUnitFromNewOwnerValidator | always | ||
complex | owner:save addOrgUnitFromNewOwnerValidator | always | |||
owner:save ownerTimeReportingValidator | always | ||||
impactIndicators:save requiredAndUniquenessElementValidator | always | ||||
publicInvolved:save requiredAndUniquenessElementValidator | always | ||||
publicInvolved:save stringMap[specificOtherValue] |
dictionaryFieldValue
( dictionary, publicInvolvedPublicEngagement.other )
|
||||
Responsabile/Proprietario (owner) | element | complex | owner:save currentUserCannotEditHimself | always | |
owner:delete currentUserCannotDeleteHimself | always | ||||
suardInitiative:delete notAllowedValidator | always | ||||
suardInitiative:save notAllowedValidator | always | ||||
Organi dipartimentali (department) | element | complex | internalOrganizationUnit:delete departmentDeleteValidator | always | |
internalOrganizationUnit:save departmentChangeRoleValidator | always | ||||
Delegato (internalRepresentative) | element | complex | internalRepresentative:delete notAllowedValidator | always | |
internalRepresentative:save notAllowedValidator | always | ||||
owner:delete notAllowedValidator | always | ||||
owner:save notAllowedValidator | always | ||||
suardInitiative:delete notAllowedValidator | always | ||||
suardInitiative:save notAllowedValidator | always | ||||
Approvato
(approved) |
all | enter | required | wfItemTypeId | always |
description | always | ||||
stringMap[abstract] | always | ||||
dateMap[startDate] | always | ||||
year | always | ||||
booleanMap[istitutionalInitiative] | always | ||||
stringMap[targetDescription] | always | ||||
booleanMap[evaluationEnable] | always | ||||
booleanMap[visibleOnPortal] | always | ||||
wfDictionaryMap[geographicalImpact] | always | ||||
numberMap[totalBudget] | always | ||||
stringMap[estimatedImpact] | always | ||||
wfDictionaryMap[involvementType] | always | ||||
element:secondaryCategory | always | ||||
element:activityRecipient | always | ||||
element:evaluationTool |
booleanFieldTrue
( evaluationEnable, false )
|
||||
element:internalOrganizationUnit | always | ||||
element:scientificAreasInvolved | always | ||||
element:rmCustomClassification | always | ||||
element:sustainableDevelopmentGoal | always | ||||
element:ercKeyword | always | ||||
element:owner | always | ||||
booleanMap[periodicEvent] | always | ||||
wfDictionaryMap[periodicity] |
booleanFieldTrue
( periodicEvent, false )
|
||||
booleanMap[oneDayOnlyEvent] | always | ||||
booleanMap[knownEndDate] | always | ||||
integerMap[numTotalDay] |
booleanFieldFalse
( periodicEvent, true )
booleanFieldTrue
( knownEndDate, false )
|
||||
dateMap[endDate] |
booleanFieldTrue
( knownEndDate, false )
|
||||
complex | checkDatePublicEngagement | always | |||
startDateAndEndDateValidator | always | ||||
ownerTimeReportingValidator | always | ||||
financingTotalBudgetValidator | always | ||||
dateCoverageAndOverlapValidator | always | ||||
secondaryCategoryDifferFromType | always | ||||
publicInvolvedValidatorPublicEngagement | always | ||||
roleElementValidator | always | ||||
save | complex | sameDefinitionForGenericItemValidator | always | ||
itemTypeNotWithdrawnValidator | always | ||||
element | complex | owner:save ownerTimeReportingValidator | always | ||
In Validazione
(submitted) |
all | enter | required | description | always |
stringMap[abstract] | always | ||||
dateMap[startDate] | always | ||||
wfItemTypeId | always | ||||
year | always | ||||
booleanMap[istitutionalInitiative] | always | ||||
stringMap[targetDescription] | always | ||||
booleanMap[evaluationEnable] | always | ||||
booleanMap[visibleOnPortal] | always | ||||
wfDictionaryMap[geographicalImpact] | always | ||||
numberMap[totalBudget] | always | ||||
stringMap[estimatedImpact] | always | ||||
wfDictionaryMap[involvementType] | always | ||||
element:activityRecipient | always | ||||
element:evaluationTool |
booleanFieldTrue
( evaluationEnable, false )
|
||||
element:internalOrganizationUnit | always | ||||
element:scientificAreasInvolved | always | ||||
element:secondaryCategory | always | ||||
element:rmCustomClassification | always | ||||
element:sustainableDevelopmentGoal | always | ||||
element:ercKeyword | always | ||||
element:owner | always | ||||
booleanMap[periodicEvent] | always | ||||
wfDictionaryMap[periodicity] |
booleanFieldTrue
( periodicEvent, false )
|
||||
booleanMap[oneDayOnlyEvent] | always | ||||
booleanMap[knownEndDate] | always | ||||
integerMap[numTotalDay] |
booleanFieldFalse
( periodicEvent, true )
booleanFieldTrue
( knownEndDate, false )
|
||||
dateMap[endDate] |
booleanFieldTrue
( knownEndDate, false )
|
||||
complex | checkDatePublicEngagement | always | |||
transitionCommentValidator | always | ||||
startDateAndEndDateValidator | always | ||||
ownerTimeReportingValidator | always | ||||
financingTotalBudgetValidator | always | ||||
dateCoverageAndOverlapValidator | always | ||||
secondaryCategoryDifferFromType | always | ||||
publicInvolvedValidatorPublicEngagement | always | ||||
roleElementValidator | always | ||||
save | complex | sameDefinitionForGenericItemValidator | always | ||
itemTypeNotWithdrawnValidator | always | ||||
element | required | contributor:save addOrgUnitFromNewOwnerValidator | always | ||
complex | owner:save addOrgUnitFromNewOwnerValidator | always | |||
owner:save ownerTimeReportingValidator | always | ||||
impactIndicators:save requiredAndUniquenessElementValidator | always | ||||
publicInvolved:save requiredAndUniquenessElementValidator | always | ||||
publicInvolved:save stringMap[specificOtherValue] |
dictionaryFieldValue
( dictionary, publicInvolvedPublicEngagement.other )
|
||||
Organi dipartimentali (department) | element | complex | internalOrganizationUnit:save departmentChangeRoleValidator | always | |
internalOrganizationUnit:delete departmentDeleteValidator | always | ||||
Riaperto
(reopened) |
all | enter | required | wfItemTypeId | always |
description | always | ||||
stringMap[abstract] | always | ||||
dateMap[startDate] | always | ||||
year | always | ||||
stringMap[targetDescription] | always | ||||
booleanMap[evaluationEnable] | always | ||||
booleanMap[visibleOnPortal] | always | ||||
wfDictionaryMap[geographicalImpact] | always | ||||
numberMap[totalBudget] | always | ||||
stringMap[estimatedImpact] | always | ||||
element:evaluationTool |
booleanFieldTrue
( evaluationEnable, false )
|
||||
element:internalOrganizationUnit | always | ||||
element:owner | always | ||||
complex | startDateAndEndDateValidator | always | |||
save | required | dateMap[startDate] | always | ||
complex | sameDefinitionForGenericItemValidator | always | |||
itemTypeNotWithdrawnValidator | always | ||||
delete | complex | childAndParentDetectorDeleteValidator | always | ||
element | required | contributor:save addOrgUnitFromNewOwnerValidator | always | ||
complex | owner:save addOrgUnitFromNewOwnerValidator | always | |||
owner:save ownerTimeReportingValidator | always | ||||
impactIndicators:save requiredAndUniquenessElementValidator | always | ||||
publicInvolved:save requiredAndUniquenessElementValidator | always | ||||
publicInvolved:save stringMap[specificOtherValue] |
dictionaryFieldValue
( dictionary, publicInvolvedPublicEngagement.other )
|
||||
Organi dipartimentali (department) | element | complex | internalOrganizationUnit:delete departmentDeleteValidator | always | |
internalOrganizationUnit:save departmentChangeRoleValidator | always | ||||
Responsabile/Proprietario (owner) | element | complex | owner:save currentUserCannotEditHimself | always | |
owner:delete currentUserCannotDeleteHimself | always | ||||
suardInitiative:delete notAllowedValidator | always | ||||
suardInitiative:save notAllowedValidator | always | ||||
Delegato (internalRepresentative) | element | complex | suardInitiative:delete notAllowedValidator | always | |
suardInitiative:save notAllowedValidator | always | ||||
Non Ammesso
(rejected) |
all | enter | required | wfItemTypeId | always |
description | always | ||||
stringMap[abstract] | always | ||||
dateMap[startDate] | always | ||||
year | always | ||||
stringMap[targetDescription] | always | ||||
booleanMap[evaluationEnable] | always | ||||
booleanMap[visibleOnPortal] | always | ||||
wfDictionaryMap[geographicalImpact] | always | ||||
numberMap[totalBudget] | always | ||||
stringMap[estimatedImpact] | always | ||||
stringMap[transitionComment] | always | ||||
element:evaluationTool |
booleanFieldTrue
( evaluationEnable, false )
|
||||
element:internalOrganizationUnit | always | ||||
element:scientificAreasInvolved | always | ||||
element:owner | always | ||||
complex | startDateAndEndDateValidator | always | |||
secondaryCategoryDifferFromType | always | ||||
save | complex | sameDefinitionForGenericItemValidator | always | ||
itemTypeNotWithdrawnValidator | always | ||||
delete | complex | childAndParentDetectorDeleteValidator | always | ||
element | complex | owner:save ownerTimeReportingValidator | always |
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
- wfStartLogicCopyFromPublicEngagement
- wfStartLogicIdentifier
- wfStartLogicYearFromStartDate
- wfStartLogicMultipleOwners
- wfStartLogicMultipleInternalOrganizationUnits
- wfStartLogicPublicEngagement
- wfStartLogicAcademicAreaFromOwner
- wfStartLogicVisibileOnPortal
- Bozza (draft)
- ENTER LOGICS
- SAVE LOGICS
- Approvato (approved)
- ENTER LOGICS
- SAVE LOGICS
- In Validazione (submitted)
- ENTER LOGICS
- SAVE LOGICS
- Riaperto (reopened)
- ENTER LOGICS
- SAVE LOGICS
- Non Ammesso (rejected)
- ENTER LOGICS
- SAVE LOGICS