ThingWorx Flow > 建立及管理自訂動作 > 在 ThingWorx Flow 8.4.x 中建立自訂動作
在 ThingWorx Flow 8.4.x 中建立自訂動作
ThingWorx Flow 設定頁或工作流程中,從「動作」面板的「自訂」標籤中建立自訂動作。
完成下列步驟來建立自訂動作:
1. 欲將自訂動作新增至 ThingWorx Flow,請執行下列其中一項操作:
ThingWorx Flow 的「設定」頁,轉至「自訂動作」,然後按一下
在「工作流程編輯器」中,從「動作」面板轉至「自訂」標籤,然後按一下
「自訂動作」視窗即會開啟。
2. 「標籤」欄位中,為您的動作輸入適當名稱。此為必填內容。
3. 在程式碼編輯器中,編輯預先填入的範本,為動作撰寫程式碼。如需如何定義動作各個部份的詳細資訊,請參閱 定義自訂動作部份。
4. 按一下「編譯」。如果程式碼有錯誤,這些錯誤會在程式碼編輯器中反白顯示。成功編譯之後,在自訂動作輸入部份定義的所有輸入欄位都會顯示在左窗格中。
5. 按一下「儲存」。動作即會新增至「動作」面板「自訂」標籤下的可用動作清單,而且可以拖曳到畫布上,以在工作流程中使用。
定義自訂動作
自訂動作就是定義動作的 Node.js JavaScript 函數。當建立自訂動作時,會在程式碼編輯器中預先填入範例範本。可使用此範本作為建構自訂動作的起點。
編號
描述
1
在程式碼開頭使用 require() 函數來匯入 Node.js 模組,以在自訂動作中使用。在範例程式碼中,動作會匯入 request 模組以對協力廠商系統發出簡單 HTTP 呼叫。
* 
為了防止可能發生的誤用情況,只能匯入下列 Node.js 模組以在自訂動作中使用:
assert, buffer, crypto, events, http, https, lodash, path, punycode, querystring, request, soap, string_decoder, url, ws, xml2js, zlib
2
this.id - 作為自訂動作唯一識別元使用的屬性。
3
this.label - 指定自訂動作名稱的屬性。
* 
如果您使用 this.label 設定動作的標題,將自動取代您在自訂動作視窗中輸入的動作標籤。
4
this.input - 定義當在工作流程中配置動作時要顯示之輸入欄位的 JSON 屬性。有三個 JSON 金鑰需要您為其指派值:
title - (必填) 在內部作為識別元使用
type - (必填) 在內部使用。此金鑰的值應始終設定為物件,且不應變更。
properties - (必填) 定義要針對動作顯示之輸入欄位與驗證條件 (若有) 的 JSON 屬性。每個輸入欄位都應具有一個唯一金鑰,例如 first_name,並應定義下列項目的值:
title - (必填) 會針對例如「名字」等欄位顯示的標籤。
type - (必填) 欄位類型。有效類型為 string、object、array 及 any
description - (選用) 顯示為工具提示的訊息。
minLength - (選用) 指定必須指定的字元數下限。
* 
若要將欄位設定為必填欄位,請將 minLength 的值設定為 1。
5
this.output - 定義動作傳回並可在工作流程剩餘部份使用之輸出欄位的 JSON 屬性。有三個 JSON 金鑰需要您為其指派值:
title - (必填) 在內部作為識別元使用。
type - (必填) 在內部使用。此金鑰的值應始終設定為物件,且不應變更。
properties - (必填) 定義輸出欄位的 JSON 屬性。每個輸出欄位都應具有一個唯一金鑰,例如 status,並應定義下列項目的值:
title - (必填) 會針對例如狀況等欄位顯示的標籤。
type - (必填) 欄位類型。有效類型為 string、object、array 及 any。
6
this.execute - 定義當在工作流程中執行動作時所執行之程式邏輯的函數。此函數必須定義下列兩個函數參數:
input - 在工作流程執行時包含輸入參數值的 JSON 物件。可使用如在動作 this.input 屬性中所定義之輸入欄位金鑰參考值。
output - 必須呼叫以將輸出值傳遞至工作流程的反呼叫函數。其表示動作已完成。此函數的格式為 callback(err,output)
err - 用來報告工作流程可能會發生的任何錯誤。如果沒有發生任何錯誤,則使用 null。
output - 具有在動作 this.output 屬性中定義之每個金鑰值的 JSON 物件。
* 
如果您從 ThingWorx Flow 8.4.x 移轉至 ThingWorx Flow 8.5,在 ThingWorx Flow 8.4.x 中建立的自訂動作在 ThingWorx Flow 8.5 中可繼續使用。您可為自訂動作的輸入與輸出欄位新增當地語系化支援。不過,您無法當地語系化在 ThingWorx Flow 8.4.x 中建立之自訂動作的標籤。