La funzione pulldata("@javascript") può essere usata per richiamare le funzioni JavaScript, consentendo l'uso di tecniche e logiche avanzate al di là di quanto è possibile solo attraverso XLSForm.
È necessario archiviare i file JavaScript personalizzati in una cartella denominata scripts nella directory del sondaggio.
Sintassi di base
È possibile richiamare le funzioni JavaScript personalizzate per restituire i valori. Usare la sintassi seguente per richiamare funzioni JavaScript personalizzate con la funzione pulldata("@javascript"):
pulldata("@javascript", "yourJSFile.js", "yourFunction", "parameter1", "parameter2")
Nell'esempio sopra, la funzione JavaScript prevede due parametro, ma si può aggiungere qualsiasi numero di parametri di funzione.
Possono essere utilizzate altre domande nel sondaggio come parametri per le funzioni pulldata("@javascript"). Nel seguente esempio, la risposta alla domanda project_code viene immessa nella funzione projectLookup:
pulldata("@javascript", "projects.js", "projectLookup", ${project_code})
Nota:
L'impostazione delle domande geopoint, geotrace o geoshape come parametri per le funzioni pulldata("@javascript") non è supportata in Survey123 Studio e Survey123 Mobile.
È possibile utilizzare la funzione pulldata("@json") per estrarre valori specifici da un oggetto JSON prodotto da una funzione JavaScript. Per ulteriori informazioni, consultare Recuperare un valore da JSON.
A volte, in particolare quando si utilizza JavaScript per accedere ai servizi Web e ai servizi ArcGIS sicuri, potrebbe essere necessario accedere al dispositivo e alle proprietà utente. È possibile utilizzare la funzione pulldata("@property") per estrarre le informazioni sui dispositivi dai quali vengono inviate le risposte ai rilevamenti e sugli utenti registrati che inviano tali risposte. Per ulteriori informazioni, consultare Proprietà del dispositivo, dell'utente e del sondaggio.
Suggerimento:
Per interrogazioni spaziali e attributo su feature layer ArcGIS, valuta l'uso della funzione pulldata("@layer") invece di pulldata("@javascript"). La sintassi pulldata("@layer") è progettata appositamente per interrogazioni feature layer ed è supportata per rilevamenti pubblici. Per ulteriori informazioni, vedi Interrogazione di un feature layer.
Ripetizioni
Nota:
Questa sezione descrive le funzionalità disponibili solo in Survey123 Connect e nell'app da campo Survey123. Queste funzionalità non sono disponibili in Survey123 Studio o Survey123 Mobile.
È possibile passare tutti i valori attraverso una ripetizione nelle funzioni JavaScript. La funzione pulldata("@javascript") supporta due stili d'implementazione per il recupero dei valori da una ripetizione. Quella da utilizzare varia a seconda che si desideri che la funzione JavaScript interagisca con un campo o con molti campi in una ripetizione.
Se viene passata una domanda da una ripetizione come parametro della funzione, la funzione JavaScript riceve un array di valori dalla domanda specificata come segue:
pulldata("@javascript", "yourJSFile.js", "yourFunction", ${question1})
Se viene passato un nome di ripetizione come parametro di funzione, la funzione JavaScript riceve il parametro come un array di righe di tutti i valori nella ripetizione come segue:
pulldata("@javascript", "yourJSFile.js", "yourFunction", ${repeat1}, "question1")
Ognuno di questi produce un oggetto JSON con domande individuali come proprietà in quell'oggetto.
Nota:
L'accesso ai valori in ripetizione usando pulldata("@javascript") non è supportato nell'app Web Survey123. È possibile raccogliere i valori per una singola domanda in una ripetizione nell'app Web utilizzando join() per convertire l'elenco dei valori in una stringa separata da caratteri, e quindi dividere i valori nella funzione JavaScript.
A partire dalla versione 3.14 di Survey123, i valori vuoti passati attraverso una funzione JavaScript possono restituire undefined o null. Per questo motivo è necessario scrivere le funzioni JavaScript per tenere conto della possibilità di un valore undefined.
Limitazioni note
Le seguenti sono limitazioni conosciute durante l'utilizzo di funzioni JavaScript in moduli rilevamento.
- Il DOM (Document Object Model) non è supportato.
- Framework come JQuery, Ember e Angular non sono supportati.
- Non è possibile accedere ai file locali.
- Le chiamate asincrone non sono supportate.
- Le funzioni JavaScript sono supportate solo in moduli completati da utenti nella stessa organizzazione come autore del modulo.
- Le funzioni JavaScript non sono supportate per rilevamento pubblici.
- Una funzione pulldata("@javascript") non può essere chiamato dentro una funzione pulldata("@json") sull'app web Survey123.
Strumenti dello script
Nota:
Questa sezione descrive le funzionalità disponibili solo in Survey123 Connect. Questa funzionalità non è disponibile in Survey123 Studio.
È possibile gestire e modificare le funzioni JavaScript sulla scheda Script di Survey123 Connect. Su questa scheda è possibile creare un file JavaScript, esaminare il codice e testare la funzione. Questa scheda non sostituisce completamente un'iDE (Integrated Development Environment), che può fornire la validazione del codice e l'analisi delle best practice per semplificare lo sviluppo di funzioni JavaScript, ma è progettata come ausilio nell'integrazione di queste funzioni in Survey123.
Gli strumenti seguenti sono disponibili sul menu della scheda Script di Survey123 Connect:
- File script: mostra tutti i file JavaScript nella cartella scripts di un sondaggio. Selezionare un file da visualizzare e modificare.
- Aprire cartella script: lancia il browser del file alla posizione della cartella del rilevamento scripts.
- Nuovo file di script: crea un file di script nella cartella del rilevamento scripts. Digita il nome file e fai clic su Crea.
- Seleziona funzione: sottolineare la prima funzione nel file aperto e presentare i parametro per il test.
- Salva: salvare le modifiche al file aperto.
- Avvia editor esterno: avvia l'IDE JavaScript predefinita del sistema con il file aperto.
Fai clic sullo strumento Seleziona funzione per provare il funzionamento della prima funzione nel file digitando i valori per ogni parametro e visualizzando l'output. Una volta che avete finito con la funzione, potete copiare la dichiarazione pulldata presentata qui e incollarla nella XLSForm. Se si è effettuato l'accesso all'organizzazione, fare clic con il pulsante destro su uno dei parametri e cliccare Incolla token, se richiesto.