資料の 英語版 に戻る
ノードのループ
ノードのループ
最終更新: 2025年2月11日
ループを使用して、フロー内のすべてのノードをループできます。 例えば、以下の 2 つのスクリプト例は、すべてのノードをループし、任意のフィルター・ノードのフィールド名を大文字に変更します。for
フィルター・ノードを含む任意のフローでこのスクリプトを使用でき、フィールドが実際にフィルタリングされていない場合でも同様です。 ボード全体でフィールド名を大文字に変更するために、すべてのフィールドを渡すフィルター・ノードを追加するだけです。
# 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)
このスクリプトは、現在のフロー内のすべてのノードをループし、各ノードがフィルターであるかどうかを検査します。 その場合、スクリプトはノード内の各フィールドをループし、
関数または field.upper()
関数のいずれかを使用して名前を大文字に変更します。field.getColumnName().upper()
トピックは役に立ちましたか?
0/1000