對應器
「對應器」動作可透過組合各種動作的輸出,然後根據您的需求重新建構輸出的物件、集合、陣列或字串,來建立自訂輸出。您也可以對輸出執行各種函數。如此一來,您不必撰寫複雜的 Node.js 程式碼,即可從多個動作擷取及組合特定欄位值或輸出。「對應器」提供一些模組化函數,可協助您達成下列目標:
組合輸出
版序化物件、陣列、字串與集合
操作及測試值
使用對應器動作
欲在工作流程中使用此動作,請將其連線至 ThingWorx Flow。欲連線至流程,請執行下列操作:
1. 按一下 ,將「開發者工具」公用程式下的「對應器」動作拖曳至畫布,將指標置於動作上,然後按一下 或連按兩下該動作。「對應器」動作視窗即會開啟。
2. 視需要編輯「標籤」名稱。依預設,標籤名稱與動作名稱相同。
3. 按一下 以建立新的金鑰值對。
a. 重新命名金鑰欄位並輸入值。您可以將之前動作的輸出對應為值欄位的輸入。
b. 按一下 </> 以在指定輸入中新增函數。
按一下 可新增多個金鑰值對。
4. 按一下「完成」
對應器資料類型
對應器可接受「陣列」、「集合」、「物件」及「字串」資料類型的輸入值。
陣列 - 當指定金鑰傳回陣列時使用。欲將陣列設定為資料類型,請按一下 並從清單中選取「陣列」。您可以按一下 </> 對陣列套用函數。
集合 - 當指定金鑰傳回物件陣列時,會使用此資料類型。上一個動作的集合可直接對應至值欄位作為集合金鑰,或者可單獨在集合金鑰下新增金鑰-值對。
欲將集合設定為資料類型,請按一下 並從清單中選取「集合」。您可以按一下 </> 對集合套用函數。
物件 - 當指定金鑰傳回物件時使用。上一個動作的物件可直接對應至值欄位作為物件金鑰,或者可單獨在物件金鑰下新增金鑰-值對。
欲將物件設定為資料類型,請按一下 並從清單中選取「物件」。您需要在此指定物件名稱,然後按一下「金鑰」欄位旁提供的 '+' 連結新增金鑰-值對。之後,您便可針對這其中的每個內容選取任何資料類型。
您用來套用函數的控制台 (</>) 連結位於「物件名稱」欄位旁及該物件的每個「內容名稱」欄位旁。
字串 - 當指定金鑰傳回字串值時使用。依預設,所有金鑰-值對都屬於「字串」資料類型。您可以按一下 </> 對字串套用函數。
在對應器中使用內建函數
對應器可讓您針對之前動作的輸出執行各種函數。此動作提供一些預先建構的函數 (取自 'lodash' 程式庫) 供您使用。或者,您也可以撰寫您自己的自訂函數。
陣列函數:
_.Compact - 從指定陣列移除錯誤的值。 讀取更多
_.difference - 傳回值對指定陣列數中的第一個陣列具唯一性的陣列。 讀取更多
_.flatten - 將陣列展平一層深度。 讀取更多
_.flattenDeep - 展平整個陣列。 讀取更多
_.intersection - 傳回值在所有指定陣列中通用的陣列。 讀取更多
_.first - 擷取指定陣列的第一個元素。 讀取更多
_.last - 擷取指定陣列的最後一個元素。 讀取更多
_.uniq - 從指定陣列移除重複值。 讀取更多
物件函數
_.pick - 傳回元素符合指定物件內容的物件。 讀取更多
_.get - 傳回存在於物件中指定路徑的元素值。 讀取更多
_ keys - 建立物件之可列舉內容名稱的陣列。 讀取更多
字串函數
_.camelCase - 將字串大小寫變更為 camelCase。 讀取更多
_.capitalize - 將字串的第一個字元變更為大寫,將其餘字元變更為小寫。 讀取更多
_.kebabcase - 將字串大小寫變更為 kebabCase。 讀取更多
_.lowercase - 將指定的字串轉換為小寫。 讀取更多
_.lowerfirst - 將字串的第一個字元轉換為小寫。 讀取更多
_.replace - 將符合指定條件的字串取代為特定字串。 讀取更多
_.repeat - 重複特定字串指定次數。 讀取更多
_.escape - 將字串中的字元 &、<、>、'、與 " 轉換為其對應 HTML 實體。 讀取更多
_.trim - 從特定字串中移除前導與字尾空格字元及指定字元。 讀取更多
_.unescape - 將特定字串中的 HTML 實體 &、<、>、"、' 與 ` 轉換為其對應字元。 讀取更多
數字函數
_.add - 新增兩個數字。 讀取更多
_.ceil - 將數字進位到指定的有效位數。 讀取更多
_.divide - 除兩個數字。 讀取更多
_.floor - 將數字捨去到指定的有效位數。 讀取更多
_.multiply - 乘兩個數字。 讀取更多
_.subtract - 減去兩個數字。 讀取更多
集合函數
_filter: - 傳回元素符合指定篩選器條件的陣列。 讀取更多
_.find - 傳回符合指定條件的第一個元素。 讀取更多
範例:在對應器中使用內建函數
您要將陣列指定清單中的特有值擷取到單一陣列。欲執行此操作,請先使用「陣列操作」動作串連兩個陣列 (包含一些常用值)。然後使用「對應器」中的輸出,並執行 _.uniq 函數來篩選出重複的值。
1. 「陣列操作」「對應器」「傳送電子郵件」動作新增至畫布,並如下所示進行連線:
2. 依照下列方式配置「陣列操作」動作:
「選取陣列操作」- 從清單中選取「串連」
「來源陣列 1」- 輸入您要串連的第一個陣列。
「來源陣列 2」- 輸入您要串連的第二個陣列。
按一下「新增」可新增多個陣列。
我們已在兩個陣列中有意使用 'R2-D2' 和 'Han'。如此會建立一個包含重複值的陣列。按一下「完成」。這樣您就會回到畫布。
3. 依照下列方式配置「對應器」動作:
Key1 - 輸入金鑰名稱。
按一下 選取「陣列資料類型」,然後按一下 新增函數。
按一下 ,然後按一下 ,將「陣列操作」動作的輸出新增為控制台視窗中的輸入。
按一下「函數」,然後選取 _.uniq 函數,以從陣列中移除重複值。
按一下「儲存」。「自訂函數」標籤即已在「值」欄位中新增為輸入。
4. 依照下列方式配置「傳送電子郵件」動作:
「收件者」- 輸入收件者的電子郵件 ID。
「主旨」- 輸入電子郵件主旨。
「本文類型」- 選取電子郵件的「文字」本文類型。
「本文」- 新增組態視窗右側所提供「對應器」動作的輸出作為此欄位的輸入。
5. 按一下「完成」,並「執行」工作流程。如此即會將指定陣列清單中的特有值擷取到單一陣列,並會將其傳送給指定收件者。
在對應器中新增自訂函數
「對應器」動作也可讓您編寫自訂函數以對特定輸入值執行操作。如需瞭解自訂函數,請參閱下列範例:
範例
繼續稍早的範例。假設您想要在稍早時實行的 _.uniq 函數輸出上套用自訂函數。
1. 在現有的程式碼中進行下列變更,如下圖所示:
2. 在控制台中新增自訂函數之後。按一下「儲存」,然後「執行」工作流程。
* 
您也可以只編寫可對指定輸入實行的自訂函數。
輸出結構描述
「對應器」動作會根據您輸入的金鑰值對傳回輸出結構描述。請參閱下圖的範例輸出結構描述: