Verwendung von Schleifen bei Knoten

Letzte Aktualisierung: 11. Feb. 2025
Verwendung von Schleifen bei Knoten

Sie können eine for-Schleife verwenden, um alle Knoten in einem Flow in einer Schleife zu durchlaufen. In den folgenden zwei Scriptbeispielen werden beispielsweise alle Knoten in einer Schleife durchlaufen und Feldnamen in allen Filterknoten in Großbuchstaben geändert.

Sie können dieses Script in jedem Ablauf verwenden, der einen Filterknoten enthält, auch wenn tatsächlich keine Felder gefiltert werden. Fügen Sie einfach einen Filterknoten hinzu, der alle Felder übergibt, um Feldnamen in Großbuchstaben zu ändern.

# Alternative 1: using the data model nameIterator() function
stream = modeler.script.stream()
for node in stream.iterator():
    if (node.getTypeName() == "filter"):
        # nameIterator() returns the field names
        for field in node.getInputDataModel().nameIterator():
            newname = field.upper()
            node.setKeyedPropertyValue("new_name", field, newname)
# Alternative 2: using the data model iterator() function
stream = modeler.script.stream()
for node in stream.iterator():
    if (node.getTypeName() == "filter"):
        # iterator() returns the field objects so we need
        # to call getColumnName() to get the name
        for field in node.getInputDataModel().iterator():
            newname = field.getColumnName().upper()
            node.setKeyedPropertyValue("new_name", field.getColumnName(), newname)

Das Script durchläuft alle Knoten im aktuellen Ablauf in einer Schleife und prüft, ob jeder Knoten ein Filter ist. Wenn dies der Fall ist, durchläuft das Script jedes Feld im Knoten in einer Schleife und verwendet die Funktion field.upper() oder field.getColumnName().upper() , um den Namen in Großbuchstaben zu ändern.