Grafico del flusso

Descrizione

Il flusso contract-decentralized-flow è un flusso Decentralizzato che modella il ciclo di vita di un contratto, dalla proposta, all'ottenimento del servizio e dei successivi risultati.

Questo flusso prevede i seguenti attori nelle diverse visioni.
  • Visione completa
    • Helpdesk - HD
      Team con profili:
      • Profilo Helpdesk
      • Profilo Helpdesk per i Contratti (contract)
  • 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 contratto è consentita solo per il dipartimento marcato come "Principale"
      I dipartimenti aggregati avranno accesso in sola lettura.
  • Visione personale
    • Responsabili scientifici - RS
      Persona appartenente al team "Utenti", che compare tra i responsabili del contratto. Cfr modello dati TAB Soggetti interni
    • Partecipante - PA
      Persona appartenente al team "Utenti", che compare tra i partecipanti del contratto. Cfr modello dati TAB Soggetti interni
Trattandosi di un flusso decentralizzato, la creazione di un nuovo contratto è consentita anche ai RS.
Questo flusso consente all'HD di effettuare qualunque transizione di stato anche senza seguire il flusso canonico: è quindi possibile anche effettuare "salti" di stato.
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.con.draft Bozza button.forward.to.con.draft button.backward.to.con.draft Salva e invia in "Bozza" Salva e invia in "Bozza"
administrativeProcess wfState.con.administrativeProcess Processo Amministrativo button.forward.to.con.administrativeProcess button.backward.to.con.administrativeProcess Salva e invia in "Processo Amministrativo" Salva e invia in "Processo Amministrativo"
rejected wfState.con.rejected Respinto button.forward.to.con.rejected button.backward.to.con.rejected Salva e invia in "Respinto" Salva e invia in "Respinto"
signed wfState.con.signed Stipulato button.forward.to.con.signed button.backward.to.con.signed Salva e invia in "Stipulato" Salva e invia in "Stipulato"
concluded wfState.con.concluded Concluso button.forward.to.con.concluded button.backward.to.con.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 (contract - CON)

Configurazioni

Le configurazioni associate a questo flusso sono disponibili alla seguente pagina: Produzione - IRIS AP-RM Configurazioni: Contratti (contract - CON)

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

