フロー制御ロジックノードには、シングルパス条件、条件判断、マルチパス判断、タイマー、直列実行、WebSocket、および WebSocket-pro が含まれます。これらのノードはブループリントエディターで設定できます。
単一条件
単一パス条件ノードは If 条件ノードとして機能します。設定した条件が満たされると、[条件を満たした場合] イベントをトリガーします。
イベントをトリガーするとは、システムがイベントノードに接続されたロジックを実行することを意味します。本トピックでは、「トリガー」という用語はこの意味で使われます。
シナリオ
たとえば、スイッチの状態に基づいてレイヤーを表示するには、[単一パス条件] ノードを使用して現在のスイッチの状態を評価できます。スイッチがオンの場合、レイヤーが表示されます。
使用方法
[単一パス条件] ノードをブループリントキャンバスに追加します。その後、そのイベント、アクション、および設定パラメーターを表示できます。詳細については、「ロジックノードの使用」をご参照ください。
ノード設定

ビジュアルエディターまたはコードエディターを使用して、判定条件を設定します。
-
ビジュアルエディター: すべての条件を満たす必要がある場合は [AND] パターンを選択し、いずれかの条件を満たせばよい場合は [OR] パターンを選択します。
-
コードエディター:新しいデータフィルターを追加し、フィルター条件を記述します。条件はブール値を返す必要があります。結果が TRUE の場合、[条件を満たした場合] イベントがトリガーされます。複数のデータフィルターを追加できます。
アンカーポイント設定
イベントとアクションの説明
|
イベント / アクション |
説明 |
|
[条件を満たした場合] |
祖先ノードからの出力が設定された条件を満たした場合にトリガーされます。イベント名はカスタマイズできます。 |
|
[評価] |
祖先ノードからの出力を入力として、条件付き評価を行います。アクション名はカスタマイズできます。 |
条件判断
条件判定ノードは If-Else 条件ノードとして機能し、指定された条件が満たされた場合は [条件成立] イベントを、満たされない場合は [条件不成立] イベントをトリガーします。
シナリオ
たとえば、スイッチの状態に基づいて 2 つのレイヤーを表示または非表示にするには、 [条件判断] ノードを使用して現在のスイッチの状態を評価できます。 スイッチがオンの場合、レイヤー A のみが表示されます。 スイッチがオフの場合、レイヤー B のみが表示されます。
使用方法
[条件判断] ノードをブループリントキャンバスに追加します。 その後、そのイベント、アクション、および設定パラメーターを表示できます。 詳細については、「ロジックノードの使用」 をご参照ください。
ノード設定

設定項目の説明
|
パラメーター |
説明 |
|
[判断タイプ] |
|
|
[条件リスト] |
データフィルターを追加してフィルター条件を記述します。フィルターは BOOLEAN 値を返します。返された値が TRUE の場合は [条件一致時] イベントがトリガーされ、FALSE の場合は [条件不一致時] イベントがトリガーされます。複数のデータフィルターを追加できます。 |
アンカーポイント設定
イベントとアクションの説明
|
イベント/アクション |
説明 |
|
[一致] |
上流ノードからの出力が設定された条件を満たした場合にトリガーされます。 イベント名はカスタマイズできます。 |
|
[不一致] |
上流ノードからの出力が設定された条件を満たさない場合にトリガーされます。 イベント名はカスタマイズできます。 |
|
[評価] |
上流ノードからの出力を入力として、条件付き評価を行います。 アクション名はカスタマイズできます。 |
マルチパス判定
[マルチパス判定] ノードは、Case-When ノードとして機能します。上位ノードからの出力を評価し、条件を満たす最初の下位ノードでアクションをトリガーします。
シナリオ
たとえば、[デジタル入力ボックス] の現在の値に基づいて、マップ上の散布点の色を設定できます。[多分岐判断] ノードを使用して入力値がどの範囲に収まるかを判断し、値が 100 より大きい場合は赤、50~100 の場合は黄色、50 未満の場合は青というように、対応する色の設定をトリガーします。
使用方法
ブループリントキャンバスに [多経路判定] ノードを追加します。すると、そのイベント、アクション、および設定パラメーターを表示できます。詳細については、「ロジックノードを使用する」をご参照ください。

