Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Grafico del flusso

Descrizione

Il flusso publicEngagement-validation-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)"
    • Divisione Ricerca - DR
      Team con profilo "Profilo Divisione Ricerca"
  • 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 "+").
      Per maggiori dettagli fare riferimento a wfIdentityLogicMultipleHeadOfDepartmentPublicEngagementPermissionsJs
  • Visione personale
    • Responsabili scientifici - RS
      Persona appartenente al team "Utenti", che compare tra i responsabili dell'iniziativa.
      Cfr modello dati TAB Referenti
      Questo flusso prevede il calcolo dinamico degli stati raggiungibili per la visione personale del responsabile (segnalato nel grafico dal simbolo "*").
      Per maggiori dettagli fare riferimento a wfIdentityLogicMultipleOwnerPublicEngagementStatesJs
    • 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

É possibile abilitare/disabilitare la creazione dell'oggetto da parte dell'owner, di default la creazione viene consentita, mentre se la variabile ap.publicEngagement-validation-flow.owner.create viene settata a false la creazione viene impedita.

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 statoChiave etichetta statoValore default statoEtichetta del bottone stato successivoEtichetta del bottone stato precedenteValore etichetta del bottone stato successivoValore etichetta del bottone stato precedente
draftwfState.pen.draftBozzabutton.forward.to.pen.draftbutton.backward.to.pen.draftSalva e invia in "Bozza"Salva e invia in "Bozza"
approvedwfState.pen.approvedApprovatobutton.forward.to.pen.approvedbutton.backward.to.pen.approvedSalva e invia in "Approvato"Salva e invia in "Approvato"
submittedwfState.pen.submittedIn Validazionebutton.forward.to.pen.submittedbutton.backward.to.pen.submittedSalva e invia in "In Validazione"Salva e invia in "In Validazione"
reopenedwfState.pen.reopenedRiapertobutton.forward.to.pen.reopenedbutton.backward.to.pen.reopenedSalva e invia in "Riaperto"Salva e invia in "Riaperto"
rejectedwfState.pen.rejectedNon Ammessobutton.forward.to.pen.rejectedbutton.backward.to.pen.rejectedSalva e invia in "Non Ammesso"Salva e invia in "Non Ammesso"
Anchor
ModelloDati-anchor
ModelloDati-anchor

Modello Dati

Il dettaglio del modello dati associato a questo flusso è disponibile alla seguente pagina Produzione - Modello dati (publicEngagement - PEN)

Anchor
Permessi-anchor
Permessi-anchor

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
Viene, inoltre, fornito dettaglio dei TAB disponibili (quelli in sola lettura presentano il suffisso readonly)

StatoAttoriPermessiTransizioniTab
Bozza
(draft)
Helpdesk (helpdesk) c r w d approved,__PREVIOUS_STATE__
Responsabile/Proprietario (owner) c r w d submitted
Organi dipartimentali (headOfDepartment) c r w d approved
Delegato (internalRepresentative) r w submitted
Approvato
(approved)
Helpdesk (helpdesk) r submitted,reopened
Responsabile/Proprietario (owner) r reopened
Organi dipartimentali (headOfDepartment) r submitted,reopened
Delegato (internalRepresentative) r reopened
Partecipante (contributor) r none
In Validazione
(submitted)
Helpdesk (helpdesk) r w draft,approved,rejected,reopened
Responsabile/Proprietario (owner) r none
Organi dipartimentali (headOfDepartment) r w draft,approved,rejected
Delegato (internalRepresentative) r none
Riaperto
(reopened)
Helpdesk (helpdesk) r w d approved,__PREVIOUS_STATE__
Organi dipartimentali (headOfDepartment) r w d approved
Responsabile/Proprietario (owner) r w approved,submitted
Partecipante (contributor) r none
Delegato (internalRepresentative) r w approved
Non Ammesso
(rejected)
Helpdesk (helpdesk) r d submitted
Responsabile/Proprietario (owner) r none
Organi dipartimentali (headOfDepartment) r d submitted
Delegato (internalRepresentative) r none

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)
Le validazioni sono ulteriormente distinte nei seguenti tipi.
  • 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
Nel caso di validazioni di tipo element, oltre all'identificativo della validazione, viene riportato anche l'identificativo dell'elemento a cui è applicata e l'azione che l'ha scatenata:
  • 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.

