Attività di codifica
Informazioni sulle attività codice
L’attività relativa al codice consente di utilizzare JavaScript personalizzato per eseguire operazioni di manipolazione, formattazione e calcolo dei dati prima o dopo altre attività in un workflow. Ad esempio, è possibile utilizzare il task del codice per trasformare l’output del reso di una chiamata API in un risultato più user-friendly (ad esempio, è necessario comunicare il risultato al proprio manager non tecnico). È quindi possibile trasferire il risultato trasformato in un‘attività e-mail che invia un’e-mail al proprio manager.
Configurazione di task codice
- Passare a pagina Workflow standalone o il Scheda Flussi di lavoro di un sondaggio.
- Fare clic su Crea un workflow.
- Selezionare Avviato alla ricezione di un evento.
- Assegnare un nome al workflow.
- Fare clic su Scegli evento e selezionare l’evento che inizia il flusso di lavoro. Di solito, si tratta di un evento di risposta all’indagine.
- Se lo si desidera, fare clic sul segno più ( + ) e selezionare Condizioni per aggiungere condizioni al workflow. Le condizioni consentono di determinare quando viene attivato un workflow. Consultare la pagina collegata per ulteriori informazioni sulle condizioni di costruzione.
- Fare clic sul segno più (+) e selezionare Task.
- Selezionare l’attività Codice.
- Immettere l’espressione JavaScript nella casella. Consultare la sezione sulle best practice per informazioni utili durante la scrittura del codice.
Qtip: l’editor di codice mantiene una cronologia delle modifiche in modo da poter annullare le modifiche al codice premendo CTRL + Z (PC) o CMD + Z (Mac). Utilizzare MAIUSC + CTRL + Y (PC) o MAIUSC + CMD + Y (Mac) per ripristinare una modifica.Qtip: mentre scrivi il tuo codice potresti vedere errori nella finestra. Questi errori sono il controllo della presenza di errori di sintassi e non di errori di esecuzione. Gli errori di sintassi verranno sempre visualizzati in inglese, indipendentemente dall’impostazione della lingua dell’account. L’esecuzione non avviene finché il task non viene salvato e il workflow non viene avviato.
- Se lo si desidera, inserire un riepilogo dei task che spieghi cosa deve essere realizzato dal codice JavaScript.
- Fare clic su Codice test per eseguire il codice nel browser locale.
Consiglio Q: Dal momento che si svolgono in un ambiente diverso, il test del codice potrebbe non dare esattamente lo stesso risultato di eseguirlo nel flusso di lavoro.
- Utilizza il menu {a} Aggiungi testo trasferito per aggiungere testo trasferito alla tua espressione JavaScript. Il testo trasferito è utile per rilevare valori dall’evento, come ad esempio recuperare le risposte al sondaggio del partecipante. Il testo trasferito viene valutato prima che venga eseguita l’espressione JavaScript.
- Se è necessario cancellare il codice e ricominciare, fare clic su Ripristina impostazione predefinita.
- Al termine, fare clic su Salva.
- Il task di codifica viene spesso associato a un altro task per utilizzare l’output del task di codice. Fare clic sul segno più ( + ), selezionare Attività e scegliere il task successivo. Consultare questa pagina per una panoramica delle attività.
Limiti di esecuzione JavaScript
Quando scrivi il tuo codice JavaScript da includere nel task codice, tieni presente i seguenti limiti di esecuzione:
- Tempo di esecuzione massimo: 10 secondi
- Lunghezza massima JavaScript: 6 KB
- Nessuna richiesta API in uscita: per motivi di sicurezza, il task del codice non può effettuare richieste in uscita ad altre API o servizi, né può recuperare altre librerie JavaScript in run-time utilizzando richieste HTTP.
Se il codice JavaScript supera questi limiti, il task del codice non riuscirà. Se il workflow non riesce, passare a Workflows Reporting per ulteriori informazioni sul motivo per cui il workflow non è riuscito.
Prassi raccomandate
Quando scrivi il tuo JavaScript, segui le seguenti best practice:
-
- Il codice deve essere conforme alla sintassi ES6.
- Il codice verrà eseguito tramite Node.js in un ambiente protetto. Il task utilizza attualmente Node.js versione 8.10.
- Il codice deve restituire il risultato come oggetto JavaScript. Quando il risultato del reso viene formattato in questo modo, il sistema può dedurre automaticamente quali campi verranno restituiti dal codice personalizzato e fornire il testo trasferito appropriato per i task successivi.
Esempio: in questo esempio vengono restituiti più risultati:
function codeTask() { return { hello: "world", foo: "bar", status: 200 }; }
Esempio: In questo esempio, viene restituito un singolo risultato:
function codeTask() { return { result: "hello world", }; }
- A seconda del tipo di informazioni previste, potrebbe essere necessario incapsulare la sintassi del localizzatore tra virgolette. Sarà necessario aggiungere virgolette se si desidera che il localizzatore si risolva in una stringa. Non è necessario aggiungere offerte se si risolve in un oggetto.
Esempio: ad esempio, il codice come quello seguente necessiterebbe di virgolette:
function codeTask() { let ticketId = "~{ch://OCAC_31HNMUuEpm3Jg/exports.data.key}"; ... }
- Quando usi il testo trasferito per i campi che possono contenere virgolette, dovresti usare i letterali modello (`) invece delle virgolette intorno al testo trasferito.
Esempio: utilizzo di un task di codice con un’attività Servizio Web
Questo esempio illustra l’utilizzo di un’attività di codice con un‘attività del servizio Web. È possibile utilizzare un’attività di codice con un’attività del servizio Web per trasformare la risposta a un sondaggio di un partecipante in un codice API, quindi utilizzare i valori restituiti per eseguire una chiamata API. È quindi possibile prendere i risultati della chiamata API e utilizzare un’altra attività di codice per trasformare i valori restituiti in una risposta compatibile con le persone.
In questo esempio, stiamo costruendo un ristorante in Qualtrics. Ci soffermeremo un po’ più avanti sulle specifiche, ma di seguito riportiamo una panoramica di come realizzeremo questo obiettivo.
- Nel nostro sondaggio, chiederemo agli intervistati dove vogliono mangiare e come desiderano restituire i risultati.
- Per eseguire la ricerca del ristorante, utilizzeremo un’app di ricerca ristorante di terze parti. Utilizziamo un’attività di codice per trasformare le risposte del partecipante al sondaggio in un modulo utilizzabile dall’API di ricerca ristorante di terze parti.
- Utilizziamo quindi un’attività del servizio Web per eseguire una chiamata API alla ricerca ristorante di terze parti, che quindi restituisce i risultati come JSON.
- Utilizziamo un altro task di codice per trasformare il JSON risultante in una forma che gli umani possono leggere.
- Possiamo utilizzare un ultimo task per poi inviare queste informazioni agli intervistati, o a noi stessi. Ad esempio, utilizzare un‘attività di posta elettronica per inviare un messaggio di posta elettronica al rispondente con i risultati restituiti.
Creazione di una ricerca ristorante con task di codice
- Nel questionario, creare le domande che confluiranno nell’attività relativa al codice. Nel nostro caso, si tratta di una domanda a immissione di testo che chiede dove cercare i ristoranti e una domanda a scelta multipla che chiede come ordinare i risultati.
- Navigare a Workflow.
- Creare un nuovo workflow.
- Per l’evento workflow, selezionare Risposta sondaggio e configurare l’evento in modo da attivarlo quando viene creata una nuova risposta. Consultare la pagina collegata per ulteriori informazioni.
- Fare clic sul segno più ( + ) e selezionare Attività.
- Selezionare l’attività Codice.
- Per il codice stiamo trasformando le risposte dell’intervistato nei valori necessari per l’API per la ricerca del ristorante.
- Utilizziamo il testo trasferito per inserire la domanda da cui hanno origine le risposte degli intervistati.
- Fare clic su Salvare per salvare il task.
- Fare clic sul segno più ( + ) e selezionare Task.
- Selezionare l’attività Servizio Web e scegliere l’autenticazione. Consultare questa pagina per ulteriori informazioni.
- Immettere l’URL che si sta tentando di raggiungere.
- Aggiungere i parametri utilizzando stringhe di query. Utilizzare il menu testo trasferito, {a}, per utilizzare i valori del sondaggio e dell’attività codice precedente.
Esempio: Il nostro URL completamente costruito è
https://api.example.com/v3/businesses/search?sort_by=~{ch://OCAC_Zt2TNQYggAb6u89/sort_by}&location=${q://QID1/ChoiceTextEntryValue}
Contiene due parametri: sort_by e location. Per sort_by, il valore è il risultato del task del nostro primo codice. Per la località, il valore è la risposta del rispondente alla domanda con immissione di testo.
- Concludere la configurazione del task in base alle esigenze. Per assistenza, consultare le attività del servizio Web.
- Se necessario, creare percorsi JSON personalizzati che possano essere utilizzati in altre attività. Nel nostro esempio, creiamo un percorso per le “aziende” che restituisce una serie di aziende dai risultati della ricerca.
Qtip: se hai testato la tua attività di servizio web, Qualtrics identificherà automaticamente i percorsi JSON e li aggiungerà qui. Puoi eliminare quelli non necessari facendo clic sull’icona del cestino. - Fai clic su Salva.
- Fare clic sul segno più ( + ) e selezionare Attività.
- Selezionare l’attività Codice.
- Ora dobbiamo trasformare il JSON risultante dal task del servizio Web in una forma leggibile. Nel nostro caso, lo stiamo trasformando in HTML per l’utilizzo in una e-mail.
- Per recuperare il JSON risultante dall’attività del servizio Web, utilizzare il menu del testo trasferito, {a}.
- Fai clic su Salva.
Qtip: se utilizzi un testo trasferito, potresti ricevere un avviso poiché il designatore del testo trasferito non è JavaScript valido. Tuttavia, questo problema verrà risolto prima dell’esecuzione, in quanto il designatore del testo trasferito verrà sostituito con il valore del campo prima dell’esecuzione del codice.
- Fare clic sul segno più ( + ) e selezionare Attività.
- Selezionare E-mail.
- Configurare l’attività di posta elettronica. Consultare la pagina collegata per ulteriori informazioni.
- Trasferire il risultato dell’attività del secondo codice nel corpo dell’e-mail. Questo è ciò che restituisce i risultati della ricerca del ristorante.
- L’e-mail risultante restituisce i risultati della ricerca selezionata del partecipante!