イベントとアクションの説明
|
イベント/アクション |
説明 |
|
[この条件が満たされた場合] |
条件が満たされるとトリガーされます。設定パネルで複数のハンドラーを追加できます。追加後、[マルチパス判断] ノードに追加したハンドラーが表示されます。異なるハンドラーを異なる子孫ノードに接続して、マルチパス判断を実装できます。 |
|
[上記のいずれの条件も満たされない場合] |
設定したハンドラーの条件をいずれも満たさない場合にトリガーされます。 |
|
[評価] |
上位ノードからの出力を、マルチパス評価の入力として使用します。 |
設定項目の説明
|
パラメーター |
説明 |
|
[手順] |
新しいデータフィルターを追加して、処理メソッドを作成します。このメソッドは BOOLEAN 値を返します。結果が TRUE の場合、[この条件が満たされたとき] イベントがトリガーされ、その後の処理メソッドは実行されません。設定された条件のいずれも満たされない場合、[上記の条件が満たされないとき] イベントがトリガーされます。 |
タイマー
[タイマー] ノードは、遅延タイミング、指定時刻タイミング、ループ遅延タイミング、およびループ定期タイミングをサポートしています。
シナリオ
タイマーは、時間指定実行が必要なあらゆるシナリオに適しています。設定された時間に達すると、タイマーノードは[指定時間に達した時] イベントをトリガーし、上位ノードからの結果を出力し、後続のアクションをトリガーします。
使用方法
ブループリントキャンバスに [タイマー] ノードを追加して、そのイベント、アクション、設定パラメーターを表示します。 詳細については、「ロジカルノードを使用する」をご参照ください。
ノード設定

設定項目の説明
|
パラメーター |
説明 |
|
[タイミングモード] |
利用可能なモードは[遅延タイミング]と[固定時刻タイミング]です。 |
|
[ループ] |
タイマーを繰り返すかどうかを指定します。[タイミングモード] が [定時タイミング] に設定され、[ループ] が有効な場合、[定時期間] で開始時刻、間隔、単位を設定できます。 |
|
[遅延/間隔時間] |
カウントダウン時間 (秒) です。このパラメーターは、[タイミングモード] が [遅延タイミング] に設定されている場合にのみ有効です。 |
|
[固定時刻] |
特定の時点までカウントダウンし、イベントをトリガーします。このパラメーターは、[タイミングモード] が [定点タイミング] に設定され、かつ [ループタイマー] が無効になっている場合にのみ有効です。 |
アンカーポイント設定
イベントとアクションの説明
|
イベント/アクション |
説明 |
|
[指定時刻] |
指定した時刻になるとトリガーされ、下位ノードでアクションが実行されます。ループが有効な場合、このイベントは繰り返しトリガーされます。 |
|
[タイマーを開始] |
タイマーを開始します。 |
|
[タイマーの停止] |
タイマーを停止します。 次に [タイマーの開始] アクションが実行されると、タイマーは最初から再開します。 これは通常、ループタイマーで使用されます。 |
シリアル実行
[シリアル実行] ノードは、祖先ノードからの出力をハンドラで順番に処理し、各ハンドラに対応するアクションをトリガーします。
シナリオ
たとえば、シナリオごとに多数のデータパネルがある場合に、異なるシナリオのデータパネルを切り替えるには、まずシナリオ A のパネルを非表示にし、その後にシナリオ B のパネルを表示する必要がある場合があります。シリアル実行 ノードを使用すると、データパネルをシナリオ単位でグループ化し、A、次に B の順に切り替えられます。
使用方法
[シリアル実行] ノードをブループリントキャンバスに追加すると、イベント、アクション、および設定パラメーターを表示できます。ノードの追加方法の詳細については、「ロジックノードの使用」をご参照ください。

