> For the complete documentation index, see [llms.txt](https://docs.opencityitalia.it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.opencityitalia.it/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/configurare-servizi-a-piu-fasi.md).

# 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.

{% hint style="info" %}
Per servizi di questo tipo, consigliamo l'uso di [componente "Select](/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/la-select.md)" in entrambe le istanze.
{% endhint %}

## Inserisci un campo "Select"

Trascina all'interno del modulo un [componente "Select"](/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/i-componenti/la-select.md) e nella sezione "Data" inserisci l'opzione "URL" nel campo "Data Source Type"

<figure><img src="/files/h85MIqRgvrki3JkMHENp" alt=""><figcaption></figcaption></figure>

Successivamente, inserisci l'[endpoint API](/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/popolare-un-form-con-dati-provenienti-da-api.md#api-non-protette-da-autenticazione) da utilizzare nella voce "Data Source URL".

{% hint style="info" %}
Assicurati se l'API utilizzata sia o meno [protetta da autenticazione](/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/popolare-un-form-con-dati-provenienti-da-api.md#api-non-protette-da-autenticazione).
{% endhint %}

<figure><img src="/files/fz9nMfPdMGttoKgl2Q4V" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Nell'esempio riportato, la select è stata configurata in modo tale da recuperare dal tenant corrente ([data.base\_url](#imposta-lorigine-della-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
{% endhint %}

Nel campo "Request headers" compila la colonna "Key" con "Authorization" e la colonna "Value" con "Bearer [{{data.token}}"](#configura-il-token)

<figure><img src="/files/0MXf6X2HiWJFRQ1q0IcP" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/oMCNWn5K3RQnVFIJnaTf" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/9aRPgu1GWH0oz9uowaKi" alt=""><figcaption><p>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"])</p></figcaption></figure>

## Configura il *token*

Aggiungi al modulo un componente di [tipo Hidden](https://docs.opencityitalia.it/admins/creare-un-servizio/le-funzioni/nascondere-i-componenti#usare-il-componente-hidden) e, nella sezione "Data", configura il campo "Calculated Value" inserendo il codice JavaScript dedicato alla chiamata API.

<figure><img src="/files/aea17ahuEzl2guYgxdr1" alt=""><figcaption></figcaption></figure>

```javascript
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](https://docs.opencityitalia.it/admins/creare-un-servizio/le-funzioni/nascondere-i-componenti#usare-il-componente-hidden) e, nella sezione "Data", configura il campo "Calculated Value" inserendo il codice JavaScript dedicato.

<figure><img src="/files/7v8czccn8mknEWcfHuoX" alt=""><figcaption></figcaption></figure>

```javascript
value = window.location.origin
```

## Bonus track: attivare il collegamento tra pratiche

{% hint style="info" %}
La fascicolazione definisce un rapporto di dipendenza (padre-figlio) tra le pratiche di un servizio a più fasi: la pratica di conferma dell'iscrizione al nido, ad esempio, sarà figlia della pratica di richiesta iscrizione.

La fascicolazione **non incide sulla protocollazione** e **non corrisponde** all'inserimento della pratica figlia nello stesso fascicolo della pratica madre in fase di protocollazione.
{% endhint %}

Per configurare la fascicolazione, accedi al modulo della seconda fase del servizio e inserisci un componente '[hidden](/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/nascondere-i-componenti.md#usare-il-componente-hidden)'.

<figure><img src="/files/UDQ7DH58afY6DPRyEHbA" alt=""><figcaption></figcaption></figure>

Una volta inserito, nella sezione "API" del componente inserisci il property name "related\_applications".

<figure><img src="/files/Bjwry34iBp5VkVk0B90c" alt=""><figcaption></figcaption></figure>

Successivamente, collocati nella sezione "Data" del componente e inserisci il codice JavaScript `instance.setValue(data.choose_application.id)`

<figure><img src="/files/4GD78MdZmHBJje2PDeZA" alt=""><figcaption></figcaption></figure>

Una volta attivata la fascicolazione, le pratiche correlate (padre e figlia) saranno raggruppate sotto la voce '**Pratiche collegate**'.

Questa sezione sarà visibile in entrambe le interfacce: sia in [Area Personale del cittadino](https://docs.opencityitalia.it/operatori/che-cose-e-come-attivare-un-servizio-pubblico-digitale/accedere-alle-pratiche-inviate-in-precedenza), sia [in fase di lavorazione](https://docs.opencityitalia.it/operatori/gestione-delle-pratiche/gestire-le-pratiche-online/prendi-in-carico-una-pratica) dell'operatore.

<figure><img src="/files/X9ZqaJP7LFdjOlbqOZeT" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.opencityitalia.it/guida-alla-creazione-dei-servizi-digitali/creare-un-servizio/le-funzioni/configurare-servizi-a-piu-fasi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
