Verwendung von Schleifen bei Knoten
Sie können eine
-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.for
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
oder field.upper()
, um den Namen in Großbuchstaben zu ändern.field.getColumnName().upper()