イベントとアクションの説明
|
イベントまたはアクション |
説明 |
|
[このハンドラの実行後] |
シリアル実行ノードのデータハンドラです。設定パネルで複数のハンドラを追加できます。追加すると、シリアル実行 ノードに追加したハンドラが表示されます。ハンドラはデータを順番に処理します。 |
|
[実行] |
祖先ノードからの出力を、処理の入力として使用します。 |
設定項目の説明
|
パラメーター |
説明 |
|
[処理メソッド] |
新しいデータフィルターを追加して処理メソッドを記述できます。メソッドはブール値を返します。戻り値が TRUE の場合、[このハンドラの実行後] イベントがトリガーされます。複数の処理メソッドを追加できます。各処理メソッドは独立して計算されます。すべてのメソッドの入力は前のノードからの出力です。各メソッドの出力はそのメソッドで計算した結果であり、メソッド同士は互いに影響しません。 |
WebSocket ノード
WebSocket ノードは、画面間の通信を可能にします。各メッセージは、カスタムメッセージ名と祖先ノードから出力されたデータで構成されます。
シナリオ
WebSocket ノードは、大画面とモバイルクライアント間、または大画面とタッチスクリーンクライアント間など、複数のクライアント間でコマンドとデータを送信します。
使用方法
WebSocket ノードをブループリントキャンバスに追加して、そのイベント、アクション、設定パラメーターを表示します。ノードの追加方法の詳細については、「ロジックノードの使用」をご参照ください。
ノード設定

設定項目の説明
|
パラメーター |
説明 |
|
[ソケットサービスエンドポイント] |
バックエンド ソケットサービスのエンドポイントです。 |
|
[画面 ID] |
この WebSocket ノードが配置されている画面の ID です。プラットフォームが自動的に検出し、入力されます。 |
|
グループ |
WebSocket ノードのメッセージは、同じソケットサービス配下の同じグループ内でのみブロードキャストされます。通常、同じプロジェクトには単一のグループ名が使用されます。 グループ名の一意性を確保するため、プラットフォームはデフォルトのグループ名を自動的に生成します。必要に応じて変更することもできます。 |
|
[画面 ID フィルター] |
デフォルトでは、WebSocket ノードによって送信されたメッセージは、同じグループ内のすべての画面で受信されます。このパラメーターを使用すると、メッセージを受信しない画面を指定できます。設定された画面はメッセージを受信しません。 説明
複数の画面 ID をカンマ (,) で区切って入力できます。 |
アンカーポイント設定

イベントとアクションの説明
|
イベント/アクション |
説明 |
|
[このメッセージを受信したとき] |
このイベントは、WebSocket ノードが別のクライアントから同じ名前のメッセージを受信したときにトリガーされます。受信したメッセージ名は、設定パネルで編集できます。右側にある [イベント追加] ボタンをクリックして、受信メッセージを追加します。右側にある |
|
[このメッセージを送信] |
祖先ノードの出力を受け取り、他のクライアントに送信します。送信メッセージ名は、設定パネルで編集できます。右側にある [アクション追加] ボタンをクリックして、送信メッセージを追加します。右側にある |
設定例

