Versions Compared

Key

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

Grafico del flusso

Descrizione

Il flusso project-training-centralized-default-flow è un flusso centralizzato che modella il ciclo di vita di un progetto di formazione, dalla prima definizione in bozza, allo stato operativo fino alla chiusura. Gli attori coinvolti sono Uffici Formazione, o altro ufficio preposto in base all'assetto organizzativo dell'ateneo, i responsabili amministrativi e delegati oltre al supporto (HD).

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.prj.draftBozzabutton.forward.to.prj.draftbutton.backward.to.prj.draftSalva e invia in "Bozza"Riporta in "Bozza"
operativewfState.prj.operativeOperativobutton.forward.to.prj.operativebutton.backward.to.prj.operativeInvia in "Operativo"Riporta in "Operativo"
concludedwfState.prj.concludedConclusobutton.forward.to.prj.concludedbutton.backward.to.prj.concludedInvia in "Concluso"Riporta in "Concluso"
Anchor
ModelloDati-anchor
ModelloDati-anchor

Modello Dati

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

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 operative
Referente amministrativo (administrativeOwner) r w d operative
Ufficio Formazione (trainingOffice) c r w d operative
Operativo
(operative)
Responsabile/Proprietario (owner) r w none
Organi dipartimentali (headOfDepartment) r none
Helpdesk (helpdesk) r w draft,concluded
Referente amministrativo (administrativeOwner) r w draft,concluded
Ufficio Formazione (trainingOffice) r w draft,concluded
Concluso
(concluded)
Responsabile/Proprietario (owner) r w none
Organi dipartimentali (headOfDepartment) r none
Helpdesk (helpdesk) r w operative
Referente amministrativo (administrativeOwner) r w operative
Ufficio Formazione (trainingOffice) r w operative

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
descriptionalways
dateMap[proposalStartDate]always
complex ownerValidatorProject always
checkCreationPermissionsValidator always
saverequiredwfItemTypeIdalways
complex ethicCommiteeDeleteInconsistentDataProject always
sameDefinitionForGenericItemValidator always
changeItemTypeForNotSynchronizedItemValidator always
uniquePeopleInOwnerAndContributorSetValidator isNotLegacy
deletecomplex childAndParentDetectorDeleteValidator always
Operativo
(operative)
allenterrequireddateMap[proposalStartDate]always
descriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
booleanMap[ethicCommiteeApplicability]always
complex uniqueIdentifierProject isNotLegacy
ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
checkInconsistentFundingValidatorProject isNotLegacy
checkDateExtensionValidator always
ethicCommiteeValidatorProject isNotLegacy
contributorAndOwnerStartDateValidator isNotLegacy
contributorAndOwnerValidatorWithStartEndDate isNotLegacy
expenditureStartDateAndExpenditureEndDateValidator isNotLegacy
startDateAndEndDateValidator always
dateCheckCoverageAndOverlap isNotLegacy
wfUgovPjSenderValidatorProject always
saverequiredwfItemTypeIdalways
complex sameDefinitionForGenericItemValidator always
contributorAndOwnerStartDateValidator isNotLegacy
contributorAndOwnerValidatorWithStartEndDate isNotLegacy
checkDateExtensionValidator always
checkInconsistentFundingValidatorProject isNotLegacy
changeItemTypeForSynchronizedItemValidator always
ethicCommiteeDeleteInconsistentDataProject always
uniquePeopleInOwnerAndContributorSetValidator isNotLegacy
expenditureStartDateAndExpenditureEndDateValidator isNotLegacy
startDateAndEndDateValidator always
dateCheckCoverageAndOverlap isNotLegacy
wfUgovPjSenderValidatorProject always
Responsabile/Proprietario (owner) savecomplex notEditableByOwnerValidator isNotLegacy
elementcomplexowner:delete  notEditableFragmentValidator isNotLegacy
owner:save  notEditableFragmentValidator isNotLegacy
contributor:delete  notEditableFragmentValidator isNotLegacy
contributor:save  notEditableFragmentValidator isNotLegacy
Helpdesk (helpdesk) saverequireddescriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
complex ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
Referente amministrativo (administrativeOwner) saverequireddescriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
complex ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
Ufficio Formazione (trainingOffice) saverequireddescriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
complex ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
Concluso
(concluded)
allenterrequireddateMap[proposalStartDate]always
descriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
booleanMap[ethicCommiteeApplicability]always
complex uniqueIdentifierProject isNotLegacy
ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
checkInconsistentFundingValidatorProject isNotLegacy
checkDateExtensionValidator always
ethicCommiteeValidatorProject isNotLegacy
contributorAndOwnerStartDateValidator isNotLegacy
contributorAndOwnerValidatorWithStartEndDate isNotLegacy
expenditureStartDateAndExpenditureEndDateValidator isNotLegacy
startDateAndEndDateValidator always
dateCheckCoverageAndOverlap isNotLegacy
wfUgovPjSenderValidatorProject always
saverequiredwfItemTypeIdalways
complex sameDefinitionForGenericItemValidator always
contributorAndOwnerStartDateValidator isNotLegacy
contributorAndOwnerValidatorWithStartEndDate isNotLegacy
checkDateExtensionValidator always
checkInconsistentFundingValidatorProject isNotLegacy
changeItemTypeForSynchronizedItemValidator always
ethicCommiteeDeleteInconsistentDataProject always
uniquePeopleInOwnerAndContributorSetValidator isNotLegacy
expenditureStartDateAndExpenditureEndDateValidator isNotLegacy
startDateAndEndDateValidator always
dateCheckCoverageAndOverlap isNotLegacy
wfUgovPjSenderValidatorProject always
Responsabile/Proprietario (owner) savecomplex notEditableByOwnerValidator isNotLegacy
elementcomplexowner:delete  notEditableFragmentValidator isNotLegacy
owner:save  notEditableFragmentValidator isNotLegacy
contributor:delete  notEditableFragmentValidator isNotLegacy
contributor:save  notEditableFragmentValidator isNotLegacy
Helpdesk (helpdesk) saverequireddescriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
complex ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
ethicCommiteeDeleteInconsistentDataProject always
Referente amministrativo (administrativeOwner) saverequireddescriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
complex ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
ethicCommiteeDeleteInconsistentDataProject always
Ufficio Formazione (trainingOffice) saverequireddescriptionalways
dateMap[startDate]always
dateMap[endDate]always
numberMap[internalCost]always
wfItemTypeIdalways
wfDictionaryMap[currency]always
complex ownerValidatorProject always
organizationUnitRoleValidatorProject isNotLegacy
ownerAndOrganizationUnitMatchValidatorProject isNotLegacy
grantorValidatorProject isNotLegacy
currencyAndInternalContributionValidatorProject isNotLegacy
partnerAndGlobalCostValidatorProject isNotLegacy
ethicCommiteeDeleteInconsistentDataProject 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