Zum Inhalt

Zusammenführen#

Verwenden Sie den Merge-Knoten, um Daten aus mehreren Streams zu kombinieren, sobald Daten aller Streams verfügbar sind.

Knotenparameter#

Sie können festlegen, wie der Merge-Knoten Daten aus verschiedenen Datenströmen kombinieren soll, indem Sie einen Modus auswählen:

Anhängen#

Behalten Sie Daten von allen Eingängen bei. Wählen Sie eine Anzahl von Eingängen, um Elemente jedes Eingangs nacheinander auszugeben. Der Knoten wartet auf die Ausführung aller verbundenen Eingänge.

Kombinieren#

Kombinieren Sie Daten aus zwei Eingängen. Wählen Sie eine Option unter Kombinieren nach, um festzulegen, wie Sie die Eingangsdaten zusammenführen möchten.

Übereinstimmende Felder#

Vergleichen Sie Elemente anhand von Feldwerten. Geben Sie die Felder, die Sie vergleichen möchten, unter Übereinstimmende Felder ein.

Das Standardverhalten von Localmind Automate besteht darin, übereinstimmende Elemente beizubehalten. Sie können dies mit der Einstellung Ausgabetyp ändern:

  • Übereinstimmungen beibehalten: Führt übereinstimmende Elemente zusammen. Dies ist wie ein Inner Join.
  • Nichtübereinstimmungen beibehalten: Führt Elemente zusammen, die nicht übereinstimmen.
  • Alles beibehalten: Führt Elemente zusammen, die übereinstimmen, und schließt Elemente ein, die nicht übereinstimmen. Dies ist wie ein Outer Join.
  • Eingang 1 anreichern: Behält alle Daten von Eingang 1 bei und fügt übereinstimmende Daten von Eingang 2 hinzu. Dies ist wie ein Left Join.
  • Eingang 2 anreichern: Behält alle Daten von Eingang 2 bei und fügt übereinstimmende Daten von Eingang 1 hinzu. Dies ist wie ein Right Join.

Position#

Kombinieren Sie Elemente basierend auf ihrer Reihenfolge. Das Element am Index 0 in Eingang 1 wird mit dem Element am Index 0 in Eingang 2 zusammengeführt usw.

Alle möglichen Kombinationen#

Geben Sie alle möglichen Elementkombinationen aus, während Felder mit demselben Namen zusammengeführt werden.

Optionen für den Kombinationsmodus#

Beim Zusammenführen von Daten mit Modus > Kombinieren können Sie diese Optionen festlegen:

  • Konfliktbehandlung: Wählen Sie aus, wie beim Auftreten von Datenkonflikten oder beim Vorhandensein von Unterfeldern zusammengeführt werden soll. Weitere Informationen finden Sie unter Konfliktbehandlung.
  • Fuzzy-Vergleich: Ob Typunterschiede beim Vergleichen von Feldern toleriert werden sollen (aktiviert) oder nicht (deaktiviert, Standard). Wenn Sie dies beispielsweise aktivieren, behandelt Localmind Automate "3" und 3 als gleich.
  • Punktnotation deaktivieren: Dies verhindert den Zugriff auf untergeordnete Felder mithilfe von parent.child im Feldnamen.
  • Mehrere Übereinstimmungen: Wählen Sie aus, wie Localmind Automate mehrere Übereinstimmungen beim Vergleichen von Datenströmen behandelt.
    • Alle Übereinstimmungen einschließen: Gibt mehrere Elemente aus, wenn mehrere Übereinstimmungen vorhanden sind, eines für jede Übereinstimmung.
    • Nur erste Übereinstimmung einschließen: Behält das erste Element pro Übereinstimmung bei und verwirft die verbleibenden Mehrfachübereinstimmungen.
  • Nicht gepaarte Elemente einschließen: Wählen Sie aus, ob nicht gepaarte Elemente beim Zusammenführen nach Position beibehalten oder verworfen werden sollen. Das Standardverhalten besteht darin, die Elemente ohne Übereinstimmung auszulassen.
Konfliktbehandlung#

If multiple items at an index have a field with the same name, this is a clash. For example, if all items in both Input 1 and Input 2 have a field named language, these fields clash. By default, Localmind Automate prioritizes Input 2, meaning if language has a value in Input 2, Localmind Automate uses that value when merging the items.

You can change this behavior by selecting Options > Clash Handling:

  • When Field Values Clash: Choose which input to prioritize, or choose Always Add Input Number to Field Names to keep all fields and values, with the input number appended to the field name to show which input it came from.
  • Merging Nested Fields
    • Deep Merge: Merge properties at all levels of the items, including nested objects. This is useful when dealing with complex, nested data structures where you need to ensure the merging of all levels of nested properties.
    • Shallow Merge: Merge properties at the top level of the items only, without merging nested objects. This is useful when you have flat data structures or when you only need to merge top-level properties without worrying about nested properties.

SQL-Abfrage#

Schreiben Sie eine benutzerdefinierte SQL-Abfrage, um die Daten zusammenzuführen.

Beispiel:

1
SELECT * FROM input1 LEFT JOIN input2 ON input1.name = input2.id

Daten von vorherigen Knoten sind als Tabellen verfügbar, und Sie können sie in der SQL-Abfrage als input1, input2, input3 usw. basierend auf ihrer Reihenfolge verwenden. Eine vollständige Liste der unterstützten SQL-Anweisungen finden Sie auf der AlaSQL GitHub-Seite.

