영어 버전 문서로 돌아가기노드 루핑
노드 루핑
마지막 업데이트 날짜: 2024년 10월 07일
for
루프를 사용하여 플로우의 모든 노드를 순환할 수 있습니다. 예를 들어, 다음 두 개의 스크립트 예제는 모든 노드를 순환하고 필터 노드의 필드 이름을 대문자로 변경합니다.
필드가 실제로 필터링되지 않는 경우에도 필터 노드를 포함하는 플로우에서 이 스크립트를 사용할 수 있습니다. 보드에서 필드 이름을 대문자로 변경하려면 모든 필드를 전달하는 Filter 노드를 추가하기만 하면 됩니다.
# 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()
함수를 사용하여 이름을 대문자로 변경합니다.