メッセージ登録
WebSocket ノードは、次のフォーマットでメッセージを送信します:
{
event: "register",
data: {
sid: "99326", // 画面 ID
group: "g_a9b9x" // 自動生成されたグループ名
},
callback: "callback_15832235175585251131307383912" // 現在の登録タイムスタンプ、自動生成
}
WebSocket サービスが登録メッセージを受信した後、登録を完了するには次のメッセージを返す必要があります:
{
event: "callback_15832235175585251131307383912", // 同じ登録タイムスタンプを返す
data: {
isError: false, // false に設定
data: "ok"
}
}
メッセージの送信
WebSocket ノードは、次のフォーマットでメッセージを送信します:
{
event: 'broadcast',
data: {
event: "sent_message_1", // 送信メッセージ名
data: {} // data は任意のフォーマットが可能
}
}
メッセージの受信
WebSocket ノードは、次のフォーマットでメッセージを受信します:
{
event: "broadcast_received_message_1", // broadcast_${受信メッセージ名}
data: {} // data は任意のフォーマットが可能
}
トラブルシューティング
WebSocket サービスに接続できない場合は、次のように問題をトラブルシューティングしてください:
-
WS サービスには、HTTPS プロトコル経由で直接アクセスすることはできません。WSS サービスを使用する必要があります。独自の SSL 証明書を使用して WS サービスのエンドポイントをプロキシした後、HTTPS 経由でサービスにアクセスできます。
-
F12 キーを押して、ブラウザのデベロッパーツールを開きます。[ネットワーク] タブで、[WS] タブの接続情報を表示します。クロスドメイン設定のエラーを確認し、接続応答の
Sec-WebSocket-Protocolヘッダーがecho-protocolに設定されていることを確認してください。 -
接続に成功したら、このドキュメントで説明されているメッセージフォーマットに従ってパラメーターを渡してください。
WebSocket-pro ノード
[WebSocket-pro] ノードを使用すると、WebSocket ノードよりもきめ細かい設定オプションで画面間通信が可能になります。各メッセージは、カスタムメッセージ名と祖先ノードの出力データで構成されます。
シナリオ
WebSocket ノードと同様に、[WebSocket-pro] ノードは複数のクライアント間でコマンドとデータを送信します。
使用方法
その設定パラメーターを表示するには、ブループリントキャンバスに [WebSocket-pro] ノードを追加します。ノードの追加方法の詳細については、「論理ノードの操作」をご参照ください。
ノード設定
設定項目の説明
|
パラメーター |
説明 |
|
[サービスエンドポイント] |
バックエンドのソケットサービスのエンドポイントです。 |
|
グループ |
WebSocket-pro ノードのメッセージは、同一ソケットサービス配下の同一グループ内にのみブロードキャストされます。通常、同一プロジェクトでは 1 つのグループ名を使用します。 |
|
[画面 ID] |
この WebSocket-pro ノードが配置されている画面の ID です。カスタム ID を入力します。 |
|
[スクリーン名] |
この WebSocket-pro ノードが配置されている画面の名前です。カスタム名を入力します。 |
|
[含まれる画面] |
メッセージ送信時、デフォルトでは同一グループ内のすべての画面がメッセージを受信できます。この設定に画面 ID を追加して、メッセージを受信する画面を指定できます。 |
|
[除外画面] |
メッセージ送信時、デフォルトでは同一グループ内のすべての画面がメッセージを受信できます。ここに画面 ID を追加して、メッセージを受信しない画面を指定できます。この設定は「含める画面」より優先されます。 |
|
[メッセージの受信] |
WebSocket-pro ノードが他のエンドポイントから受信するメッセージを設定します。右側の [イベントを追加] ボタンをクリックして受信メッセージを追加します。右側の [受信メッセージ ID:]WebSocket メッセージ内容のイベントフィールドに相当します。フィールドが一致した場合、対応するメッセージが受理されます。 [受信メッセージエイリアス:]ブループリントノード上のアンカーに表示される名前です。 [処理方法:] シリアルデータ処理メソッドです。設定パネルで複数の処理方法を追加できます。メソッドを追加すると、[シリアルデータ処理] ノードに追加したメソッドが表示されます。これらのメソッドは連携してデータを処理します。各メソッドの入力はメッセージ応答内容であり、出力は子孫ノードの入力として使用されます。 [受信メッセージエイリアス:] ブループリントノード上のアンカーポイントに表示される名前。 [処理メソッド:] シリアルデータを処理するメソッドです。設定パネルでは複数の処理メソッドを追加できます。追加したメソッドは、[シリアルデータ処理] ノードに表示されます。これらのメソッドは連携してデータを処理し、各メソッドの入力は返されたメッセージ内容、出力は子孫ノードの入力となります。 |
|
[メッセージを送信] |
この WebSocket-pro ノードが他のクライアントに送信するメッセージを設定します。右側の [アクションを追加] ボタンをクリックして送信メッセージを追加します。右側の [送信メッセージ ID:] この設定項目の値は、メッセージ送信時にメッセージ本文内の [送信メッセージエイリアス:]ブループリントノードのアンカーポイントに表示される名前です。 [ハンドラー:]シリアルデータ処理方式です。設定パネルで複数のハンドラーを追加できます。追加後、[シリアルデータ処理] ノードに追加したハンドラーが表示されます。ハンドラーは連携してデータを処理します。ハンドラーの入力はメッセージ応答内容で、出力は子孫ノードへの入力となります。 |
|
[詳細設定] |
WebSocket-pro ノードが配置されている画面に関するその他の設定です。 [ブロードキャストメッセージの登録]: 現在の画面にブロードキャストメッセージを登録して、コミュニケーションを円滑にします。 [無応答時に切断]: ネットワークサービスからの応答がない場合に、接続を自動的に切断するまでの時間を設定します。 [ハートビート検出]:ネットワーク通信に対してハートビート検出を設定し、接続が常にアクティブであることを確保します。 [ハートビート検出間隔]: 通信接続の状態を確認するための時間間隔を設定します。 |
アンカーポイント設定
イベントとアクションの説明
|
イベント/アクション |
説明 |
|
[このメッセージを受信したとき] |
このメッセージが受信されたときにトリガーされるイベントです。他の画面からメッセージを受信するには、[受信メッセージ ID] と [受信後ハンドラー] を設定します。 |
|
[カスタム接続] |
ネットワーク通信のカスタム接続を設定します。 |
|
[このメッセージを送信] |
このメッセージを送信する際、異なる画面に送信するには、[送信済みメッセージ ID] と [送信前ハンドラー] を設定します。 |
設定例