StatoAttoriMacroTipoTipoAttributo/IdentificativoApplicabilita'
Bozza
(draft)
allenterrequiredwfItemTypeIdalways
dateMap[startDate]always
descriptionalways
complex checkCreationPermissionsValidator always
ownerStartValidatorPublicEngagement always
ownerWithSameDepartmentAsHeadValidator always
transitionCommentValidator always
savecomplex sameDefinitionForGenericItemValidator always
itemTypeNotWithdrawnValidator always
deletecomplex childAndParentDetectorDeleteValidator always
elementrequiredcontributor:save  addOrgUnitFromNewOwnerValidator always
complexowner:save  addOrgUnitFromNewOwnerValidator always
owner:save  integerMap[manDay]always
impactIndicators:save  impactIndicatorsValidatorPublicEngagement always
publicInvolved:save  publicInvolvedDuplicatedValidatorPublicEngagement always
publicInvolved:save  specificOtherValuePopulatedValidatorPublicEngagement always
Helpdesk (helpdesk) elementcomplexsuardInitiative:save  suardDepartmentHelpdeskInitiativeValidatorPublicEngagement always
Responsabile/Proprietario (owner) elementcomplexowner:save  ownerCannotEditHimself always
owner:delete  ownerCannotDeleteHimself always
suardInitiative:delete  notAllowedValidator always
suardInitiative:save  notAllowedValidator always
Organi dipartimentali (headOfDepartment) elementcomplexinternalOrganizationUnit:delete  departmentDeleteValidator always
internalOrganizationUnit:save  departmentChangeRoleValidator always
suardInitiative:save  suardDepartmentInitiativeValidatorPublicEngagement always
permissionscomplex wfIdentityLogicMultipleHeadOfDepartmentPublicEngagementPermissionsJs always
Delegato (internalRepresentative) elementcomplexinternalRepresentative: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)
allenterrequiredwfItemTypeIdalways
descriptionalways
stringMap[abstract]always
dateMap[startDate]always
numberMap[numTotalDay]always
yearalways
booleanMap[istitutionalInitiative]always
stringMap[targetDescription]always
booleanMap[evaluationEnable]always
booleanMap[visibleOnPortal]always
wfDictionaryMap[geographicalImpact]always
numberMap[totalBudget]always
stringMap[estimatedImpact]always
wfDictionaryMap[involvementType]always
complex checkToolEvaluation always
multipleOwnerValidator always
internalOrganizationUnitValidator always
startDateAndEndDateValidator always
periodicityValidatorPublicEngagement always
scientificAreasInvolvedValidatorPublicEngagement always
publicInvolvedAtLeastOneValidatorPublicEngagement always
publicInvolvedValidator always
ownerManDayValidator always
financingTotalBudgetValidator always
dateCheckCoverageAndOverlap always
ercKeywordValidatorPublicEngagement always
savecomplex sameDefinitionForGenericItemValidator always
itemTypeNotWithdrawnValidator always
elementrequiredowner:save  integerMap[manDay]always
Organi dipartimentali (headOfDepartment) permissionscomplex wfIdentityLogicMultipleHeadOfDepartmentPublicEngagementPermissionsJs always
In Validazione
(submitted)
allenterrequireddescriptionalways
stringMap[abstract]always
dateMap[startDate]always
wfItemTypeIdalways
numberMap[numTotalDay]always
yearalways
booleanMap[istitutionalInitiative]always
stringMap[targetDescription]always
booleanMap[evaluationEnable]always
booleanMap[visibleOnPortal]always
wfDictionaryMap[geographicalImpact]always
numberMap[totalBudget]always
stringMap[estimatedImpact]always
stringMap[transitionComment] transitionCommentRequired
wfDictionaryMap[involvementType]always
complex checkToolEvaluation always
multipleOwnerValidator always
internalOrganizationUnitValidator always
startDateAndEndDateValidator always
periodicityValidatorPublicEngagement always
scientificAreasInvolvedValidatorPublicEngagement always
publicInvolvedAtLeastOneValidatorPublicEngagement always
publicInvolvedValidator always
ownerManDayValidator always
financingTotalBudgetValidator always
dateCheckCoverageAndOverlap always
savecomplex sameDefinitionForGenericItemValidator always
itemTypeNotWithdrawnValidator always
elementrequiredowner:save  integerMap[manDay]always
compleximpactIndicators:save  impactIndicatorsValidatorPublicEngagement always
publicInvolved:save  publicInvolvedDuplicatedValidatorPublicEngagement always
publicInvolved:save  specificOtherValuePopulatedValidatorPublicEngagement always
Helpdesk (helpdesk) elementcomplexsuardInitiative:save  suardDepartmentHelpdeskInitiativeValidatorPublicEngagement always
Organi dipartimentali (headOfDepartment) elementcomplexsuardInitiative:save  suardDepartmentInitiativeValidatorPublicEngagement always
wfIdentityLogicMultipleHeadOfDepartmentPublicEngagementPermissionsJs always
internalOrganizationUnit:save  departmentChangeRoleValidator always
permissionscomplexinternalOrganizationUnit:delete  departmentDeleteValidator always
Riaperto
(reopened)
allenterrequiredwfItemTypeIdalways
descriptionalways
stringMap[abstract]always
dateMap[startDate]always
numberMap[numTotalDay]always
yearalways
booleanMap[istitutionalInitiative]always
stringMap[targetDescription]always
booleanMap[evaluationEnable]always
booleanMap[visibleOnPortal]always
wfDictionaryMap[geographicalImpact]always
numberMap[totalBudget]always
stringMap[estimatedImpact]always
complex checkToolEvaluation always
multipleOwnerValidator always
internalOrganizationUnitValidator always
startDateAndEndDateValidator always
savecomplex sameDefinitionForGenericItemValidator always
itemTypeNotWithdrawnValidator always
deletecomplex childAndParentDetectorDeleteValidator always
elementrequiredcontributor:save  addOrgUnitFromNewOwnerValidator always
complexowner:save  addOrgUnitFromNewOwnerValidator always
owner:save  integerMap[manDay]always
impactIndicators:save  impactIndicatorsValidatorPublicEngagement always
publicInvolved:save  publicInvolvedDuplicatedValidatorPublicEngagement always
publicInvolved:save  specificOtherValuePopulatedValidatorPublicEngagement always
Helpdesk (helpdesk) elementcomplexsuardInitiative:save  suardDepartmentHelpdeskInitiativeValidatorPublicEngagement always
Organi dipartimentali (headOfDepartment) elementcomplexinternalOrganizationUnit:delete  departmentDeleteValidator always
internalOrganizationUnit:save  departmentChangeRoleValidator always
suardInitiative:save  suardDepartmentInitiativeValidatorPublicEngagement always
permissionscomplex wfIdentityLogicMultipleHeadOfDepartmentPublicEngagementPermissionsJs always
Responsabile/Proprietario (owner) elementcomplexowner:save  ownerCannotEditHimself always
owner:delete  ownerCannotDeleteHimself always
suardInitiative:delete  notAllowedValidator always
suardInitiative:save  notAllowedValidator always
wfIdentityLogicMultipleOwnerPublicEngagementStatesJs always
Delegato (internalRepresentative) elementcomplexsuardInitiative:delete  notAllowedValidator always
suardInitiative:save  notAllowedValidator always
Non Ammesso
(rejected)
allenterrequiredwfItemTypeIdalways
descriptionalways
stringMap[abstract]always
dateMap[startDate]always
numberMap[numTotalDay]always
yearalways
booleanMap[istitutionalInitiative]always
stringMap[targetDescription]always
booleanMap[evaluationEnable]always
booleanMap[visibleOnPortal]always
wfDictionaryMap[geographicalImpact]always
numberMap[totalBudget]always
stringMap[estimatedImpact]always
stringMap[transitionComment]always
complex checkToolEvaluation always
multipleOwnerValidator always
internalOrganizationUnitValidator always
startDateAndEndDateValidator always
periodicityValidatorPublicEngagement always
scientificAreasInvolvedValidatorPublicEngagement always
publicInvolvedAtLeastOneValidatorPublicEngagement always
savecomplex sameDefinitionForGenericItemValidator always
itemTypeNotWithdrawnValidator always
deletecomplex childAndParentDetectorDeleteValidator always
elementrequiredowner:save  integerMap[manDay]always
Organi dipartimentali (headOfDepartment) permissionscomplex wfIdentityLogicMultipleHeadOfDepartmentPublicEngagementPermissionsJs 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
Di seguito viene riportato il dettaglio delle logiche definite per questo flusso.

START LOGICS

ACTION LOGICS