節點 - 程式碼區塊
節點功能:
這個「程式碼區塊」節點讓您可以在工作流中嵌入一小段程式碼 (支援 JavaScript 或 Python),用來對流程中的資料進行客製化的處理、計算或轉換。處理完畢後,節點會輸出新的資料內容,供後續的節點接續使用。
簡單來說,它就像一個小型計算機或處理器,讓您可以執行標準節點無法完成的特定邏輯。
一、可以接收的資料類型
- 數值、文字、時間、單選選項、人員等基本類型。
- 陣列 (Array) 類型:接收到陣列後,會先將其視為字串來處理。
處理限制:如果是從「獲取多筆資料」節點傳來的資料,此程式碼區塊節點最多只會處理前 100 筆紀錄。
二、可輸出的資料類型
- 文字 (Text/String)
- 陣列 (Array)
三、程式碼腳本的運行時環境
-
JavaScript 環境:
-
版本: Node.js v10.16.3 (API 文件參考:https://nodejs.org/docs/latest-v10.x/api/index.html)
-
內建常用模組 (可直接 require 使用):
-
-
Python 環境:
-
版本: Python v3.7.5 (API 文件參考:https://docs.python.org/3.7/library/index.html)
-
內建常用模組 (可直接 import 使用):
-
-
對外 API 呼叫支援:
-
若需透過程式碼呼叫外部 API,支援 WebService SOAP 協定。
-
支援的參數格式:XML / JSON / Form-Data。
-
支援的請求方法:GET / POST / PUT / DELETE。
-
需要其他模組? 如果您在開發過程中發現需要其他常用的 JS 或 Python 模組,歡迎向我們提出建議與回饋。
四、Javascript使用範例
-
目標效果:假設身分證字號格式為「城市代碼(1碼英文) + 性別碼(1碼數字) + ...」,根據輸入的身分證字號,自動取得性別 (male/female) 和城市代碼資訊。
-
新增與設定節點:
- 範例程式碼 (可直接複製測試,請確保參數設定如上圖):
var idcard = input.IDCard;
var cityCode = idcard.substr(0, 1); // 取出第一個字母作為城市代碼
var sexCode = idcard.substr(1, 1); // 取出第二個數字作為性別碼
var sex = 'female';
if (sexCode == '1') {
sex = 'male';
}
output = {Gender: sex, CityCode: cityCode };
五、程式碼說明
1. 如何定義輸入參數
-
在節點設定介面 (如下圖) 定義您要傳入程式碼的參數名稱 (例如 IDCard)。
-
設定該參數的值來源 (可以是固定值,或來自流程中先前節點的動態值)。可點擊【+鍵/值】新增多個輸入參數。
2. 程式碼區塊如何接收參數
-
使用 input.參數名稱 的格式來取得傳入的值。
-
例如:
var idcard = input.IDCard;
(如下圖) 就是將傳入的 IDCard 參數值,存到程式碼內部的 idcard 變數中。
3. 程式碼區塊如何輸出參數
-
程式碼處理完畢後,需要將結果輸出。
-
使用
output = { 參數名1: 參數值1, 參數名2: 參數值2 };
的格式。 -
可以輸出多個參數,用逗號分隔。
-
例如:
output = {Gender: sex, CityCode: cityCode };
(如下圖) 輸出了計算出的性別和城市代碼。 -
重要提示: 輸出的參數名稱強烈建議使用【英文】,以避免後續節點或系統發生不相容的錯誤。
4. 測試程式碼
-
寫好程式碼後,點擊【測試】按鈕。
-
如果輸入參數設定為動態值,測試時需要手動輸入一個測試用的值 (如下圖)。
- 如果執行成功,會顯示輸出的結果 (如下圖)。這表示您的程式碼邏輯大致正確。
5. 輸出參數如何被後續節點使用
- 必須先成功測試程式碼區塊(即有輸出結果顯示)並儲存該節點後,後續的節點才能在選擇參數時,看到並選用此程式碼區塊輸出的參數(例如 Gender, CityCode)。