Code-Aufgabe
Informationen zu Code-Aufgaben
Mit der Codeaufgabe können Sie benutzerdefiniertes JavaScript verwenden, um Datenbearbeitungs-, Formatierungs- und Berechnungsvorgänge vor oder nach anderen Aufgaben in einem Workflow durchzuführen. Sie können die Code-Aufgabe beispielsweise verwenden, um die Rückgabeausgabe eines API-Aufrufs in ein benutzerfreundlicheres Ergebnis umzuwandeln (z. B. um das Ergebnis an Ihren nicht technischen Manager zu kommunizieren). Sie können dann das Ergebnis in eine E-Mail-Aufgabe umwandeln, die eine E-Mail an Ihren Vorgesetzten sendet.
Code-Aufgaben einrichten
- Navigieren Sie zu Standalone-Workflow-Seite oder Registerkarte Workflows einer Umfrage.
- Klicken Sie auf Workflow erstellen.
- Wählen Sie Gestartet, wenn ein Ereignis empfangen wurde.
- Geben Sie Ihrem Workflow einen Namen.
- Klicken Sie auf Ereignis auswählen, und wählen Sie das Ereignis aus, das den Workflow startet. In der Regel handelt es sich hierbei um ein Umfrageantwortereignis.
- Klicken Sie bei Bedarf auf das Pluszeichen (+), und wählen Sie Bedingungen, um Bedingungen zu Ihrem Workflow hinzuzufügen. Bedingungen helfen bei der Ermittlung, wann ein Workflow ausgelöst wird. Weitere Informationen zum Erstellen von Bedingungen finden Sie auf der verlinkten Seite.
- Klicken Sie auf das Pluszeichen (+), und wählen Sie Aufgabe.
- Wählen Sie die Aufgabe Code.
- Geben Sie Ihren JavaScript-Ausdruck in das Feld ein. Im Abschnitt zu Best Practices finden Sie hilfreiche Informationen zum Schreiben Ihres Codes.
Tipp: Der Code-Editor pflegt eine Historie der Änderungen, sodass Sie Codeänderungen rückgängig machen können, indem Sie STRG + Z (PC) oder CMD + Z (Mac) drücken. Verwenden Sie UMSCHALT + STRG + Y (PC) oder UMSCHALT + CMD + Y (Mac), um eine Änderung erneut vorzunehmen.Tipp: Während Sie Ihren Code schreiben, sehen Sie möglicherweise Fehler im Fenster. Diese Fehler prüfen auf Syntaxfehler, nicht auf Ausführungsfehler. Syntaxfehler werden unabhängig von der Spracheinstellung Ihres Kontos immer auf Englisch angezeigt. Die Ausführung erfolgt erst, wenn die Aufgabe gesichert und der Workflow ausgelöst wird.
- Geben Sie bei Bedarf eine Aufgabenzusammenfassung ein, die erklärt, was der JavaScript-Code leisten soll.
- Klicken Sie auf Testcode, um den Code in Ihrem lokalen Browser auszuführen.
Tipp: Da sie in verschiedenen Umgebungen stattfinden, liefert das Testen des Codes möglicherweise nicht genau das gleiche Ergebnis wie die Ausführung im Workflow.
- Verwenden Sie das Menü {a} Dynamischen Text hinzufügen, um Ihrem JavaScript-Ausdruck dynamischen Text hinzuzufügen. Dynamischer Text ist nützlich, um Werte aus Ihrem Ereignis abzurufen, z. B. das Abrufen der Umfrageantworten Ihres Teilnehmers. Dynamischer Text wird ausgewertet, bevor Ihr JavaScript-Ausdruck ausgeführt wird.
- Wenn Sie Ihren Code löschen und von vorne beginnen müssen, klicken Sie auf Auf Standard zurücksetzen.
- Wenn Sie fertig sind, klicken Sie auf Speichern.
- Die Code-Aufgabe ist oft mit einer anderen Aufgabe verknüpft, um die Ausgabe der Code-Aufgabe zu verwenden. Klicken Sie auf das Pluszeichen (+), wählen Sie Aufgabe, und wählen Sie Ihre nächste Aufgabe. Auf dieser Seite erhalten Sie eine Übersicht über die Aufgaben.
JavaScript-Ausführungslimits
Wenn Sie Ihren JavaScript-Code schreiben, um ihn in die Code-Aufgabe einzubinden, beachten Sie die folgenden Ausführungslimits:
- Maximale Ausführungszeit: 10 Sekunden
- Maximale JavaScript-Länge: 6KB
- Keine ausgehenden API-Anforderungen: Aus Sicherheitsgründen kann die Code-Aufgabe keine ausgehenden Anforderungen an andere APIs oder Services senden oder andere JavaScript-Bibliotheken zur Laufzeit mithilfe von HTTP-Requests abrufen.
Wenn Ihr JavaScript-Code diese Grenzen überschreitet, schlägt die Codeaufgabe fehl. Wenn Ihr Workflow fehlschlägt, gehen Sie zu Workflows Reporting, um weitere Informationen darüber zu erhalten, warum Ihr Workflow fehlgeschlagen ist.
Bewährte Praktiken
Befolgen Sie beim Schreiben Ihres JavaScripts die folgenden Best Practices:
-
- Ihr Quelltext sollte der ES6-Syntax entsprechen.
- Ihr Quelltext wird über Node.js in einer geschützten Umgebung ausgeführt. Die Aufgabe verwendet derzeit Node.js Version 8.10.
- Ihr Code muss Ihr Ergebnis als JavaScript-Objekt zurückgeben. Wenn das Rückgabeergebnis auf diese Weise formatiert wird, kann das System automatisch ableiten, welche Felder Ihr benutzerdefinierter Code zurückgibt, und entsprechende dynamische Texte für nachfolgende Aufgaben bereitstellen.
Beispiel: In diesem Beispiel werden mehrere Ergebnisse zurückgegeben:
function codeTask() { return { hello: "world", foo: "bar", status: 200 }; }
Beispiel: In diesem Beispiel geben wir ein einzelnes Ergebnis zurück:
function codeTask() { return { result: "hello world", }; }
- Je nachdem, welche Art von Informationen Sie erwarten, müssen Sie Ihre Locator-Syntax möglicherweise in Anführungszeichen setzen. Sie müssen Anführungszeichen hinzufügen, wenn Ihr Lokator in eine Zeichenfolge aufgelöst werden soll. Sie müssen keine Angebote hinzufügen, wenn es sich um ein Objekt handelt.
Beispiel: Für Code wie den folgenden wären Anführungszeichen erforderlich:
function codeTask() { let ticketId = "~{ch://OCAC_31HNMUuEpm3Jg/exports.data.key}"; ... }
- Wenn Sie dynamischen Text für Felder verwenden, die Anführungszeichen enthalten können, sollten Sie Vorlagenliterale (`) anstelle von Anführungszeichen um den dynamischen Text verwenden.
Beispiel: Code-Aufgabe mit Web-Service-Aufgabe verwenden
In diesem Beispiel wird die Verwendung einer Code-Aufgabe mit einer Webservice-Aufgabe erläutert. Sie können eine Code-Aufgabe mit einer Webservice-Aufgabe verwenden, um die Umfrageantwort eines Teilnehmers in einen API-freundlichen Code umzuwandeln und dann die zurückgegebenen Werte zum Durchführen eines API-Aufrufs zu verwenden. Sie können dann die Ergebnisse des API-Aufrufs übernehmen und eine andere Code-Aufgabe verwenden, um die zurückgegebenen Werte in eine menschenfreundliche Antwort umzuwandeln.
In diesem Beispiel bauen wir einen Restaurantfinder in Qualtrics. Wir werden uns später noch etwas näher mit den Details beschäftigen. Im Folgenden finden Sie eine Übersicht darüber, wie wir dies erreichen werden.
- In unserer Umfrage fragen wir die Teilnehmer, wo sie essen möchten und wie sie Ergebnisse zurückgeben möchten.
- Für unsere Restaurantsuche verwenden wir eine externe Restaurantfinder-App. Wir verwenden eine Code-Aufgabe, um die Antworten des Umfrageteilnehmers in ein Formular umzuwandeln, das die externe API für die Restaurantsuche verwenden kann.
- Anschließend verwenden wir eine Webdienstaufgabe, um einen API-Aufruf an den externen Restaurantfinder auszuführen, der dann unsere Ergebnisse als JSON zurückgibt.
- Wir verwenden eine andere Code-Aufgabe, um die resultierende JSON in eine Form umzuwandeln, die Menschen lesen können.
- Mit einer letzten Aufgabe können wir diese Informationen dann an die Befragten oder an uns selbst senden. Verwenden Sie beispielsweise eine E-Mail-Aufgabe, um eine E-Mail mit den zurückgegebenen Ergebnissen an den Antwortenden zu senden.
Restaurantfinder mit Codeaufgaben erstellen
- Erstellen Sie in Ihrer Umfrage die Fragen, die in die Codeaufgabe einfließen. In unserem Fall ist es eine Texteingabe-Frage, wo nach Restaurants gesucht werden soll, und eine Multiple-Choice-Frage, wie die Ergebnisse sortiert werden sollen.
- Navigieren Sie zu Workflows.
- Legen Sie einen neuen Workflow an.
- Wählen Sie für das Workflow-Ereignis die Option Umfrageantwort und richten das Ereignis so ein, dass es ausgelöst wird, wenn eine neue Antwort angelegt wird. Besuchen Sie die verknüpfte Seite, um weitere Informationen zu erhalten.
- Klicken Sie auf das Pluszeichen (+), und wählen Sie Aufgabe.
- Wählen Sie die Aufgabe Code.
- Für den Code wandeln wir die Antworten des Teilnehmers in die Werte um, die für die API für die Restaurantsuche benötigt werden.
- Wir verwenden dynamischen Text, um die Frage einzubeziehen, aus der die Antworten der Teilnehmer stammen.
- Wählen Sie Sichern, um die Aufgabe zu sichern.
- Klicken Sie auf das Pluszeichen (+), und wählen Sie Aufgabe aus.
- Wählen Sie die Web-Service-Aufgabe aus, und wählen Sie Ihre Authentifizierung. Weitere Informationen finden Sie auf dieser Seite.
- Geben Sie die URL ein, die Sie erreichen möchten.
- Hängen Sie Ihre Parameter mithilfe von Abfragezeichenfolgen an. Verwenden Sie das Menü mit dynamischem Text({a}), um Werte aus Ihrer Umfrage und der vorherigen Codeaufgabe zu verwenden.
Beispiel: Unsere vollständig aufgebaute URL lautet:
https://api.example.com/v3/businesses/search?sort_by=~{ch://OCAC_Zt2TNQYggAb6u89/sort_by}&location=${q://QID1/ChoiceTextEntryValue}
Dieser enthält zwei Parameter: sort_by und location. Für sort_by ist der Wert das Ergebnis unserer ersten Code-Aufgabe. Für den Standort ist der Wert die Antwort des Antwortenden auf die Texteingabe-Frage.
- Schließen Sie die Einrichtung der Aufgabe nach Bedarf ab. Weitere Informationen finden Sie unter Webdienstaufgaben.
- Legen Sie bei Bedarf benutzerdefinierte JSON-Pfade an, die in anderen Aufgaben verwendet werden können. In unserem Beispiel erstellen wir einen „Unternehmen“-Pfad, der eine Reihe von Unternehmen aus unseren Suchergebnissen zurückgibt.
Tipp: Wenn Sie Ihre Web-Service-Aufgabe getestet haben, identifiziert Qualtrics automatisch JSON-Pfade und fügt sie hier hinzu. Sie können nicht benötigte Einträge löschen, indem Sie auf das Papierkorbsymbol klicken. - Klicken Sie auf Speichern.
- Klicken Sie auf das Pluszeichen (+), und wählen Sie Aufgabe.
- Wählen Sie die Aufgabe Code.
- Nun muss die resultierende JSON aus der Web-Service-Aufgabe in ein lesbares Formular umgewandelt werden. In unserem Fall wandeln wir sie in HTML um, um sie in einer E-Mail zu verwenden.
- Um die daraus resultierende JSON aus der Webdienstaufgabe abzurufen, verwenden Sie das Menü mit dynamischem Text {a}.
- Klicken Sie auf Speichern.
Tipp: Wenn Sie dynamischen Text verwenden, erhalten Sie möglicherweise eine Warnung, da der Bezeichner für dynamischen Text kein gültiges JavaScript ist. Dies wird jedoch vor der Ausführung gelöst, da der Piped-Text-Bezeichner vor der Ausführung des Codes durch den Feldwert ersetzt wird.
- Klicken Sie auf das Pluszeichen (+), und wählen Sie Aufgabe.
- Wählen Sie E-Mail.
- Richten Sie Ihre E-Mail-Aufgabe ein. Besuchen Sie die verknüpfte Seite, um weitere Informationen zu erhalten.
- Fügen Sie das Ergebnis Ihrer zweiten Code-Aufgabe in den E-Mail-Text ein. Das liefert die Ergebnisse der Restaurantsuche.
- Die resultierende E-Mail gibt die ausgewählten Suchergebnisse Ihres Teilnehmers zurück.