---
sourceDocument: Xanadu-Build-Workflows
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/xanadu/build-workflows

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-Build-Workflows

ft:clusterId :

    - crworkflow

bundleId :

    - crworkflow

workflow :

    - Creator


---

# Erstellen Sie eine anwenderdefinierte Aktion, um ein Array von Objekten aus einer Liste von Datensätzen zu generieren

# Erstellen Sie eine anwenderdefinierte Aktion, um ein Array von Objekten aus einer Liste von Datensätzen zu generieren {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 Minuten Lesedauer

Generieren Sie ein Array von Objekten aus einer Liste von Anwenderdatensätzen. Erfahren Sie, wie Sie mit einem Skriptschritt eine Liste der Datensätze durchlaufen.

## Vorbereitungen

Erforderliche Rolle: admin von flow_designer

## Warum und wann dieser Vorgang ausgeführt wird

Verwenden Sie dieses Beispiel, um sich Demonstrationen dieser Vorgänge und Schritte anzusehen.

* Erstellt eine Aktionseingabe für einen Abteilungsdatensatz.
* Suchen Sie nach maximal drei Anwenderdatensätzen für die Aktionseingabe „Abteilung".
* Konfigurieren Sie einen Skriptschritt, um eine Liste von Anwenderdatensätzen zu verarbeiten.
* Erstellen Sie eine Skripteingabevariable, die die Liste der Anwenderdatensätze enthält.
* Schreiben Sie ein Skript, das ein leeres Kontakt-Array erstellt.
* Schreiben Sie ein Skript, das die Liste der Anwenderdatensätze durchläuft.
* Schreiben Sie ein Skript, das ein Kontaktobjekt erstellt und dem Kontaktobjekt Feldwerte für den Anwenderdatensatz zuordnet.
* Schreiben Sie ein Skript, das das Kontakt-Array mit dem aktuellen Kontaktobjekt ausfüllt.
* Erstellen Sie Skriptausgabevariablen für das Kontakte-Array und das untergeordnete Kontaktobjekt.
* Speichern Sie das Kontaktobjekt als Vorlage.
* Geben Sie das generierte Kontakte-Array von Objekten als Datenpille aus.
* Testen Sie die Aktion mit einer Beispielabteilung.
{#create-custom-action-array-objects__ul_c5v_rdw_lhb}

## Prozedur

1. **Wahlweise:** Erstellen Sie eine Anwendung zum Speichern Ihrer Arbeit.  
   Mit App Engine Studio können Sie Anwendungen planen, erstellen und bereitstellen. Weitere Informationen zum Erstellen einer anwenderdefinierten Anwendung finden Sie unter [Building apps in App Engine Studio](https://www.servicenow.com/docs/access?context=aes-app-creation&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US).  
   Erstellen Sie beispielsweise eine Anwendung mit der Bezeichnung <kbd class="ph userinput">My Application</kbd>(Meine Anwendung).
2. Navigieren zu AlleProzessautomatisierungWorkflow-Studio.
3. Wählen Sie auf der Homepage Aktionen.
4. Auswahlvorgang NeuAktion  
   Das System zeigt das Dialogfeld Aktionseigenschaften an.
5. Geben Sie diese Beispielwerte ein.  
   {#create-custom-action-array-objects__table_tjt_xxp_lhb__entry__2}

   | Feld | Wert |
   |-|-|
   | Name | Kontakt-Array von Objekten erstellen |
   | Anwendung | Global |
   | Zugänglich von | Alle Anwendungsbereiche |
   [ ]

   {#create-custom-action-array-objects__table_tjt_xxp_lhb}  
   Hinweis:  
   Wenn Sie eine Anwendung zum Speichern und Bereitstellen Ihrer anwenderdefinierten Aktion erstellt haben, verwenden Sie diese Anwendung anstelle der globalen.
6. Wählen Sie Build-Aktion aus.  
   Das System zeigt die Schnittstelle Workflow-Studio an.
7. Wählen Sie in der Aktionsgliederung die Option aus EingabenEingabe erstellen  
   Das System zeigt eine neue Aktionseingabe an.
8. Konfigurieren Sie die Aktionseingabe mit diesen Werten.  
   {#create-custom-action-array-objects__table_ijj_myp_lhb__entry__2}

   | Feld | Wert |
   |-|-|
   | Bezeichnung | Abteilung |
   | Typ | Referenz.Abteilung \[Reference.cmn_department\] |
   | Obligatorisch | Wahr |
   [ ]

   {#create-custom-action-array-objects__table_ijj_myp_lhb}
9. Wählen Sie in der Aktionsgliederung die Option Neuen Schritt hinzufügenaus.  
   Das System zeigt eine Liste der verfügbaren Schritte an.
10. Wählen Sie Datensätze suchen aus
11. Konfigurieren Sie den Schritt mit diesen Werten.  
    {#create-custom-action-array-objects__table_cvp_l5p_lhb__entry__2}

    | Feld | Wert |
    |-|-|
    | Tabelle | Benutzer \[sys_user\] |
    | Bedingungen | \[Abteilung\]\[ist\]\[Aktion-\>Abteilung\] Hinweis: Wählen Sie die Datenpille Abteilung aus den Eingabevariablen aus. |
    | Anordnen nach | Name |
    | Sortiertyp | A bis Z |
    | Max. Ergebnisse | 3 |
    [ ]

    {#create-custom-action-array-objects__table_cvp_l5p_lhb}  
    Hinweis:  
    In diesem Beispiel wird die Einstellung Max. Ergebnisse nur zu Demonstrationszwecken auf drei Datensätze beschränkt.
12. Wählen Sie in der Aktionsgliederung die Option Neuen Schritt hinzufügenaus.  
    Das System zeigt eine Liste der verfügbaren Schritte an.
13. Wählen Sie Skript aus.
14. Wählen Sie im Abschnitt Eingabevariablen die Option Variable erstellenaus.
15. Konfigurieren Sie die Eingabevariable mit diesen Werten.  
    {#create-custom-action-array-objects__table_uby_5zp_lhb__entry__2}

    | Feld | Wert |
    |-|-|
    | Name | userRecords |
    | Wert | \[Schritt-\>Datensätze suchen Schritt-\>Benutzerdatensätze\] Hinweis: Wählen Sie im Schritt „Datensätze nachschlagen" die Datenpille „Benutzerdatensätze" aus. |
    [ ]

    {#create-custom-action-array-objects__table_uby_5zp_lhb}  
    Hinweis:  
    Sie können die Datenpille Benutzerdatensätze im Datenbereich oder über die Schaltfläche Datenpillenauswahl auswählen.
16. Geben Sie für Skriptden folgenden Text ein.  

        (function execute(inputs, outputs) {
          //Create an empty array
          var contactsArray = [];
          var i = 0;
          //Iterate through the list of User records
          while(inputs.userRecords.next()) {
            //Create an empty object for each iteration
            var contactObject = {};
            //Query User records to assign object values
            contactObject.first_name = inputs.userRecords.getValue('first_name');
            contactObject.last_name = inputs.userRecords.getValue('last_name');
            contactObject.email_address = inputs.userRecords.getValue('email');
            //Add current object to array
            contactsArray[i] = contactObject;
            i += 1;
          }
          outputs.contacts = contactsArray;
        })(inputs, outputs);

17. Wählen Sie unter Ausgabevariablen die Option Variable erstellenaus.
18. Konfigurieren Sie die Ausgabevariable mit diesen Werten.  
    {#create-custom-action-array-objects__table_e3w_hbq_lhb__entry__4}

    | Bezeichnung | Name | Typ | Obligatorisch |
    |-|-|-|-|
    | Kontakte | Kontakte | Array.Object | True |
    [ ]

    {#create-custom-action-array-objects__table_e3w_hbq_lhb}
19. Erweitern Sie das Array.Object „Kontakte", und benennen Sie das untergeordnete Objekt in <kbd class="ph userinput">Kontakt</kbd>um.
20. Wählen Sie in der Zeile für das Kontaktobjekt das Symbol „ Untergeordnetes Element hinzufügen ![]()" .
21. Konfigurieren Sie das untergeordnete Element mit diesen Werten.  
    {#create-custom-action-array-objects__table_d3v_sbq_lhb__entry__4}

    | Bezeichnung | Name | Typ | Obligatorisch |
    |-|-|-|-|
    | Vorname | first_name | Zeichenfolge | True |
    [ ]

    {#create-custom-action-array-objects__table_d3v_sbq_lhb}
22. Wählen Sie in der Zeile für das Kontaktobjekt das Symbol „ Untergeordnetes Element hinzufügen ![]()" .
23. Konfigurieren Sie das untergeordnete Element mit diesen Werten.  
    {#create-custom-action-array-objects__table_ncv_5bq_lhb__entry__4}

    | Bezeichnung | Name | Typ | Obligatorisch |
    |-|-|-|-|
    | Nachname | last_name | Zeichenfolge | True |
    [ ]

    {#create-custom-action-array-objects__table_ncv_5bq_lhb}
24. Wählen Sie in der Zeile für das Kontaktobjekt das Symbol „ Untergeordnetes Element hinzufügen ![]()" .
25. Konfigurieren Sie das untergeordnete Element mit diesen Werten.  
    {#create-custom-action-array-objects__table_kht_vbq_lhb__entry__4}

    | Bezeichnung | Name | Typ | Obligatorisch |
    |-|-|-|-|
    | E-Mail-Adresse | email_address | Zeichenfolge | Wahr |
    [ ]

    {#create-custom-action-array-objects__table_kht_vbq_lhb}
26. Wählen Sie in der Zeile für das Kontaktobjekt Erweiterte Eingabenein/aus.
27. Wählen Sie in den erweiterten Optionen die Option Als Vorlage speichernaus.  
    Das System zeigt das Dialogfeld „Als Vorlage speichern" an.
28. Geben Sie für Geben Sie einen Namenein den <kbd class="ph userinput">Kontakt</kbd>ein.  
29. Klicken Sie auf Speichern.
30. Wählen Sie in der Aktionsgliederung die Option aus AusgabenAusgabe erstellen.
31. Konfigurieren Sie die Aktionsausgabe mit diesen Werten.  
    {#create-custom-action-array-objects__table_ojs_pcq_lhb__entry__4}

    | Bezeichnung | Name | Typ | Obligatorisch |
    |-|-|-|-|
    | Kontakte | Kontakte | Array.Object | True |
    [ ]

    {#create-custom-action-array-objects__table_ojs_pcq_lhb}
32. Erweitern Sie das Array.Object für Kontakte.
33. Wählen Sie in der Zeile für das Kontaktobjekt Erweiterte Eingabenein/aus.
34. Wählen Sie in den Erweiterten Optionen die Option aus StrukturAus Vorlage starten.  
    Das System zeigt Vorlagean.
35. Wählen Sie für Vorlagedie zuvor gespeicherte Vorlage aus.  
    Wählen Sie beispielsweise Global: contact ( Global: Kontakt) aus.
36. Wählen Sie Bearbeitungsmodus beenden aus.  
    Das System zeigt die von Ihnen erstellten Ausgabefelder an.
37. Wählen Sie für Kontakte\[step-\>Script step-\>contacts\]aus.  
    Hinweis:  
    Sie können die Datenpille Skriptschrittkontakte im Datenbereich oder über die Schaltfläche Datenpillenauswahl auswählen.
38. Klicken Sie auf Speichern.
39. Wählen Sie Testaus.  
    Das System zeigt das Dialogfeld Testaktion an.
40. Geben Sie den folgenden Testwert ein:  
    {#create-custom-action-array-objects__table_onv_z22_mhb__entry__2}

    | Eingabe | Wert |
    |-|-|
    | Abteilung | Entwicklung |
    [ ]

    {#create-custom-action-array-objects__table_onv_z22_mhb}
41. Wählen Sie Test ausführen.  
    Das System führt die Aktion mit den bereitgestellten Testwerten aus.
42. Wählen Sie aus. Die Ausführung des Tests wurde abgeschlossen. Zeigen Sie die Details der Aktionsausführung an.  
    Das System zeigt die Details der Aktionsausführung an.
43. Überprüfen Sie den Laufzeitwert für die Aktion Ausgabedaten.  
    Obwohl die Ausführungsdetails die Ausgabedaten als Zeichenfolge im JSON-Format anzeigen, ist der tatsächliche Ausgabedatentyp ein Array von Objekten. Wenn Sie eine Zeichenfolgenversion Ihrer Ausgabe benötigen, können Sie das Objekt mit der JSON-Klasse in eine Zeichenfolge konvertieren. Weitere Informationen zum Konvertieren eines JSON-Objekts in eine Zeichenfolge finden Sie unter [Scoped JSON - stringify(Object jsonObject)](https://www.servicenow.com/docs/access?context=JSONScopedAPI&version=xanadu&pubname=xanadu-api-reference&section=JSONScoped-stringify_O&ft:locale=en-US).  
    In diesem Beispiel enthält das Kontaktobjekt ein Array von Kontaktobjekten mit Vorname, Nachname und E-Mail-Informationen für drei Benutzer in der Entwicklungsabteilung.

        {
            "contacts": 
                "contact": [
                    {
                        "email_address": "allyson.gillispie@example.com",
                        "first_name": "Allyson",
                        "last_name": "Gillispie"
                    },
                    {
                        "email_address": "alva.pennigton@example.com",
                        "first_name": "Alva",
                        "last_name": "Pennigton"
                    },
                    {
                        "email_address": "andrew.och@example.com",
                        "first_name": "Andrew",
                        "last_name": "Och"
                    }
                ]
            }
        }

## Ergebnisse

Sie haben eine anwenderdefinierte Aktion, die nach den Anwendern für eine bestimmte Abteilung sucht und diese Anwender in ein Array von Kontaktobjekten konvertiert.

## Nächste Maßnahme

Passen Sie diese Aktion an, um Ihre eigene Logik zu verwenden.

