ノードを見つける

フローは、既存のノードを特定するためのさまざまな方法を提供します。 これらの方法は以下の表にまとめられています。

表 1. 既存のノードを特定する方法
メソッド 戻りの型 説明
s.findAll(type, label) コレクション 指定されたタイプとラベルを持つすべてのノードのリストを返します。 タイプまたはラベルのどちらかが None の場合、もう一方のパラメータが使用されます。
s.findAll(filter, recursive) コレクション 指定したフィルタで受け入れられたすべてのノードのコレクションを返します。 再帰フラグが True の場合、指定されたフロー内の SuperNodes も検索されます。
s.findByID(id) ノード 指定されたIDを持つノードを返します。そのようなノードが存在しない場合は None を返します。 検索は現在のストリームに限定されます。
s.findByType(type, label) ノード 指定されたタイプ、ラベル、またはその両方を持つノードを返します。 タイプまたは名前のどちらかが None の場合、もう一方のパラメータが使用されます。 複数のノードが一致する場合は、任意のノードが選択され、返されます。 一致するノードがない場合、戻り値は None となります。
s.findDownstream(fromNodes) コレクション 指定されたノードのリストから検索し、指定されたノードの下流にあるノードのセットを返します。 返されたリストには、最初に供給されたノードが含まれています。
s.findUpstream(fromNodes) コレクション 指定されたノードのリストから検索し、指定されたノードの上流にあるノードのセットを返します。 返されたリストには、最初に供給されたノードが含まれています。
s.findProcessorForID(String id, boolean recursive) ノード 指定されたIDを持つノードを返します。そのようなノードが存在しない場合は None を返します。 再帰フラグが true の場合、このダイアグラム内の複合ノードも検索されます。

例えば、スクリプトがアクセスする必要があるフィルタノードがフローに1つだけ含まれる場合、次のスクリプトを使用してフィルタノードを見つけることができます

stream = modeler.script.stream()
node = stream.findByType("filter", None)
...

あるいは、ノードのIDを使用することもできます。 例:

stream = modeler.script.stream()
node = stream.findByID("id49CVL4GHVV8")  # the Derive node ID
node.setPropertyValue("mode", "Multiple")
node.setPropertyValue("name_extension", "new_derive")
フロー内の任意のノードのIDを取得するには、ツールバーの 「スクリプト」アイコンをクリックし、フロー内の希望するノードを選択して、「選択したノードのIDを挿入」 をクリックします。
ノード ID