Translation not up to date
Pętla for
może być używana do wykonywania pętli przez wszystkie węzły w przepływie. Na przykład następujące dwa przykłady skryptów zawierają pętlę dla wszystkich węzłów i zmienią nazwy pól w dowolnych węzłach filtrowania na wielkie.
Tego skryptu można użyć w dowolnym przepływie, który zawiera węzeł filtrowania, nawet jeśli żadne pola nie są w rzeczywistości filtrowane. Wystarczy dodać węzeł filtrowania, który przekazuje wszystkie pola w celu zmiany nazw pól na wielkie litery w tablicy.
# 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)
Skrypt wykonuje pętle przez wszystkie węzły w bieżącym przepływie i sprawdza, czy każdy węzeł jest filtrem. Jeśli tak, skrypt pętle przez każde pole w węźle i używa funkcji field.upper()
lub field.getColumnName().upper()
w celu zmiany nazwy na wielkie.