Translation not up to date
Cyklus for
můžete použít ke smyčce všemi uzly v toku. Například následující dva příklady skriptů procházejí všemi uzly a mění názvy polí v libovolném uzlu filtru na velká písmena.
Tento skript můžete použít v libovolném toku, který obsahuje uzel filtru, a to i v případě, že nejsou ve skutečnosti filtrována žádná pole. Jednoduše přidejte uzel filtru, který projde všechna pole, aby bylo možné změnit názvy polí na velká písmena v rámci celé rady.
# 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)
Skript se ve smyčce prochází všemi uzly v aktuálním toku a kontroluje, zda je každý uzel filtrem. Je-li tomu tak, skript se změní v každém poli v uzlu a použije buď funkci field.upper()
nebo field.getColumnName().upper()
, aby změnil název na velká písmena.