メッセージ登録
[WebSocket-pro] ノードは、以下の形式でメッセージを送信します。
{
"source":"407194",
"target":["10000","20000"],
"data":{
"name":"Data source controlled mode test",
"group":"Default group",
"hasCbMsg":true,
"disconnectTime":60000
},
"event":"register"
}
[WebSocket-pro] サービスが登録メッセージを受信すると、内部でそのメッセージを処理します。登録が成功した場合、クライアントの hasCbMsg パラメーターによって、アクセプターに確認応答を送信するかどうかが決まります。クライアントが 10 秒以内に登録に失敗した場合、そのクライアントへの接続は切断されます。確認応答メッセージは、以下の形式です。
{
"event":"register",
"source":"407194",
"data":{
"isError":false,
"data":"ok"
}
}
ハートビート検出
WebSocket-pro ノードでハートビート検出を有効にした場合、必要な確認応答フォーマットは次のとおりです。
{
"event": "heartbeat",
"data": {
"group": "Default group",
"hasCbMsg":true,
"disconnectTime": 60000
}
}
メッセージの送受信
[WebSocket-pro] ノードは、メッセージの送受信に同じ構造を使用します。形式は次のとおりです。
{
"event":"send_test",
"source":"407194",
"target":["10000","20000"],
"data":{
"zoom":12
}
}
[WebSocket-pro] ノードのハートビート、切断と再接続、包含画面、および除外画面の設定を有効にするには、クライアントから送信されるメッセージ本文の構造を処理するようにサーバー側をカスタマイズする必要があります。
アイコンをクリックして、受信メッセージを削除します。