Erste Schritte mit dynamischen Ausgaben

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 11 Minuten Lesedauer
  • Erstellen Sie eine Beispielaktion, die dynamische Objekte zur Verwendung in einem Flow erstellt.

    Vorbereitungen

    Erforderliche Rolle: action_designer oder admin

    Warum und wann dieser Vorgang ausgeführt wird

    In dieser Aufgabe erstellen Sie zwei Datenerfassungsaktionen: eine, die das Schema für einen Datensatz in Ihrer Instanz erfasst, und eine andere, die das Schema für mehrere Datensätze in derselben Tabelle in Ihrer Instanz erfasst. Das Ziel besteht darin, sowohl ein komplexes Objekt als auch ein komplexes Objekt-Array zu erstellen, die als dynamische Ausgaben verwendet werden sollen. Jede Datenerfassungsaktion besteht aus Folgendem:
    • Ein REST-Schritt zum Erfassen von Tabellenschemadaten aus Ihrer Instanz.
    • Ein Skriptschritt zum Erstellen der Nutzlast aus dem Antworttext des REST-Schritts.
    • Eine Ausgabevariable mit dem Namen Ausgabe vom Typ JSON.
    Sie verwenden diese Datenerfassungsaktionen, um zwei dynamische Objekte zu erstellen. Anschließend erstellen Sie eine benutzerdefinierte Aktion, die die Datenerfassungsaktionen während des Flow-Designs aufruft.
    Hinweis:
    Mit dieser Aufgabe werden die Demoaktionen neu erstellt, die installiert wurden, wenn Sie Fordern Sie eine an IntegrationHub Plugin für Ihre Instanz.

    Prozedur

    1. Navigieren zu Alle > Prozessautomatisierung > Flow Designer.
    2. Klicken Sie auf Neu, und wählen Sie Neue Aktionaus.
      1. Geben Sie im Bildschirm „Aktionseigenschaften“ im Feld NameServiceNow-Objektschema abrufen (dynamisch)ein.
      2. Klicken Sie auf Absenden.
    3. Klicken Sie in der Aktionsgliederung auf Eingaben.
      1. Klicken Sie im Header „Aktionseingabe“ auf Eingabe erstellen.
      2. Geben Sie in die Felder Bezeichnung und NameTabelleein.
      3. Wählen Sie im Feld Type die Option Zeichenfolge aus.
      4. Um diese Eingabe erforderlich zu machen, schalten Sie den Schieberegler auf „ Obligatorisch “ um.
    4. Klicken Sie in der Aktionsgliederung unter Eingaben auf das Symbol zum Hinzufügen eines neuen Schritts (Symbol zum Hinzufügen eines neuen Schritts), und wählen Sie REST-Schrittaus.
    5. Füllen Sie unter dem REST-Schritt-Header die folgenden Felder aus.
      Feld Wert
      Verbindung Lassen Sie die Option Verbindungsalias verwenden ausgewählt.
      Verbindungsalias Klicken Sie auf das Symbol „ Neuen Datensatz erstellen“ (Symbol „Neuen Datensatz erstellen“ ), um eine neue HTTP(s)-Verbindung erstellen, oder verwenden Sie eine vorhandene Verbindung für Ihre Instanz. Die Anmeldeinformationen für die HTTP(s)-Verbindung müssen die Anmeldeinformationen der Basic Authenticationverwenden. Darüber hinaus muss die Verbindungs-URL die Basis-URL für Ihre Instanz sein, einschließlich des Schrägstrichs am Ende. Weitere Informationen zu Verbindungen und Anmeldeinformationen finden Sie unter Erste Schritte mit Verbindungen und Erste Schritte mit Anmeldeinformationen.
      Build-Anforderung Lassen Sie die Option Manuell ausgewählt.
      Ressourcenpfad Geben Sie api/now/processflow/table/ ein, und klicken Sie dann auf die Datenpillenauswahl ( Datenpillenauswahl). Auswahlvorgang Eingaben > Tabelle. Geben Sie als Nächstes /schemaein.
      HTTP-Methode Geben Sie GET ein
      Abfrageparameter Klicken Sie auf das Plus-Symbol ( Plus-Symbol, um einen neuen Abfrageparameter hinzuzufügen. Geben Sie dann im Feld Nameget_choices und true im Feld Wert ein.
    6. Klicken Sie in der Aktionsgliederung unter Ihrem REST-Schritt auf das Symbol zum Hinzufügen eines neuen Schritts (Symbol zum Hinzufügen eines neuen Schritts), und wählen Sie den Schritt Skript aus.
      1. Klicken Sie im Abschnitt Eingabevariablen auf Variable erstellen.
      2. Geben Sie im Feld Name den Namen payloadein.
      3. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie REST-Schritt > Antworttext:.
      4. Geben Sie in das Feld Skript den folgenden Code ein.
        
        (function execute(inputs, outputs) {
          var payload = JSON.parse(inputs.payload);
          
          var columns = payload.result.data.columns;
          var schema = columns.map(function(column) {
            var value = {
              label: column.label,
              name: column.name,
              type: getCOType(column.definition.base_type),
            };
            if (column.definition.type === 'choice') {
              value.type = 'choice';
              value.choices = column.definition.choices;
            } 
            if (column.definition.base_type === 'GUID') {
              value.children = [
                { label: 'Link', name: 'link', type: 'string' },
                { label: 'Value', name: 'value', type: 'string' },
              ];
            }
            return value;
          });
          outputs.schema = { 
            data: {
              type: 'object',
              children: schema,
            },
          };
          
          function getCOType(type) {
            if (type === 'GUID') return 'reference';
            return type;
          }
        })(inputs, outputs);
      5. Klicken Sie im Abschnitt „Ausgabevariablen“ auf Variable erstellen.
      6. Geben Sie in die Felder Bezeichnung und Nameschemaein.
      7. Wählen Sie im Feld Typ die Option JSONaus.
    7. Klicken Sie in der Aktionsgliederung auf Ausgaben.
      1. Klicken Sie im Header der Aktionsausgabe auf Ausgabe erstellen.
      2. Geben Sie in die Felder Bezeichnung und NameAusgabeein.
      3. Wählen Sie im Feld Typ die Option JSONaus.
      4. Klicken Sie im Header der Aktionsausgabe auf Bearbeitungsmodus beenden.
      5. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie Skriptschritt > Schema.
    8. Klicken Sie im Header Aktion auf Speichern und dann auf Test, um die Aktionzu testen.
      1. Geben Sie im Bildschirm „Testaktion“ incident für die Eingabe Tabelle ein.
      2. Klicken Sie auf Test ausführen.
      3. Überprüfen Sie die Ausführungsdetails der Aktion.
      Ihre Datenerfassungsaktion wird erfolgreich ausgeführt, wenn der Laufzeitwert für Felder ein komplexes Objekt in einem Format ist, das dem folgenden abgekürzten Beispiel ähnelt.
      {
             "data": {
                 "type": "object",
                 "children": [
                     {
                         "name": "active",
                         "label": "Active",
                         "type": "boolean"
                     },
                     {
                         "name": "activity_due",
                         "label": "Activity due",
                         "type": "datetime"
                     }, ...
    9. Klicken Sie im Header Aktion auf Veröffentlichen, um die Aktion Get ServiceNow Object Schema (Dynamic) für andere Flows und Aktionen im globalen Bereich verfügbar zu machen.

    Erstellen Sie die Aktion ServiceNow Array.Object-Schema abrufen (dynamisch).

    Erstellen Sie eine Beispieldatenerfassungsaktion, um ein Array von Objekten zu generieren.

    Vorbereitungen

    Erforderliche Rolle: action_designer oder admin

    Prozedur

    1. Klicken Sie im Hauptheader auf das Symbol zum Erstellen von Flows, Subflows oder Aktionen (Symbol zum Erstellen von Flows, Subflows oder Aktionen) und wählen Sie Aktionaus.
      1. Geben Sie im Bildschirm „Aktionseigenschaften“ im Feld Name den Text ServiceNow Array.Object-Schema abrufen (dynamisch)ein.
      2. Klicken Sie auf Absenden.
    2. Klicken Sie in der Aktionsgliederung auf Eingaben.
      1. Klicken Sie im Header „Aktionseingabe“ auf Eingabe erstellen.
      2. Geben Sie in die Felder Bezeichnung und NameTabelleein.
      3. Wählen Sie im Feld Type die Option Zeichenfolge aus.
      4. Um die Eingabe erforderlich zu machen, schalten Sie den Schieberegler auf „ Obligatorisch “ um.
    3. Klicken Sie in der Aktionsgliederung unter Eingaben auf das Symbol zum Hinzufügen eines neuen Schritts (Symbol für neuen Schritt) und wählen Sie den REST -Schritt aus.
    4. Füllen Sie unter dem REST-Schritt-Header die folgenden Felder aus.
      Feld Wert
      Verbindung Lassen Sie Verbindungsalias verwenden ausgewählt.
      Verbindungsalias Klicken Sie auf das Symbol „ Neuen Datensatz erstellen“ (Symbol „Neuen Datensatz erstellen“ ), um eine neue HTTP(s)-Verbindung erstellen, oder verwenden Sie eine vorhandene Verbindung für Ihre Instanz. Die Anmeldeinformationen für die HTTP(s)-Verbindung müssen die Anmeldeinformationen der Basic Authenticationverwenden. Darüber hinaus muss die Verbindungs-URL die Basis-URL für Ihre Instanz sein, einschließlich des Schrägstrichs am Ende.
      Build-Anforderung Lassen Sie die Option Manuell ausgewählt.
      Ressourcenpfad Geben Sie api/now/processflow/table/ ein, und klicken Sie dann auf die Datenpillenauswahl ( Datenpillenauswahl). Auswahlvorgang Eingaben > Tabelle. Geben Sie abschließend /schemaein
      HTTP-Methode Geben Sie GET ein
      Abfrageparameter Klicken Sie auf das Plus-Symbol ( Plus-Symbol, um einen neuen Abfrageparameter hinzuzufügen. Geben Sie dann im Feld Nameget_choices und trueim Feld Wert ein.
    5. Klicken Sie in der Aktionsgliederung auf das Symbol Neuen Schritt hinzufügen (Symbolfür neuen Schritt ) unter Ihrem REST-Schritt, und wählen Sie den Schritt Skript aus.
      1. Klicken Sie im Abschnitt Eingabevariablen auf Variable erstellen.
      2. Geben Sie im Feld Name den Namen payloadein.
      3. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie REST-Schritt > Antworttext:.
      4. Geben Sie in das Feld Skript den folgenden Code ein.
        
        (function execute(inputs, outputs) {
          var payload = JSON.parse(inputs.payload);
          
          var columns = payload.result.data.columns;
          var schema = columns.map(function(column) {
            var value = {
              label: column.label,
              name: column.name,
              type: getCOType(column.definition.base_type),
            };
            if (column.definition.type === 'choice') {
              value.type = 'choice';
              value.choices = column.definition.choices;
            }
            return value;
          });
          outputs.schema = { 
            data: {
              type: 'array.object',
              attributes: {
                child_type: 'object',
              },
              children: schema,
            },
          };
          
          function getCOType(type) {
            if (type === 'GUID') return 'string';
            return type;
          }
        })(inputs, outputs);
      5. Klicken Sie im Abschnitt „Ausgabevariablen“ auf Variable erstellen.
      6. Geben Sie in die Felder Bezeichnung und Nameschemaein.
      7. Wählen Sie im Feld Typ die Option JSONaus.
    6. Klicken Sie in der Aktionsgliederung auf Ausgaben.
      1. Klicken Sie im Header der Aktionsausgabe auf Ausgabe erstellen.
      2. Geben Sie die Ausgabe in die Felder Bezeichnung und Name ein.
      3. Wählen Sie JSON für das Feld Typ aus.
      4. Klicken Sie auf Bearbeitungsmodus beenden.
      5. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie Skriptschritt > Schema.
    7. Klicken Sie im Header Aktion auf Speichern und dann auf Test, um die Aktionzu testen.
      1. Geben Sie im Bildschirm „Testaktion“ im Feld Tabelle den Wert incidentein.
      2. Klicken Sie auf Test ausführen.
      3. Überprüfen Sie die Ausführungsdetails der Aktion.
        Ihre Datenerfassungsaktion wird erfolgreich ausgeführt, wenn der Laufzeitwert für die Feldausgabe ein komplexes Objekt ist, das ein Array von Schlüssel-Wert-Paaren für Bezeichnung, Nameund Wert enthält, wie im folgenden abgekürzten Beispiel gezeigt.
        {
               "data": {
                   "type": "array.object",
                   "children": [
                       {
                           "name": "active",
                           "label": "Active",
                           "type": "boolean"
                       },
                       {
                           "name": "activity_due",
                           "label": "Activity due",
                           "type": "datetime"
                       }, ...
        
    8. Klicken Sie im Header Aktion auf Veröffentlichen, um die Aktion Get ServiceNow Array.Object Schema (Dynamic) für andere Aktionen im globalen Bereich verfügbar zu machen.

    Erstellen Sie die Aktion ServiceNow-Datensätze abrufen (dynamisch).

    Erstellen Sie eine Beispielaktion, um dynamisch zwei Aktionsausgaben zu generieren, Datensatz und Datensätze, die dynamisch aktualisiert werden, wenn sich der Wert für die Eingabe Tabelle ändert.

    Vorbereitungen

    Erforderliche Rolle: action_designer oder admin

    Prozedur

    1. Klicken Sie im Hauptheader auf das Symbol zum Erstellen von Flows, Subflows oder Aktionen (Symbol zum Erstellen von Flows, Subflows oder Aktionen) und wählen Sie Aktionaus.
      1. Geben Sie im Dialogfeld „Aktionseigenschaften“ im Feld NameServiceNow-Datensätze abrufen (dynamisch)ein.
      2. Klicken Sie auf Absenden.
    2. Klicken Sie in der Aktionsgliederung auf Eingaben.
      1. Klicken Sie im Header „Aktionseingabe“ auf Eingabe erstellen.
      2. Geben Sie in die Felder Bezeichnung und NameTabelleein.
      3. Wählen Sie im Feld Typ die Option Dynamische Auswahlaus.
      4. Um die Eingabe erforderlich zu machen, schalten Sie den Schieberegler auf „ Obligatorisch “ um.
      5. Klicken Sie auf das Symbol „Erweiterte Eingaben umschalten“ (Symbol „ Erweiterte Eingaben umschalten “ ), um die erweiterten Optionen für die Eingabe Tabelle anzuzeigen.
      6. Geben Sie im Feld Standardwertincidentein.
      7. Wählen Sie unter Dynamische Optionen im Feld Aktion die Option ServiceNow-Tabellen abrufen – dynamischaus.
      8. Klicken Sie auf Eingabe erstellen, um eine weitere Aktionseingabe zu erstellen.
      9. Geben Sie in die Felder Bezeichnung und NameNumberOfRecordsein.
      10. Wählen Sie im Feld Typ die Option Ganzzahlaus.
      11. Um die Eingabe erforderlich zu machen, schalten Sie den Schieberegler auf „ Obligatorisch “ um.
      12. Klicken Sie auf das Symbol „Erweiterte Eingaben umschalten“ (Symbol „ Erweiterte Eingaben umschalten “ ), um die erweiterten Optionen für die Eingabe Tabelle anzuzeigen.
      13. Geben Sie im Feld Standardwert3ein.
    3. Klicken Sie in der Aktionsgliederung unter Eingaben auf das Symbol zum Hinzufügen eines neuen Schritts (Symbol für neuen Schritt) und wählen Sie den REST -Schritt aus.
    4. Füllen Sie unter dem REST-Schritt-Header die folgenden Felder aus.
      Feld Wert
      Verbindung Lassen Sie Verbindungsalias verwenden ausgewählt.
      Verbindungsalias Klicken Sie auf das Symbol „ Neuen Datensatz erstellen“ (Symbol „Neuen Datensatz erstellen“ ), um eine neue HTTP(s)-Verbindung erstellen, oder verwenden Sie eine vorhandene Verbindung für Ihre Instanz. Die Anmeldeinformationen für die HTTP(s)-Verbindung müssen die Anmeldeinformationen der Basic Authenticationverwenden. Darüber hinaus muss die Verbindungs-URL die Basis-URL für Ihre Instanz sein, einschließlich des Schrägstrichs am Ende.
      Build-Anforderung Lassen Sie die Option Manuell ausgewählt
      Ressourcenpfad Geben Sie api/now/table/ ein, und klicken Sie dann auf die Datenpillenauswahl ( Datenpillenauswahl). Auswahlvorgang Eingaben > Tabelle.
      HTTP-Methode Geben Sie GET ein
      Abfrageparameter Klicken Sie auf das Plus-Symbol ( Plus-Symbol, um einen neuen Abfrageparameter hinzuzufügen. Geben Sie dann sysparm_limit in das Feld Name ein. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie sie aus Eingaben > Anzahl der Datensätze.
    5. Klicken Sie in der Aktionsgliederung unter Eingaben auf das Symbol zum Hinzufügen eines neuen Schritts (Symbol für neuen Schritt ) und wählen Sie den Schritt Skript aus.
      1. Klicken Sie im Abschnitt Eingabevariablen auf Variable erstellen.
      2. Geben Sie im Feld Name den Namen payloadein.
      3. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie REST-Schritt > Antworttext:.
      4. Geben Sie in das Feld Skript den folgenden Code ein.
        
        (function execute(inputs, outputs) {
          var response = JSON.parse(inputs.payload);
          var records = response.result;
          outputs.record = records[0];
          outputs.records = JSON.stringify(records);
        })(inputs, outputs);
      5. Klicken Sie im Abschnitt „Ausgabevariablen“ auf Variable erstellen.
      6. Geben Sie in den Feldern Bezeichnung und NameDatensatzein.
      7. Wählen Sie JSON für das Feld Typ aus.
      8. Schalten Sie den Schieberegler auf „ Obligatorisch “ um.
      9. Klicken Sie auf Variable erstellen, um eine weitere Ausgabevariable für den Skriptschritt zu erstellen.
      10. Geben Sie in die Felder Bezeichnung und NameDatensätzeein.
      11. Wählen Sie im Feld Typ die Option JSONaus.
      12. Um die Eingabe erforderlich zu machen, schalten Sie den Schieberegler auf „ Obligatorisch “ um.
    6. Klicken Sie in der Aktionsgliederung auf Ausgaben.
      1. Klicken Sie im Header der Aktionsausgabe auf Ausgabe erstellen.
      2. Geben Sie in die Felder Bezeichnung und NameDatensätzeein.
      3. Wählen Sie im Feld Typ die Option Dynamisches Objektaus.
      4. Klicken Sie auf das Symbol „Erweiterte Eingaben umschalten“ (Symbol „ Erweiterte Eingaben umschalten “ ), um die erweiterten Optionen für die Ausgabe „ Datensätze “ anzuzeigen.
      5. Wählen Sie unter Dynamische Optionen die Option ServiceNow Array.Object-Schema abrufen (dynamisch) als Aktionaus.
      6. Um die Tabelleneingabe von einer anderen Eingabe abhängig zu machen, schalten Sie den Schieberegler „Abhängig von einer anderen Eingabe“ um, um ihn zu aktivieren.
      7. Wählen Sie im Feld Tabellee die Option Tabelleaus.
      8. Klicken Sie im Header der Aktionsausgabe auf Bearbeitungsmodus beenden.
      9. Klicken Sie neben dem Feld Wert auf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie Skriptschritt > Datensätze.
      10. Klicken Sie im Header der Aktionsausgabe auf Bearbeiten Sie Ausgaben > Ausgabe erstellen , um eine weitere Aktionsausgabe zu erstellen.
      11. Geben Sie in die Felder Bezeichnung und NameDatensatzein.
      12. Wählen Sie im Feld Typ die Option Dynamisches Objektaus.
      13. Klicken Sie auf das Symbol „Erweiterte Eingaben umschalten“ (Symbol „ Erweiterte Eingaben umschalten “ ), um die erweiterten Optionen für die Datensatzausgabe anzuzeigen.
      14. Wählen Sie unter Dynamische Optionen im Feld Aktion die Option ServiceNow-Objektschema abrufen (dynamisch)aus.
      15. Um die Tabelleneingabe von einer anderen Eingabe abhängig zu machen, schalten Sie den Schieberegler „Abhängig von einer anderen Eingabe“ um, um ihn zu aktivieren.
      16. Wählen Sie im Feld Tabelle die Option Tabelleaus.
      17. Klicken Sie im Header der Aktionsausgabe auf Bearbeitungsmodus beenden.
      18. Klicken Sie für Wertauf die Datenpillenauswahl ( Datenpillenauswahl), und wählen Sie Skriptschritt > record.
    7. Klicken Sie im Header Aktion auf Speichern und dann auf Test, um die Aktionzu testen.
      1. Wählen Sie im Bildschirm „Testaktion“ einen beliebigen dynamisch generierten Auswahlwert für die Eingabe Tabelle aus.
      2. Klicken Sie auf Test ausführen.
      3. Überprüfen Sie die Ausführungsdetails der Aktion.
        Ihre Aktion wird erfolgreich ausgeführt, wenn der Laufzeitwert für Datensatz ein ordnungsgemäß formatiertes komplexes Objekt und der Laufzeitwert für Datensätze ein ordnungsgemäß formatiertes komplexes Objekt-Array ist.
    8. Klicken Sie im Header Aktion auf Veröffentlichen, um die Aktion Get ServiceNow Records (Dynamic) für Flows innerhalb des globalen Bereichs verfügbar zu machen.

    Ergebnisse

    Sie können jetzt die Aktion Get ServiceNow Records (Dynamic) einem Flow in Flow Designerhinzufügen. Diese Beispielaktion generiert dynamisch zwei Aktionsausgaben, Datensatz und Datensätze, auf die als Datenpillen im Datenbereich zugegriffen werden kann. Die Datenpillen werden dynamisch aktualisiert, wenn sich der Wert für die Eingabe Tabelle ändert.Verwenden Sie die Beispielaktion ServiceNow-Datensätze abrufen (dynamisch) in einem Flow.