# JavaScript Piping

Mit JavaScript-Piping ist es möglich, einen Wert zu pipen, der mit beliebigem JavaScript Ihrer Wahl generiert wird.

Eine spezielle NGSJS-Funktion kann eingerichtet werden, um eine Ausgabe Ihres JavaScript-Codes zurückzugeben. Die Ausgabe kann dann in einem Standardwert gespeichert werden, um sie anzuzeigen und in einem Feld zu speichern.

{% hint style="warning" %}
Die Ausgabe wird nur im Submit-Modus ausgewertet. Wenn Ihre Umfrageantworten übermittelt wurden und Sie sich im Change-Modus oder Resume-Modus befinden, ist der Wert der ursprüngliche Wert, der vor dem Fortsetzen oder Ändern der Antworten gespeichert wurde.&#x20;
{% endhint %}

## ➕Einfaches Beispiel für die Summe von Feldern

Nachfolgend sind die Schritte zum Hinzufügen eines benutzerdefinierten JavaScript aufgeführt, das zwei Felder summiert. Sie können den Code anpassen, um jede gewünschte Ausgabe zum Speichern zu erzielen. Beachten Sie, dass Sie, wenn Sie nur eine Summe benötigen, die vorhandene [Numeric Field](/de/form-management/form-designer/answers/answer-types/numeric-answer-field.md) Typ stattdessen verwenden können\
\
Erstellen Sie eine Frage mit 3 Feldern

<figure><img src="/files/860b638de9de612aff5c306d24a60254370ebea3" alt=""><figcaption></figcaption></figure>

Sobald für jedes an der Berechnung beteiligte Feld erstellt, setzen Sie in den Antwort-Eigenschaften seinen Pipe-Alias; dieser wird später verwendet, um den aktuellen Wert nachzuschlagen.\
\
![](/files/ba9f6d148c66e28becfdb981ef57e5e9371546d9)\
\
![](/files/a0a6c3e1572fcb76ba7b9efced3094cace905c68)\
\
\
Im Feld Result öffnen Sie die Antwort-Einstellungen und verwenden im Standard-Textwert die NGSJS-Funktion, um den Wert der beiden anderen Felder abzurufen und das Ergebnis auszugeben.\ <br>

<figure><img src="/files/8820b98cafc08c20691856133047807dcbb76eb0" alt=""><figcaption></figcaption></figure>

```
NGSJS(return pipeContext.getAnswer('VALUEA') + pipeContext.getAnswer('VALUEB'))
```

## 👨‍💻️ pipeContext

pipeContext ist ein integriertes Objekt, das Ihnen die folgenden Optionen bietet:\
\
**Eigenschaften:**

* `questions: Question[]`\
  Liste der Umfragefragen.
* `answers: Answer[]`\
  Liste der möglichen Antworten über alle Fragen hinweg.
* `respondent: Respondent`\
  Informationen zum aktuellen Befragten.
* `panelists: Panelist[]`\
  Zugehörige Panelisten (falls zutreffend).
* `respondentAnswers: RespondentAnswer[]`\
  Vom Befragten bereitgestellte Antworten.
* `pipeDataAttributesValues: PipeDataAttributeValue[]`\
  Zusätzliche Pipe-Datenattribute und Werte.

#### Methoden

**`getAnswer(id: string): string`**

Gibt den/die mit einer angegebenen Kennung verknüpften Wert(e) zurück.

* Unterstützt die Suche nach:
  * Answer ID
  * Question ID
  * Reporting-Alias
  * Pipe-Alias
* Verhalten:
  * Wenn die Kennung mit einer **textbasierten Antwort**übereinstimmt, wird ihr Wert zurückgegeben.
  * Wenn sie mit einer **Frage**übereinstimmt, werden die ausgewählten Antworten zurückgegeben.
  * Mehrere Werte werden als kommagetrennter String zurückgegeben.

**`isSelectedAnswer(id: string, value: string): boolean`**

Prüft, ob eine bestimmte Antwort ausgewählt ist.

* Parameter:
  * `id`: Frage- oder Antwortkennung
  * `value`: Zu prüfende Antwortkennung oder zu prüfender Wert
* Verhalten:
  * Wenn `id` sich auf eine Frage bezieht → prüft, ob die angegebene Antwort ausgewählt ist.
  * Wenn `id` sich auf eine Antwort bezieht → vergleicht den Wert direkt.
* Gibt zurück:
  * `true` wenn die Antwort ausgewählt ist oder übereinstimmt
  * `false` ansonsten


---

# Agent Instructions: 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.ngsurvey.com/de/form-management/form-designer/piping/javascript-piping.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.
