digiRunner Composer node-red

Composer 子流程用法分享

顏綸 Lun Yan 2024/01/26 17:17:29
224

前言

如果還不知道什麼是 Composer 的朋友們,可以先參考這篇 DigiRunnerAPI組合與設計

 

覺得節點太多看得眼睛很花?

多個 API 內部流程共通性高,改其中一個 API 需要其他 API 跟著改?

有以上問題的,這篇分享的功能將解決您的問題。

 

 

一、建立

建立子流程:

1. 點選菜單

2. 新建子流程即可得到空白子流程,如下圖所示:

並且節點會多個 Subflow。

按下 Subflow 節點會開啟該子流程的內容。

 

將選擇部分更改為子流程:

1. 選擇主流程上的節點

2. 點選菜單

3. 將選擇部分更改為子流程即可把主流呈上所選的節點搬到子流程中,如圖所示:

註:選取有多個輸入的節點無法變成子流程,因為子流程只允許一個輸入點。如下圖所示:

 

 

二、屬性

1. 編輯屬性

(a) 宣告一些區域參數給這子流程使用

(b) 編輯子流程名稱

(c) 編輯子流程的 properties

(d) 編輯子流程的描述,該描述在點擊子流程節點的時候會顯示在右側"幫助"介面上

 

2. 輸入:選擇該子流程是否要輸入點。

有開啟輸入,則子流程節點將會有輸入點。

 

3. 輸出:可以選擇要幾個輸出。3個輸出,節點就會有3個輸出點。

 

4. 狀態節點:啟用狀態節點後,會依子流程內輸入到 "status" 的資料輸出至 "status" 節點,如下圖所示

將輸入的資料直接輸出至 status

接著在主流程拉取一狀態節點並接上 debug 節點,這時按下 inject 輸出時間戳,debug 節點就會收到以下資料:

並且子流程節點會顯示時間戳

 

5. public:是否共用於其他流程。共用子流程只有建立方才能編輯儲存,

例如在A主流程建立並共用,則只能在A做編輯儲存,無法在B主流程儲存更動以及顯示 'read only"。

該圖在 mainflow 開起共用子流程後,去 coco 重新整理會發現子流程多一個共用子流程。

 

6. 刪除子流程:會將子流程本身與內部所有節點刪除,任何有使用到該子流程節點的也都將被刪除。

 

註:子流程內無法使用 inject 節點與 debug 節點。

 

三、結語

子流程可以看成一個個模組,把複雜的流程歸類收納以增加可讀性和可維護性,

也能將具有相似的 API 流程,整理放入共用子流程中,提高可重用性。

 

 

四、參考文獻

(1) node-red 官方

(2) 自己

 

 

顏綸 Lun Yan