Salta ai contenuti

Assenze e sostituzione

Come gli utenti registrano un’assenza e scelgono un sostituto è descritto in Assenza. Questa pagina descrive che cosa succede in background.

Ogni assenza registrata da un utente viene salvata come voce nella tabella biz.OutOfOffice. Così l’invoiceR sa, per ogni momento, se un utente è presente o assente.

Nell’elenco dei compiti puoi mostrare la colonna Vice. Per ogni compito mostra il sostituto registrato. Il sostituto però vede il compito e può aprire il documento solo finché il titolare effettivo del compito è assente.

Nella maggior parte dei passaggi l’invoiceR registra il sostituto non appena nasce il compito, cioè quando il documento arriva nel passaggio. Questo avviene anche se il titolare è presente e non ha pianificato alcuna assenza.

Nel passaggio di approvazione l’invoiceR non registra alcun sostituto finché il titolare è presente. Quando inizia un’assenza, un job in background verifica per quali compiti questo utente è registrato come titolare e fa passare di nuovo questi compiti attraverso il passaggio. Grazie all’assenza ora attiva vengono registrati i sostituti, che vedono il documento.

Il motivo di questo trattamento particolare: un’assenza può modificare il numero di compiti. Esempio: l’imputazione contabile genera tre gruppi di approvazione, tutti con l’utente A come approvatore, ma con tre sostituti diversi. Finché l’utente A è presente, basta un compito per lui. Se è assente, servono tre compiti, uno per ogni sostituto.

Quale sostituzione vale nell’approvazione lo definisci per ogni livello nel regolamento di approvazione (Falls Benutzer abwesend).

Il job App.OutOfOfficeChange elabora le assenze iniziate, terminate o eliminate e imposta i sostituti mancanti sui compiti bloccati. Viene eseguito solo se è attivato. Le impostazioni si trovano nella sezione OutOfOfficeChange di appsettings.json (oppure per mandante nel database):

ImpostazioneStandardSignificato
JobEnabledfalseattiva il job
CronExpression10 2 * * *quando viene eseguito il job (standard: ogni giorno alle 02:10)
NodeGuidspassaggio di approvazioneId dei passaggi i cui compiti vengono rielaborati quando cambia un’assenza
NodeGuidsNotVisaimputazione contabile, controllo finaleId di altri passaggi in cui viene impostato il sostituto personale. Non inserire qui il passaggio di approvazione.
RequirePersonalDeputytruese, registrando un’assenza sotto Le mie impostazioni, un sostituto personale è obbligatorio
{
"OutOfOfficeChange": {
"JobEnabled": "true",
"CronExpression": "*/15 * * * *"
}
}

Se un utente assente cambia il proprio sostituto personale, l’invoiceR adegua subito i compiti bloccati nei passaggi di NodeGuidsNotVisa.