Stato Attori Permessi Transizioni Tab
Bozza
(draft)
Helpdesk (helpdesk) c r w d f administrativeProcess
Responsabile/Proprietario (owner) c r w d f administrativeProcess
Processo Amministrativo
(administrativeProcess)
Helpdesk (helpdesk) r w d f draft,rejected,signed
Responsabile/Proprietario (owner) r none
Organi dipartimentali (department) r w f rejected,signed
Partecipante (contributor) r none
Respinto
(rejected)
Helpdesk (helpdesk) r w d f administrativeProcess
Responsabile/Proprietario (owner) r none
Organi dipartimentali (department) r none
Partecipante (contributor) r none
Stipulato
(signed)
Helpdesk (helpdesk) r w f administrativeProcess,concluded
Responsabile/Proprietario (owner) r none
Organi dipartimentali (department) r w f concluded
Partecipante (contributor) r none
Concluso
(concluded)
Helpdesk (helpdesk) r w f all
Responsabile/Proprietario (owner) r none
Organi dipartimentali (department) r none
Partecipante (contributor) 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.
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 always
description always
dateMap[proposalStartDate] always
personMap[owner]
isNull ( id )
element:owner
isNotNull ( id )
complex checkCreationPermissionsValidator always
ownerPositionStartValidator always
save required identifier always
complex sameDefinitionForGenericItemValidator always
uniquePeopleValidator
booleanFieldFalse ( legacy )
delete complex childAndParentDetectorDeleteValidator always
Processo Amministrativo
(administrativeProcess)
all enter required dateMap[proposalStartDate] always
wfItemTypeId always
description always
wfDictionaryMap[currency] always
numberMap[totalAmount] always
element:customer
booleanFieldFalse ( legacy )
element:internalOrganizationUnit
booleanFieldFalse ( legacy )
element:owner always
save required identifier always
complex sameDefinitionForGenericItemValidator always
uniquePeopleValidator
booleanFieldFalse ( legacy )
delete complex childAndParentDetectorDeleteValidator always
Organi dipartimentali (department) element complex internalOrganizationUnit:delete  departmentDeleteValidator always
internalOrganizationUnit:save  departmentChangeRoleValidator always
Respinto
(rejected)
all enter required numberMap[totalAmount] always
dateMap[proposalStartDate] always
element:internalOrganizationUnit
booleanFieldFalse ( legacy )
element:owner always
save required identifier always
complex sameDefinitionForGenericItemValidator always
uniquePeopleValidator
booleanFieldFalse ( legacy )
delete complex childAndParentDetectorDeleteValidator always
Stipulato
(signed)
all enter required description always
wfItemTypeId always
dateMap[proposalStartDate] always
dateMap[startDate] always
dateMap[endDate] always
wfDictionaryMap[currency] always
numberMap[totalAmount] always
element:customer
booleanFieldFalse ( legacy )
element:owner always
complex currencyAndTotalAmountValidatorContract
booleanFieldFalse ( legacy )
uniqueIdentifierValidator
booleanFieldFalse ( legacy )
roleElementValidator
booleanFieldFalse ( legacy )
ownerAndOrganizationUnitMatchValidator
booleanFieldFalse ( legacy )
startDateAndEndDateValidator always
checkDateExtensionValidator
booleanFieldFalse ( legacy )
checkDateApprovalValidator
booleanFieldFalse ( legacy )
contributorAndOwnerValidatorWithStartEndDate
booleanFieldFalse ( legacy )
wfItemAttributeSumOrConcatCoherenceValidator
booleanFieldFalse ( legacy )
wfUgovPjSenderValidatorContract always
save required identifier always
complex sameDefinitionForGenericItemValidator always
changeItemTypeForSynchronizedItemValidator always
currencyAndTotalAmountValidatorContract
booleanFieldFalse ( legacy )
contributorAndOwnerValidatorWithStartEndDate
booleanFieldFalse ( legacy )
checkDateExtensionValidator
booleanFieldFalse ( legacy )
checkDateApprovalValidator
booleanFieldFalse ( legacy )
uniquePeopleValidator
booleanFieldFalse ( legacy )
wfItemAttributeSumOrConcatCoherenceValidator
booleanFieldFalse ( legacy )
delete complex childAndParentDetectorDeleteValidator always
element required owner:enter  dateMap[startDate] always
contributor:enter  dateMap[startDate] always
owner:save  dateMap[startDate] always
contributor:save  dateMap[startDate] always
Helpdesk (helpdesk) save required description always
wfItemTypeId always
dateMap[startDate] always
dateMap[endDate] always
wfDictionaryMap[currency] always
numberMap[totalAmount] always
element:customer
booleanFieldFalse ( legacy )
element:owner always
complex roleElementValidator
booleanFieldFalse ( legacy )
ownerAndOrganizationUnitMatchValidator
booleanFieldFalse ( legacy )
wfUgovPjSenderValidatorContract always
Organi dipartimentali (department) save required description always
wfItemTypeId always
dateMap[startDate] always
dateMap[endDate] always
wfDictionaryMap[currency] always
numberMap[totalAmount] always
element:customer
booleanFieldFalse ( legacy )
element:owner always
complex roleElementValidator
booleanFieldFalse ( legacy )
ownerAndOrganizationUnitMatchValidator
booleanFieldFalse ( legacy )
wfUgovPjSenderValidatorContract always
element complex internalOrganizationUnit:delete  departmentDeleteValidator always
internalOrganizationUnit:save  departmentChangeRoleValidator always
Concluso
(concluded)
all enter required description always
wfItemTypeId always
dateMap[proposalStartDate] always
dateMap[startDate] always
dateMap[endDate] always
wfDictionaryMap[currency] always
numberMap[totalAmount] always
element:customer
booleanFieldFalse ( legacy )
element:owner always
complex roleElementValidator
booleanFieldFalse ( legacy )
ownerAndOrganizationUnitMatchValidator
booleanFieldFalse ( legacy )
startDateAndEndDateValidator always
currencyAndTotalAmountValidatorContract
booleanFieldFalse ( legacy )
contributorAndOwnerValidatorWithStartEndDate
booleanFieldFalse ( legacy )
checkDateExtensionValidator
booleanFieldFalse ( legacy )
checkDateApprovalValidator
booleanFieldFalse ( legacy )
wfItemAttributeSumOrConcatCoherenceValidator
booleanFieldFalse ( legacy )
wfUgovPjSenderValidatorContract always
save required identifier always
complex sameDefinitionForGenericItemValidator always
changeItemTypeForSynchronizedItemValidator always
currencyAndTotalAmountValidatorContract
booleanFieldFalse ( legacy )
checkDateExtensionValidator
booleanFieldFalse ( legacy )
checkDateApprovalValidator
booleanFieldFalse ( legacy )
contributorAndOwnerValidatorWithStartEndDate
booleanFieldFalse ( legacy )
uniquePeopleValidator
booleanFieldFalse ( legacy )
wfItemAttributeSumOrConcatCoherenceValidator
booleanFieldFalse ( legacy )
delete complex childAndParentDetectorDeleteValidator always
element required owner:enter  dateMap[startDate] always
contributor:enter  dateMap[startDate] always
owner:save  dateMap[startDate] always
contributor:save  dateMap[startDate] always
Helpdesk (helpdesk) save required description always
wfItemTypeId always
dateMap[startDate] always
dateMap[endDate] always
wfDictionaryMap[currency] always
numberMap[totalAmount] always
element:customer
booleanFieldFalse ( legacy )
element:owner always
complex roleElementValidator
booleanFieldFalse ( legacy )
ownerAndOrganizationUnitMatchValidator
booleanFieldFalse ( legacy )
wfUgovPjSenderValidatorContract 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
  • No labels