Configurare servizi a più fasi

La piattaforma consente la configurazione di servizi digitali suddivisi in più fasi, tipicamente due. In questa modalità, la seconda istanza del servizio è in grado di recuperare e riutilizzare i dati inseriti nella prima fase, favorendo la continuità del processo e la gestione da parte degli operatori.

In questo capitolo viene illustrato, a scopo esemplificativo, il caso di un servizio di iscrizione all’asilo nido, strutturato in due pratiche distinte:

  • una prima pratica di richiesta di iscrizione;

  • una seconda pratica di conferma dell’iscrizione, che recupera in automatico alcuni dei dati forniti durante la prima fase.

Per servizi di questo tipo, consigliamo l'uso di componente "Select" in entrambe le istanze.

Inserisci un campo "Select"

Trascina all'interno del modulo un componente "Select" e nella sezione "Data" inserisci l'opzione "URL" nel campo "Data Source Type"

Successivamente, inserisci l'endpoint API da utilizzare nella voce "Data Source URL".

Assicurati se l'API utilizzata sia o meno protetta da autenticazione.

Nell'esempio riportato, la select è stata configurata in modo tale da recuperare dal tenant corrente (data.base_url) tutte le pratiche accettate (status=7000) di un servizio di iscrizione (service_identifier=oc-pnrr-2):

{{data.base_url}}/lang/api/applications?version=2&status=7000&service_identifier=oc-pnrr-2

Nel campo "Request headers" compila la colonna "Key" con "Authorization" e la colonna "Value" con "Bearer {{data.token}}"

Compila il campo "Data Path" con il valore "data" (1) e seleziona la voce "Autotype" nel campo "Storage Type" (2)

Infine, scegli il valore da mostrare alla voce "Item template".

Nell'immagine, il campo è stato impostato in modo tale da recuperare il nome (given_name) e il cognome (family_name) di un minore, inseriti in una pratica precedente e selezionati da una select dedicata (item.data ["select_child"])

Configura il token

Aggiungi al modulo un componente di tipo Hidden e, nella sezione "Data", configura il campo "Calculated Value" inserendo il codice JavaScript dedicato alla chiamata API.

async function get_data() {
  window.FormioHelper.authenticatedCall("session-auth")
  .then(
    function(promise) {
      console.log(promise)
      instance.setValue(promise.token)
    })
}

if (!data.token) {
  get_data()
}

console.log(value)

Imposta l'origine della URL

Aggiungi al modulo un campo di tipo Hidden e, nella sezione "Data", configura il campo "Calculated Value" inserendo il codice JavaScript dedicato.

value = window.location.origin

Last updated

Was this helpful?