Zweig auswählen#

Wählen Sie aus, welchen Eingang Sie beibehalten möchten. Diese Option wartet immer, bis die Daten von beiden Eingängen verfügbar sind. Sie können auswählen, was ausgegeben werden soll:

  • Die Eingangsdaten 1
  • Die Eingangsdaten 2
  • Ein einzelnes, leeres Element

Der Knoten gibt die Daten vom ausgewählten Eingang aus, ohne sie zu ändern.

Zusammenführen von Datenströmen mit ungeraden Anzahlen von Elementen#

Die Elemente, die in Eingang 1 des Merge-Knotens übergeben werden, haben Vorrang. Wenn der Merge-Knoten beispielsweise fünf Elemente in Eingang 1 und 10 Elemente in Eingang 2 empfängt, werden nur fünf Elemente verarbeitet. Die verbleibenden fünf Elemente von Eingang 2 werden nicht verarbeitet.

Zweigausführung mit If- und Merge-Knoten#

0.236.0 and below

Localmind Automate removed this execution behavior in version 1.0. This section applies to workflows using the v0 (legacy) workflow execution order. By default, this is all workflows built before version 1.0. You can change the execution order in your workflow settings.

If you add a Merge node to a workflow containing an If node, it can result in both output data streams of the If node executing.

One data stream triggers the Merge node, which then goes and executes the other data stream.

For example, in the screenshot below there's a workflow containing an Edit Fields node, If node, and Merge node. The standard If node behavior is to execute one data stream (in the screenshot, this is the true output). However, due to the Merge node, both data streams execute, despite the If node not sending any data down the false data stream.

Probieren Sie es aus: Ein Schritt-für-Schritt-Beispiel#

Erstellen Sie einen Workflow mit einigen Beispieldaten, um den Merge-Knoten auszuprobieren.

Richten Sie Beispieldaten mithilfe der Code-Knoten ein#

  1. Fügen Sie einen Code-Knoten zur Canvas hinzu und verbinden Sie ihn mit dem Startknoten.
  2. Fügen Sie den folgenden JavaScript-Codeausschnitt in das Feld JavaScript-Code ein:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    return [
      {
        json: {
          name: 'Stefan',
          language: 'de',
        }
      },
      {
        json: {
          name: 'Jim',
          language: 'en',
        }
      },
      {
        json: {
          name: 'Hans',
          language: 'de',
        }
      }
    ];
    
  3. Fügen Sie einen zweiten Code-Knoten hinzu und verbinden Sie ihn mit dem Startknoten.
  4. Fügen Sie den folgenden JavaScript-Codeausschnitt in das Feld JavaScript-Code ein:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    return [
    	  {
        json: {
          greeting: 'Hello',
          language: 'en',
        }
      },
      {
        json: {
          greeting: 'Hallo',
          language: 'de',
        }
      }
    ];
    

Probieren Sie verschiedene Zusammenführungsmodi aus#

Fügen Sie den Merge-Knoten hinzu. Verbinden Sie den ersten Code-Knoten mit Eingang 1 und den zweiten Code-Knoten mit Eingang 2. Führen Sie den Workflow aus, um Daten in den Merge-Knoten zu laden.

Probieren Sie nun verschiedene Optionen unter Modus aus, um zu sehen, wie sich dies auf die Ausgabedaten auswirkt.

Anhängen#

Wählen Sie Modus > Anhängen und dann Schritt testen.

Ihre Ausgabe in der Tabellenansicht sollte wie folgt aussehen:

name language greeting
Stefan de
Jim en
Hans de
en Hello
de Hallo

Nach übereinstimmenden Feldern kombinieren#

Sie können diese beiden Dateneingaben zusammenführen, sodass jede Person die richtige Begrüßung für ihre Sprache erhält.

  1. Wählen Sie Modus > Kombinieren.
  2. Wählen Sie Kombinieren nach > Übereinstimmende Felder.
  3. Geben Sie sowohl unter Eingangsfeld 1 als auch unter Eingangsfeld 2 language ein. Dies weist Localmind Automate an, die Daten zu kombinieren, indem die Werte im Feld language in jedem Datensatz verglichen werden.
  4. Wählen Sie Schritt testen.

Ihre Ausgabe in der Tabellenansicht sollte wie folgt aussehen:

name language greeting
Stefan de Hallo
Jim en Hello
Hans de Hallo

Nach Position kombinieren#

Wählen Sie Modus > Kombinieren, Kombinieren nach > Position und dann Schritt testen.

Ihre Ausgabe in der Tabellenansicht sollte wie folgt aussehen:

name language greeting
Stefan en Hello
Jim de Hallo
Nicht gepaarte Elemente beibehalten#

Wenn Sie alle Elemente beibehalten möchten, wählen Sie Option hinzufügen > Nicht gepaarte Elemente einschließen und aktivieren Sie dann Nicht gepaarte Elemente einschließen.

Ihre Ausgabe in der Tabellenansicht sollte wie folgt aussehen:

name language greeting
Stefan en Hello
Jim de Hallo
Hans de

Alle möglichen Kombinationen kombinieren#

Wählen Sie Modus > Kombinieren, Kombinieren nach > Alle möglichen Kombinationen und dann Schritt testen.

Ihre Ausgabe in der Tabellenansicht sollte wie folgt aussehen:

name language greeting
Stefan en Hello
Stefan de Hallo
Jim en Hello
Jim de Hallo
Hans en Hello
Hans de Hallo