I nested form
La gestione e l'aggiornamento di questi componenti è centralizzato e a carico di OpenCity Italia.
Puoi però effettuare alcune modifiche ai campi di un Nested form tramite le logiche.
La piattaforma permette di utilizzare un set di componenti standard, denominati nested form, che permettono di raccogliere dati in modo consistente tra i diversi servizi
Attraverso l'utilizzo di questi componenti, possiamo raccogliere dati in modo consistente tra i diversi servizi, mettendo a disposizione degli utenti funzioni come:
funzioni di precompilazione dati tra i servizi;
visualizzazione e aggiornamento dei dati nel profilo utente;
funzioni di acquisizione dati terze parti (es. ISEE).
OpenCity Italia mette a disposizione un elenco fornito di nested forms da utilizzare; per usufruire di queste funzioni, però, si consiglia di utilizzare quelli contrassegnati con "OC" e elencati qui:
Anagrafica richiedente
OC - Richiedente
applicant
Anagrafica beneficiario persona fisica
OC - Beneficiario
beneficiary
Anagrafica beneficiario soggetto giuridico
OC - Soggetto giuridico
legal_entities
Anagrafica figli
OC - Figli
children
Anagrafica coniuge
OC - Coniuge
spouse
Anagrafica genitore
OC - Genitori
parents
Delega
OC - Delega
delegation
Residenza
OC - Residenza Residenza (archetipo)
address
Cittadinanza
OC - Cittadinanza
citizenship
Esperienze lavorative
OC - Esperienze lavorative
work_experience
Titoli di studio
OC - Titoli di studio
educational_occupational_credential
ISEE Generico
OC - ISEE
economic_situation_indicator
ISEE Ordinario
OC - ISEE Ordinario
ordinary_economic_situation_indicator
Dati di accredito
OC - IBAN
bank_account
Veicoli
OC - Veicoli OC - Veicoli (semplificato)
vehicles
Immobili
OC - Immobili
real_estate
Informativa privacy
OC - Informativa privacy
privacy_policy
Nucleo familiare
OC - Nucleo familiare
Usare i nested form all'interno del modulo
Dalla colonna dei componenti seleziona quello chiamato "nested form".

Una volta trascinato nel modulo, seleziona nella voce "Form" del componente quello che vuoi utilizzare.
Configurare l'ISEE per un minorenne
Usa questa configurazione quando il servizio richiede l'ISEE di un figlio minorenne, non del richiedente adulto. La chiamata PDND richiede il codice fiscale del minore (fiscal_code_child) in aggiunta a quello del richiedente.
Prerequisiti
Il modulo deve raccogliere il codice fiscale del minore prima della sezione ISEE. Inserisci il nested form del minore in una pagina precedente del servizio:
OC - Beneficiario (chiave API:
beneficiary): se il minore è il beneficiario diretto del servizio;OC - Figli (chiave API:
children): se il servizio coinvolge uno o più figli del richiedente, precompilati via PDND.
Configurazione
Trascina nel modulo il nested form OC - ISEE e assegnagli la chiave API
economic_situation_indicator.Nella sezione "API" del componente, sotto "Custom properties", aggiungi queste proprietà :
profile_block
true
eservice
4f3d1f0e-1e2b-4c5a-8f3a-2b6e9f0c8d7e
format
minorenne
fiscal_code_child
percorso al codice fiscale del minore (vedi sotto)
Per il valore di
fiscal_code_child, usa il percorso corretto in base al nested form scelto:Con OC - Beneficiario:
data.beneficiary.data.fiscal_code.data.fiscal_codeCon OC - Figli:
data.children.data[0].fiscal_code.data.fiscal_code
Il parametro fiscal_code_child è obbligatorio con il formato minorenne. Se non viene configurato, la chiamata PDND non restituisce l'ISEE del minore e il cittadino non può completare la pratica.
Per verificare il percorso esatto dei campi nel tuo nested form, usa console.log(data.[chiave_api]) nella sezione "Custom action" di una logica, come descritto nella pagina Modificare i campi di un Nested Form.

Struttura dei dati
I dati inseriti nei Nested Form vengono organizzati secondo una struttura gerarchica che permette di individuare in modo preciso ogni informazione raccolta.
Ogni campo può essere richiamato tramite un percorso univoco, che indica dove si trova il dato all’interno del modulo compilato. Questi percorsi vengono utilizzati, per esempio, per applicare regole e condizioni nei moduli.
Il formato base è il seguente:
Dove:
property_name identifica il nested form
campo rappresenta la singola informazione inserita
Di seguito sono riportati i percorsi utilizzati per accedere ai singoli campi inseriti all’interno dei nested form.
OC - Richiedente
property_name: applicant
Dati anagrafici
Nome (path:
data.applicant.data.completename.data.name)Cognome (path:
data.applicant.data.completename.data.surname)Genere (path:
data.applicant.data.gender.data.gender)Codice Fiscale (path:
data.applicant.data.fiscal_code)Data di nascita (path:
data.applicant.data.Born.data.natoAIl)Luogo di nascita (path:
data.applicant.data.Born.data.place_of_birth)
Residenza
Indirizzo (path:
data.applicant.data.address.data.street_address)Nr. civico (path:
data.applicant.data.address.data.address_number)Paese (path:
data.applicant.data.address.data.address_country)Provincia (path:
data.applicant.data.address.data.county)Comune (path:
data.applicant.data.address.data.address_locality)CAP (path:
data.applicant.data.address.data.postal_code)
Contatti
Numero di telefono cellulare (path:
data.applicant.data.cell_number)Numero di telefono fisso (path:
data.applicant.data.phone_number)Indirizzo email (path:
data.applicant.data.email_address)
OC - Beneficiario
property_name: beneficiary
Dati anagrafici
Nome (path:
data.beneficiary.data.given_name)Cognome (path:
data.beneficiary.data.family_name)Luogo di nascita (path:
data.beneficiary.data.birth_place)Data di nascita (path:
data.beneficiary.data.birth_date)Genere (path:
data.beneficiary.data.gender)Codice fiscale (path:
data.beneficiary.data.tax_id)
Residenza
Indirizzo (path:
data.beneficiary.data.address.data.street_address)Nr. civico (path:
data.beneficiary.data.address.data.address_number)Paese (path:
data.beneficiary.data.address.data.address_country)Provincia (path:
data.beneficiary.data.address.data.county)Comune (path:
data.beneficiary.data.address.data.address_locality)CAP (path:
data.beneficiary.data.address.data.postal_code)
NazionalitÃ
Nazionalità (path:
data.beneficiary.data.nationality)Nazione (path:
data.beneficiary.data.nation)
OC - Soggetto giuridico
property_name: legal_entities
Dati anagrafici impresa
Denominazione (path:
data.legal_entities.data.legal_name)Codice destinatario (SDI) (path:
data.legal_entities.data.additional_property_codice_destination)Partita IVA / Codice Fiscale (path:
data.legal_entities.data.vat)Codice fiscale (path:
data.legal_entities.data.tax_id)Numero di telefono (path:
data.legal_entities.data.phone_number)Email (path:
data.legal_entities.data.email)PEC (path:
data.legal_entities.data.certified_email)Tipo di organizzazione (path:
data.legal_entities.data.entity_type)
Sede legale
Indirizzo (path:
data.legal_entities.data.address.data.street_address)Nr. civico (path:
data.legal_entities.address.data.address_number)Paese (path:
data.legal_entities.address.data.address_country)Provincia (path:
data.legal_entities.data.address.data.county)Comune (path:
data.legal_entities.data.address.data.address_locality)CAP (path:
data.legal_entities.data.address.data.postal_code)
OC - Figli
property_name: children (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Se si vuole accedere ai dati di un figlio è necessario indicare l'indice della riga.
Il placeholder [i] indica l’indice della riga, quindi:
i = 0→ primo figlio (prima riga)i = 1→ secondo figlio (seconda riga)ecc.
Dati anagrafici
Nome (path:
data.children.data.children[i].given_name)Cognome (path:
data.children.data.children[i].family_name)Luogo di nascita (path:
data.children.data.children[i].birth_place)Data di nascita (path:
data.children.data.children[i].birth_date)Genere (path:
data.children.data.children[i].gender)Codice fiscale (path:
data.children.data.children[i].tax_id)
Residenza
Indirizzo (path:
data.children.data.children[i].address.data.street_address)Nr. civico (path:
data.children.data.children[i].address.data.address_number)Paese (path:
data.children.data.children[i].address.data.address_country)Provincia (path:
data.children.data.children[i].address.data.county)Comune (path:
data.children.data.children[i].address.data.address_locality)CAP (path:
data.children.data.children[i].address.data.postal_code)
Altri dati
Nazionalità (path:
data.children.data.children[i].nationality)Permesso di soggiorno (path:
data.children.data.children[i].residence_permit)Data scadenza permesso di soggiorno (path:
data.children.data.children[i].residence_permit_expirationdate)Documento d’identità (path:
data.children.data.children[i].identity_document)Data scadenza documento d’identità (path:
data.children.data.children[i].identity_document_expirationdate)
OC - Coniuge
property_name: spouse
Dati anagrafici
Nome (path:
data.spouse.data.given_name)Cognome (path:
data.spouse.data.family_name)Luogo di nascita (path:
data.spouse.data.birth_place)Data di nascita (path:
data.spouse.data.birth_date)Genere (path:
data.spouse.data.gender)Codice fiscale (path:
data.spouse.data.tax_id)
Residenza
Indirizzo (path:
data.spouse.data.address.data.street_address)Nr. civico (path:
data.spouse.data.address.data.address_number)Paese (path:
data.spouse.data.address.data.address_country)Provincia (path:
data.spouse.data.address.data.county)Comune (path:
data.spouse.data.address.data.address_locality)CAP (path:
data.spouse.data.address.data.postal_code)
Altri dati
Nazionalità (path:
data.spouse.data.nationality)Nazione (path:
data.spouse.data.nation)Documento d’identità (path:
data.spouse.data.identity_document)Data scadenza documento d’identità (path:
data.spouse.data.identity_document_expirationdate)Permesso di soggiorno (path:
data.spouse.data.residence_permit)Data scadenza permesso di soggiorno (path:
data.spouse.data.residence_permit_expirationdate)
OC - Genitori
property_name: parents (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Se si vuole accedere ai dati di un genitore è necessario indicare l'indice della riga.
Il placeholder [i] indica l’indice della riga, quindi:
i = 0→ primo genitore (prima riga)i = 1→ secondo genitore (seconda riga)
Dati anagrafici
Nome (path:
data.parents.data.parents[i].given_name)Cognome (path:
data.parents.data.parents[i].family_name)Luogo di nascita (path:
data.parents.data.parents[i].birth_place)Data di nascita (path:
data.parents.data.parents[i].birth_date)Genere (path:
data.parents.data.parents[i].gender)Codice fiscale (path:
data.parents.data.parents[i].tax_id)
Residenza
Indirizzo (path:
data.parents.data.parents[i].address.data.street_address)Nr. civico (path:
data.parents.data.parents[i].address.data.address_number)Paese (path:
data.parents.data.parents[i].address.data.address_country)Provincia (path:
data.parents.data.parents[i].address.data.county)Comune (path:
data.parents.data.parents[i].address.data.address_locality)CAP (path:
data.parents.data.parents[i].address.data.postal_code)
Altri dati
Nazionalità (path:
data.parents.data.parents[i].nationality)Documento d’identità (path:
data.parents.data.parents[i].identity_document)Data scadenza documento d’identità (path:
data.parents.data.parents[i].identity_document_expirationdate)
OC - Delega
property_name: delegation
Documenti
Documento d’identità o passaporto (path:
data.delegation.data.identity_document)Data scadenza documento d’identità o passaporto (path:
data.delegation.data.identity_document_expirationdate)Delega del beneficiario (path:
data.delegation.data.delegation_document)Data scadenza delega (path:
data.delegation.data.delegation_document_expirationdate)
OC - Residenza Residenza (archetipo)
property_name: address
Dati indirizzo
Indirizzo (path:
data.address.data.street_address)Nr. civico (path:
data.address.data.address_number)Paese (path:
data.address.data.address_country)Provincia (path:
data.address.data.county)Comune (path:
data.address.data.address_locality)CAP (path:
data.address.data.postal_code)
Questo nested form è riutilizzato all’interno di altri nested form. Per accedere ai campi, il path completo segue il seguente pattern:
data.<nested_form>.data.address.data.<campo>
Ad esempio, per accedere al comune di residenza del beneficiario, il path è:
data.beneficiary.data.address.data.address_locality
OC - Cittadinanza
property_name: citizenship (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Ogni elemento dell’array rappresenta una cittadinanza della persona. Il placeholder [i] indica l’indice della riga:
i = 0→ prima cittadinanzai = 1→ seconda cittadinanzaecc.
Dati cittadinanza
Cittadinanza (path:
data.citizenship.data.cittadinanza[i].data.nationality)Stato (path:
data.citizenship.data.cittadinanza[i].data.country)
OC - Esperienze lavorative
property_name: work_experience (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta una singola esperienza lavorativa. Il placeholder [i] indica l’indice della riga:
i = 0→ prima esperienzai = 1→ seconda esperienzaecc.
Dati esperienza lavorativa
Nome dell'organizzazione (path:
data.work_experience.data.work_experience[i].organization)Titolo del lavoro (path:
data.work_experience.data.work_experience[i].job_title)Descrizione breve della mansione (path:
data.work_experience.data.work_experience[i].description)Rapporto di lavoro in corso (path:
data.work_experience.data.work_experience[i].is_current)Data di inizio (path:
data.work_experience.data.work_experience[i].start_date)Data di fine (path:
data.work_experience.data.work_experience[i].end_date)Causa di risoluzione del contratto (path:
data.work_experience.data.work_experience[i].termination_reason)Tipo di contratto (path:
data.work_experience.data.work_experience[i].employment_contract_type)Orario di servizio (path:
data.work_experience.data.work_experience[i].work_hours)
OC - Titoli di studio
property_name: educational_occupational_credential (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un titolo di studio. Il placeholder [i] indica l’indice della riga:
i = 0→ primo titoloi = 1→ secondo titoloecc.
Dati titolo di studio
Livello di istruzione (path:
data.educational_occupational_credential.data.titoliDiStudio[i].data.educational_level)Titolo conseguito (path:
data.educational_occupational_credential.data.titoliDiStudio[i].data.degree_title)Descrizione del titolo di studio (path:
data.educational_occupational_credential.data.titoliDiStudio[i].data.description)Istituto (path:
data.educational_occupational_credential.data.titoliDiStudio[i].data.educational_organization)Anno di conseguimento (path:
data.educational_occupational_credential.data.titoliDiStudio[i].data.award_date)Votazione finale (path:
data.educational_occupational_credential.data.titoliDiStudio[i].data.graduation_vote)
OC - ISEE Ordinario
property_name: ordinary_economic_situation_indicator
Dati ISEE
Importo ISEE (path:
data.ordinary_economic_situation_indicator.data.isee)Numero protocollo DSU (path:
data.ordinary_economic_situation_indicator.data.dsu_protocol_number)Data di presentazione ISEE (path:
data.ordinary_economic_situation_indicator.data.submission_date)Data di scadenza ISEE (path:
data.ordinary_economic_situation_indicator.data.valid_until)
Nucleo familiare
Nucleo familiare (datagrid, property_name: household)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un componente del nucleo. Il placeholder [i] indica l’indice della riga:
i = 0→ primo componente del nucleoi = 1→ secondo componenteecc.
Nome (path:
data.ordinary_economic_situation_indicator.data.household[i].data.name)Cognome (path:
data.ordinary_economic_situation_indicator.data.household[i].data.surname)Codice fiscale (path:
data.ordinary_economic_situation_indicator.data.household[i].data.fiscal_code)Rapporto di parentela (path:
data.ordinary_economic_situation_indicator.data.household[i].data.relationship_with_declarant)ISEE corrente (path:
data.ordinary_economic_situation_indicator.data.household[i].data.current)Attestazione PDF (path:
data.ordinary_economic_situation_indicator.data.household[i].data.attestation_pdf)
OC - Veicoli OC - Veicoli (semplificato)
property_name: vehicles (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un veicolo. Il placeholder [i] indica l’indice della riga:
i = 0→ primo veicoloi = 1→ secondo veicoloecc.
Dati veicolo
Targa (path:
data.vehicles.data.vehicles[i].license_plate_number)Marca (path:
data.vehicles.data.vehicles[i].manufacturer)Modello (path:
data.vehicles.data.vehicles[i].model)Tipo di alimentazione (path:
data.vehicles.data.vehicles[i].fuel_type)Omologazione ambientale (path:
data.vehicles.data.vehicles[i].emission_standard)Carta di circolazione (path:
data.vehicles.data.vehicles[i].registration_document)
OC - Immobili
property_name: real_estate (datagrid)
Essendo un datagrid, ogni elemento dell’array (lista) rappresenta una riga. Ogni riga rappresenta un immobile. Il placeholder [i] indica l’indice della riga:
i = 0→ primo immobilei = 1→ secondo immobileecc.
Dati immobile
Denominazione dell’immobile (path:
data.real_estate[i].description)
Indirizzo
Indirizzo (path:
data.real_estate.data.real_estate[i].address.data.street_address)Nr. civico (path:
data.real_estate.data.real_estate[i].address.data.address_number)Paese (path:
data.real_estate.data.real_estate[i].address.data.address_country)Provincia (path:
data.real_estate.data.real_estate[i].address.data.county)Comune (path:
data.real_estate.data.real_estate[i].address.data.address_locality)CAP (path:
data.real_estate.data.real_estate[i].address.data.postal_code)
Dati catastali
Tipologia immobile (path:
data.real_estate.data.real_estate[i].property_type)Codice catastale del Comune (path:
data.real_estate.data.real_estate[i].cadastral_code)Sezione (path:
data.real_estate.data.real_estate[i].section)Foglio (path:
data.real_estate.data.real_estate[i].sheet)Particella o mappale (path:
data.real_estate.data.real_estate[i].parcel)Subalterno (path:
data.real_estate.data.real_estate[i].subunit)Volumetria del fabbricato (path:
data.real_estate.data.real_estate[i].volume)
Ultimo aggiornamento
È stato utile?