共用方式為


運算式中的函式參考指南,適用於 Azure Logic Apps 和 Power Automate 中的工作流程

適用於:Azure Logic Apps (使用量 + 標準)

針對 Azure Logic AppsPower Automate 中的工作流程定義,某些 運算式 會從工作流程開始執行時可能還不存在的運行時間動作取得其值。 若要參考或處理這些運算式中的值,您可以使用工作流程定義語言所提供的表示式函數

備註

本參考指南同時適用於 Azure Logic Apps 和 Power Automate,但存在於 Azure Logic Apps 檔中。 雖然指南特別參考邏輯應用程式工作流程,但這些函式適用於Power Automate中的流程和 Azure Logic Apps 中的工作流程。 如需Power Automate 中函式和表達式的詳細資訊,請參閱 在條件中使用表示式

例如,當您想要整數或浮點數的總和時,您可以使用數學函數來計算值,例如 add() 函式。 以下是您可以使用函式執行的其他工作範例:

任務 函數語法 結果
傳回小寫格式的字串。 toLower('<text>')

例如:toLower('Hello')
“hello”
傳回全域唯一識別碼 (GUID)。 guid() "c2ecc88d-88c8-4096-912c-d6f2e2b138ce"

若要 根據其一般用途尋找函式,請檢閱下表。 或者,如需每個函式的詳細資訊,請參閱 依字母順序排列的清單

運算式中的函式

為了示範如何在表達式中使用函式,此範例示範如何在表達式中使用customerName 函式,從 accountName 參數取得值,並將該值指派給 屬性:

"accountName": "@parameters('customerName')"

以下是您可以在運算式中使用函式的一些其他一般方式:

任務 運算式中的函式語法
將該項目傳遞至函式,以執行項目處理。 “@<functionName>(<item>)”
1.使用巢狀函式取得parameters()的值。
2.將該值傳遞至 functionName,以使用結果執行工作。
“@<functionName>(parameters('<parameterName>'))”
1.從巢狀內部函式 functionName 取得結果。
2.將結果傳遞至外部函 式 functionName2
“@<functionName2>(<functionName>(<item>))”
1.從 functionName 取得結果。
2.假設結果是屬性為 propertyName 的物件,取得該屬性的值。
“@<functionName>(<item>)。<propertyName>”

例如,concat() 函式可以採用兩個或多個字串值作為參數。 此函式會將這些字串合併成一個字串。 您可以傳入字串常值,例如,"Sophia" 和 "Owen",以便取得合併字串 "SophiaOwen":

"customerName": "@concat('Sophia', 'Owen')"

或者,您可以從參數取得字串值。 這個範例在每個 parameters() 參數以及 concat()firstName參數中使用 lastName 函式。 接著,您會將所產生的字串傳遞至 concat() 函式,以便取得合併字串,例如 "SophiaOwen":

"customerName": "@concat(parameters('firstName'), parameters('lastName'))"

無論如何,這兩個範例都會將結果指派給 customerName 屬性。

使用函數的考量

  • 設計工具不會評估設計階段用做為函數參數的執行階段運算式。 設計工具要求在設計階段可以完整評估所有運算式。

  • 函式由左至右來評估。

  • 在參數定義的語法中,參數後方出現問號 (?) 表示此參數是選擇性的。 例如,請參閱 getFutureTime()

  • 以純文字內嵌顯示的函數運算式需要以大括弧 ({}) 括住,才能改用運算式的插入格式。 此格式有助於避免剖析問題。 如果函數運算式未以純文字內嵌顯示,則不需要大括弧。

    下列範例顯示正確和不正確的語法:

    正確"<text>/@{<function-name>('<parameter-name>')}/<text>"

    不正確"<text>/@<function-name>('<parameter-name>')/<text>"

    確定"@<function-name>('<parameter-name>')"

下列各節會根據其一般用途來組織函式,或者您可以依 字母順序瀏覽這些函式。

字串函數

若要處理字串,您可以使用這些字串函式以及一些集合函式。 字串函式只能用於字串。

字串函數 任務
區塊 將字串或集合分割為長度相等的區塊。
concat 結合兩個或多個字串,並傳回合併的字串。
endsWith 檢查字串是否以指定的子字串結束。
formatNumber 根據指定的格式以字串形式傳回數字
guid 以字串形式產生全域唯一識別碼 (GUID)。
indexOf 傳回子字串的起始位置。
isFloat 傳回指出字串是否為浮點數的布林值。
isInt 傳回指出字串是否為整數的布林值。
lastIndexOf 傳回子字串最後一次出現的起始位置。
長度 傳回字串或陣列中的項目數目。
nthIndexOf 返回字串中子字串第 n 次出現的起始位置或索引值。
取代 使用指定字串取代子字串,並傳回已更新的字串。
slice 藉由指定開始和結束位置或值,傳回子字串。 另請參閱 子字串
分割 根據原始字串中指定的分隔符號字元,從較大型字串傳回包含以逗號分隔之子字串的陣列。
startsWith 檢查字串是否以特定的子字串開始。
substring 傳回字串中的字元 (從指定的位置起始)。 另請參閱配量
toLower 傳回小寫格式的字串。
toUpper 返回大寫格式的字串。
修剪 移除字串的開頭和尾端空白字元,並傳回更新後的字串。

集合函式

若要處理集合 (通常為陣列、字串,而有時候為字典),您可以使用這些集合函式。

集合函式 任務
區塊 將字串或集合分割為長度相等的區塊。
包含 檢查集合是否具有特定項目。
檢查集合是否是空的。
first 傳回集合中的第一個項目。
交叉路口 傳回僅包含指定集合中共同項目的集合。
項目 當函數透過陣列出現在重複動作中,則會傳回動作進行目前反覆項目期間,在陣列中的目前項目。
加入 傳回具有陣列中「所有」項目 (以指定的字元隔開) 的字串。
最後 傳回集合中的最後一個項目。
長度 傳回字串或陣列中的項目數目。
反向 將陣列中的項目順序反轉。
略過 移除集合前端的項目,並傳回「其他所有」項目。
排序 排序集合中的項目。
接受 傳回集合中的前端項目。
工會 傳回具有指定集合中「所有」項目的集合。

邏輯比較函式

若要處理條件、比較值和運算式結果,或評估各種不同的邏輯,您可以使用下列邏輯比較函式。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

備註

如果您使用邏輯函數或條件來比較值,null 值會轉換成空字串 ("") 值。 當您與空字串比較 (而不是 Null 值) 時,條件的行為會有所不同。 如需詳細資訊,請參閱 string() 函式

邏輯比較函式 任務
檢查是否所有表达式都為真。
等於 檢查兩個值是否相等。
較大 檢查第一個值是否大於第二個值。
greaterOrEquals 檢查第一個值是否大於或等於第二個值。
如果 檢查表達式是正確或錯誤。 根據結果,傳回指定的值。
isFloat 傳回指出字串是否為浮點數的布林值。
isInt 傳回指出字串是否為整數的布林值。
較少 檢查第一個值是否小於第二個值。
小於或等於 檢查第一個值是否小於或等於第二個值。
檢查運算式是否為假。
檢查是否至少有一個運算式是 True。

轉換函數

若要變更值的類型或格式,您可以使用這些轉換函式。 例如,您可以將一個值從布林值變更為整數。 如需 Azure Logic Apps 在轉換期間如何處理內容類型的詳細資訊,請參閱 處理內容類型。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用編碼或解碼函數來手動執行這些轉換。 不過,如果您在設計工具中仍然使用這些函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 隱含數據類型轉換

轉換函式 任務
陣列 從單一指定的輸入返回一個陣列。 如需多個輸入,請參閱 createArray
base64 傳回字串的 base64 編碼版本。
base64ToBinary 傳回 base64 編碼字串的二進位版本。
base64ToString 傳回 base64 編碼字串的字串版本。
二元的 傳回輸入值的二進位版本。
bool 傳回輸入值的布林值版本。
createArray 傳回一個來自多個輸入的陣列。
dataUri 傳回輸入值的資料 URI。
dataUriToBinary 傳回資料 URI 的二進位版本。
dataUriToString 傳回資料 URI 的字串版本。
decimal 傳回十進位字串的十進位數。
decodeBase64 傳回 base64 編碼字串的字串版本。
decodeDataUri 傳回資料 URI 的二進位版本。
decodeUriComponent 傳回以已解碼版本取代逸出字元的字串。
encodeUriComponent 傳回一個字串,將 URL 不安全的字元替換成逸出字元。
浮動 傳回輸入值的浮點數。
int 傳回字串的整數版本。
json 傳回字串或 XML 的 JavaScript 物件標記法 (JSON) 類型值或物件。
字串 傳回輸入值的字串版本。
uriComponent 藉由以逸出字元取代 URL 中的 Unsafe 字元,傳回輸入值的 URI 編碼版本。
uriComponentToBinary 傳回 URI 編碼字串的二進位版本。
uriComponentToString 傳回 URI 編碼字串的字串版本。
xml 傳回字串的 SML 版本。

隱含資料類型轉換

Azure Logic Apps 會自動或隱含地在某些資料類型之間轉換,因此您不需要手動執行這些轉換。 例如,如果您使用非字串值,但應該以字串作為輸入,Azure Logic Apps 會自動將非字串值轉換成字串。

例如,假設觸發程序傳回數值作為輸出:

triggerBody()?['123']

如果您使用此數值輸出,但應該有字串輸入 (例如 URL),Azure Logic Apps 會使用大括弧 ({}) 標記法,自動將值轉換成字串:

@{triggerBody()?['123']}

Base64 編碼和解碼

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用對應的函數來手動執行這些轉換:

  • base64(<value>)
  • base64ToBinary(<value>)
  • base64ToString(<value>)
  • base64(decodeDataUri(<value>))
  • concat('data:;base64,',<value>)
  • concat('data:,',encodeUriComponent(<value>))
  • decodeDataUri(<value>)

備註

如果您在使用設計工具時手動新增上述任何函數,請直接新增至觸發程序或動作,或使用運算式編輯器,從設計工具離開,然後返回設計工具,函數會從設計工具消失,只留下參數值。 如果您選取使用此函數的觸發程序或動作,而不編輯函數的參數值,也會發生此行為。 此結果只會影響函數的可見度,而不是效果。 在程式碼檢視中,函數不會受到影響。 不過,如果您編輯函數的參數值,函數及其效果都會從程式碼檢視中移除,只留下函數的參數值。

數學函數

若要處理整數和浮點數,您可以使用這些數學函式。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

數學函式 任務
新增 傳回兩個數字相加的結果。
div 傳回兩個數字相除的結果。
最大 從數字集合或陣列中傳回最大值。
min 從數字集合或陣列中傳回最小值。
修改 傳回兩數相除的餘數。
mul 傳回兩數相乘的結果。
蘭德 從指定範圍傳回隨機整數。
range 傳回從指定整數開始的整數陣列。
字幕 傳回第一個數字減去第二個數字的結果。

日期和時間功能

若要處理日期和時間,您可以使用這些日期和時間函式。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

日期或時間函式 任務
addDays 將天數新增至時間戳記。
新增小時 將小時數新增至時間戳記。
增加分鐘數 將分鐘數新增至時間戳記。
addSeconds 將秒數新增至時間戳記。
addToTime(增加時間) 將指定的時間單位新增至時間戳記。 另請參閱 getFutureTime
convertFromUtc 將時間戳記從國際標準時間 (UTC) 轉換為目標時區。
convertTimeZone 將時間戳記從來源時區轉換為目標時區。
轉換為UTC 將時間戳記從來源時區轉換為國際標準時間 (UTC)。
日期差異 以時間範圍傳回兩個日期之間的差異。
dayOfMonth 傳回時間戳記中的當月日期元件。
dayOfWeek 傳回時間戳記中的星期幾元件。
dayOfYear 傳回時間戳記中一年的第幾天元件。
formatDateTime 傳回時間戳記中的日期。
getFutureTime 傳回目前時間戳記加上指定時間單位的結果。 另請參閱 addToTime
getPastTime 傳回目前時間戳記減去指定時間單位的結果。 另請參閱 subtractFromTime
parseDateTime 從包含時間戳記的字串傳回時間戳記。
startOfDay 傳回時間戳記中當天的起始點。
startOfHour 傳回時間戳記中小時的起始點。
startOfMonth 傳回時間戳記中月份的起始點。
subtractFromTime 從時間戳減去一定數量的時間單位。 另請參閱 getPastTime
ticks 傳回指定時間戳記的 ticks 屬性值。
utcNow 傳回目前的時間戳記作為字串。

工作流程函式

這些工作流程函式可協助您:

  • 在執行階段取得有關工作流程執行個體的詳細資料。
  • 處理用於具現化邏輯應用程式或流程的輸入。
  • 參考來自觸發程序和動作的輸出。

例如,您可以參考來自一個動作的輸出,並在稍後動作中使用該資料。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

工作流程函式 任務
行動 傳回目前動作在執行階段的輸出,或來自其他 JSON 名稱與值配對中的值。 另請參閱 動作
行動 傳回動作在執行階段的輸出,或來自其他 JSON 名稱與值配對中的值。 另請參閱 動作
body 傳回動作在執行階段的 body 輸出。
formDataMultiValues 建立帶有值的陣列,這些值會符合「表單資料」或「表單編碼」動作輸出中的索引鍵名稱。
formDataValue 傳回符合動作 表單資料表單碼輸出中索引鍵名稱的單一值。
項目 當函數透過陣列出現在重複動作中,則會傳回動作進行目前反覆項目期間,在陣列中的目前項目。
項目 當此函數出現在 Foreach 或 Until 迴圈內時,從指定的迴圈傳回目前的項目。
iterationIndexes 當此函數出現在 Until 迴圈內時,傳回目前反覆項目的索引值。 您可以在巢狀 Until 迴圈內使用這個函式。
listCallbackUrl 傳回呼叫觸發程序或動作的「回呼 URL」。
multipartBody 在具有多個部分的動作輸出中,傳回特定部分的內容。
輸出 傳回動作在執行階段的輸出。
參數 傳回工作流程定義中所述參數的值。
結果 傳回指定範圍動作內 (例如 For_eachUntilScope) 上層動作的輸入和輸出。
trigger 傳回觸發程序在執行階段的輸出,或來自其他 JSON 名稱與值配對中的值。 另請參閱 triggerOutputstriggerBody
triggerBody 傳回觸發程序在執行階段的 body 輸出。 請參閱 觸發程式
triggerFormDataValue 在「表單資料」或「表單編碼」觸發程序輸出中,傳回符合索引鍵名稱的單一值。
triggerMultipartBody 在觸發程序的多部分輸出中,傳回特定部分的內容。
triggerFormDataMultiValues 建立一個陣列,其中的值符合 表單資料表單編碼 觸發器輸出中的索引鍵名稱。
triggerOutputs 傳回觸發程序在執行階段的輸出,或來自其他 JSON 名稱與值配對中的值。 請參閱 觸發程式
變數 傳回指定變數的值。
工作流程 傳回執行階段期間與工作流程本身相關的所有詳細資料。

URI 剖析函式

若要處理統一資源識別項 (URI) 並取得這些 URI 的各種屬性值,您可以使用這些 URI 剖析函式。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

URI 剖析函式 任務
uriHost 傳回統一資源識別項 (URI) 的 host 值。
uriPath 傳回統一資源識別項 (URI) 的 path 值。
uriPathAndQuery 傳回統一資源識別項 (URI) 的 pathquery 值。
uriPort 傳回統一資源識別項 (URI) 的 port 值。
uriQuery 傳回統一資源識別項 (URI) 的 query 值。
uriScheme 傳回統一資源識別項 (URI) 的 scheme 值。

操作函式:JSON 和 XML

若要處理 JSON 物件和 XML 節點,您可以使用這些操作函式。 如需每個函式的完整參考,請參閱 依字母順序排列的清單

操作函式 任務
addProperty 將屬性和其值或成對的名稱和數值新增至 JSON 物件,並傳回更新的物件。
coalesce 從一個或多個參數中傳回第一個非 Null 值。
removeProperty 從 JSON 物件中移除屬性,並傳回更新的物件。
setProperty 設定 JSON 物件屬性的值,並傳回更新的物件。
xpath 檢查 XML 中是否有符合 XPath (XML 路徑語言) 運算式的節點或值,並傳回符合的節點或值。

---------------------------------

所有函式 - 字母順序清單

本節依字母順序列出所有可用的函式。

A

動作

傳回執行階段上「目前」動作的輸出,或來自其他 JSON 名稱-值配對的值,而您可以將其指派給運算式。 根據預設,此函式會參考整個動作物件,但是您可以選擇性地指定其中有所需值的屬性。 另請參閱 actions()

您只能在下列位置使用 action() 函式:

  • Webhook 動作的 unsubscribe 屬性,讓您可以存取來自原始 subscribe 要求的結果
  • 動作的 trackedProperties 屬性
  • 動作的 do-until 迴圈條件
action()
action().outputs.body.<property>
參數 為必填項目 類型 說明
< 財產> 繩子 動作對象屬性的名稱,其值為:namestartTimeendTimeinputsoutputsstatuscodetrackingIdclientTrackingId。 在 Azure 入口網站中,您可以藉由檢閱特定執行歷程記錄的詳細資料來找出這些屬性。 如需詳細資訊,請參閱 REST API - 工作流程執行動作
傳回值 類型 說明
< 操作結果> 物體 目前動作或屬性的 JSON 物件輸出

動作

傳回執行階段上動作的輸出,或來自其他 JSON 成對名稱和數值中的值,而您可以將其指派給運算式。 根據預設,函式會參考整個動作物件,但是您可以選擇性地指定其中有所需值的屬性。 如需速記版本,請參閱 body()。 如需目前的動作,請參閱 action()

備註

先前,指定動作以另一個動作的輸出為基礎來執行時,您可以使用 actions() 函式或 conditions 元素。 但是,若要明確宣告動作之間的相依性,您現在必須使用相依動作的 runAfter 屬性。 若要深入瞭解 runAfter 屬性,請參閱 使用 runAfter 屬性攔截和處理失敗

actions('<actionName>')
actions('<actionName>').outputs.body.<property>
參數 為必填項目 類型 說明
< 動作名稱> 是的 繩子 您需要其輸出的動作物件名稱
< 財產> 繩子 動作對象屬性的名稱,其值為:namestartTimeendTimeinputsoutputsstatuscodetrackingIdclientTrackingId。 在 Azure 入口網站中,您可以藉由檢閱特定執行歷程記錄的詳細資料來找出這些屬性。 如需詳細資訊,請參閱 REST API - 工作流程執行動作
傳回值 類型 說明
< 操作結果> 物體 指定動作或屬性的 JSON 物件輸出

範例

此範例會從執行時間的 X 動作 status 取得 Get user 屬性值:

actions('Get_user').outputs.body.status

並傳回此結果:"Succeeded"

add

傳回兩個數字相加的結果。

add(<summand_1>, <summand_2>)
參數 為必填項目 類型 說明
< summand_1>、 <summand_2> 是的 整數、浮點數或混合 要相加的數字
傳回值 類型 說明
< 結果總和> 整數或浮點數 指定數字相加的結果

範例

此範例會相加指定的數字:

add(1, 1.5)

並傳回此結果:2.5

addDays

將天數新增至時間戳記。

addDays('<timestamp>', <days>, '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< > 是的 整數 要加入的天數 (正數或負數)
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 時間戳記加上指定的天數

範例 1

此範例會在指定的時間戳記中加上 10 天:

addDays('2018-03-15T00:00:00Z', 10)

並傳回此結果:"2018-03-25T00:00:00.0000000Z"

範例 2

此範例會從指定的時間戳記中減去五天:

addDays('2018-03-15T00:00:00Z', -5)

並傳回此結果:"2018-03-10T00:00:00.0000000Z"

addHours

將小時數新增至時間戳記。

addHours('<timestamp>', <hours>, '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 小時> 是的 整數 要加入的時數 (正數或負數)
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 時間戳記加上指定的時數

範例 1

此範例會在指定的時間戳記中加上 10 小時:

addHours('2018-03-15T00:00:00Z', 10)

並傳回此結果:"2018-03-15T10:00:00.0000000Z"

範例 2

此範例會從指定的時間戳記中減去五小時:

addHours('2018-03-15T15:00:00Z', -5)

並傳回此結果:"2018-03-15T10:00:00.0000000Z"

addMinutes(增加分鐘)

將分鐘數新增至時間戳記。

addMinutes('<timestamp>', <minutes>, '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 分鐘> 是的 整數 要加入的分鐘數 (正數或負數)
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 時間戳記加上指定的分鐘數

範例 1

此範例會在指定的時間戳記中加上 10 分鐘:

addMinutes('2018-03-15T00:10:00Z', 10)

並傳回此結果:"2018-03-15T00:20:00.0000000Z"

範例 2

此範例會從指定的時間戳記中減去五分鐘:

addMinutes('2018-03-15T00:20:00Z', -5)

並傳回此結果:"2018-03-15T00:15:00.0000000Z"

addProperty

將屬性和其值或成對的名稱和數值新增至 JSON 物件,並傳回更新的物件。 如果屬性已存在於執行階段,此函式會失敗並擲回錯誤。

addProperty(<object>, '<property>', <value>)
參數 為必填項目 類型 說明
< 物件> 是的 物體 您要對其新增屬性的 JSON 物件
< 財產> 是的 繩子 要新增的屬性名稱
< 價值> 是的 任意 屬性的值
傳回值 類型 說明
< 已更新的物件> 物體 具有指定屬性的更新 JSON 物件

若要將父屬性新增至現有的屬性,請使用 setProperty() 函數,而不是 addProperty() 函數。 否則,此函式只會傳回子物件作為輸出。

setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>)
參數 為必填項目 類型 說明
< 物件> 是的 物體 您要對其新增屬性的 JSON 物件
< 父屬性> 是的 繩子 父屬性的名稱,表示您想在其中新增子屬性
< 子屬性> 是的 繩子 子屬性的名稱,代表要新增的屬性
< 價值> 是的 任意 要為指定屬性設定的值
傳回值 類型 說明
< 已更新的物件> 物體 您已設定其屬性的更新 JSON 物件

範例 1

這個範例會將 middleName 屬性新增至 JSON 物件,該物件會使用 JSON() 函式,從字串轉換成 JSON。 此物件已包含 firstNamesurName 屬性。 此函式會將指定的值指派給新的屬性,並傳回更新的物件:

addProperty(json('{ "firstName": "Sophia", "lastName": "Owen" }'), 'middleName', 'Anne')

以下是目前的 JSON 物件:

{
   "firstName": "Sophia",
   "surName": "Owen"
}

以下是更新的 JSON 物件:

{
   "firstName": "Sophia",
   "middleName": "Anne",
   "surName": "Owen"
}

範例 2

這個範例會將 middleName 子屬性新增至 JSON 物件中的現有 customerName 屬性,該物件會使用 JSON() 函式,從字串轉換成 JSON。 此函式會將指定的值指派給新的屬性,並傳回更新的物件:

setProperty(json('{ "customerName": { "firstName": "Sophia", "surName": "Owen" } }'), 'customerName', addProperty(json('{ "customerName": { "firstName": "Sophia", "surName": "Owen" } }')['customerName'], 'middleName', 'Anne'))

以下是目前的 JSON 物件:

{
   "customerName": {
      "firstName": "Sophia",
      "surName": "Owen"
   }
}

以下是更新的 JSON 物件:

{
   "customerName": {
      "firstName": "Sophia",
      "middleName": "Anne",
      "surName": "Owen"
   }
}

addSeconds

將秒數新增至時間戳記。

addSeconds('<timestamp>', <seconds>, '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< > 是的 整數 要加入的秒數 (正數或負數)
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 時間戳記加上指定的秒數

範例 1

此範例會在指定的時間戳記中加上 10 秒鐘:

addSeconds('2018-03-15T00:00:00Z', 10)

並傳回此結果:"2018-03-15T00:00:10.0000000Z"

範例 2

此範例會在指定的時間戳記中減去 5 秒鐘:

addSeconds('2018-03-15T00:00:30Z', -5)

並傳回此結果:"2018-03-15T00:00:25.0000000Z"

addToTime

將指定的時間單位新增至時間戳記。 另請參閱 getFutureTime()

addToTime('<timestamp>', <interval>, '<timeUnit>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 間隔> 是的 整數 要加入的指定時間單位數字
< 時間單位> 是的 繩子 interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 時間戳記加上指定的時間單位數字

範例 1

此範例會在指定的時間戳記中加上 1 天:

addToTime('2018-01-01T00:00:00Z', 1, 'Day')

並傳回此結果:"2018-01-02T00:00:00.0000000Z"

範例 2

此範例會在指定的時間戳記中加上 1 天:

addToTime('2018-01-01T00:00:00Z', 1, 'Day', 'D')

並傳回選用 "D" 格式的結果:"Tuesday, January 2, 2018"

檢查是否所有表达式都為真。 在所有運算式都是 True 時,傳回 True,或至少有一個運算式為 False 時傳回 False。

and(<expression1>, <expression2>, ...)
參數 為必填項目 類型 說明
< expression1>, <expression2>, ... 是的 布林值 要檢查的表達式
傳回值 類型 說明
真或假 布林值 所有運算式都是 True 時,即傳回 True。 至少一個運算式為 False 時,則傳回 False。

範例 1

這些範例會檢查指定的布林值是否都是 True:

and(true, true)
and(false, true)
and(false, false)

並傳回下列結果:

  • 第一個範例:兩個運算式都是 True,所以會傳回 true
  • 第二個範例:一個運算式為 False,所以會傳回 false
  • 第三個範例:兩個運算式都是假,所以會傳回 false

範例 2

這些範例會檢查指定的運算式是否都是 True:

and(equals(1, 1), equals(2, 2))
and(equals(1, 1), equals(1, 2))
and(equals(1, 2), equals(1, 3))

並傳回下列結果:

  • 第一個範例:兩個運算式都是 True,所以會傳回 true
  • 第二個範例:一個運算式為 False,所以會傳回 false
  • 第三個範例:兩個運算式都是假,所以會傳回 false

陣列

從單一指定的輸入返回一個陣列。 如需多個輸入,請參閱 createArray()

array('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 建立陣列的字串
傳回值 類型 說明
[<>] Array 包含單一指定輸入的陣列

範例

此範例會從 "hello" 字串建立陣列:

array('hello')

並傳回此結果:["hello"]

B

base64

傳回字串的 base64 編碼版本。

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用編碼或解碼函數來手動執行這些轉換。 不過,如果您仍然在使用這些函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 Base64編碼和譯碼

base64('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 輸入字串
傳回值 類型 說明
< base64 字串> 繩子 輸入字串的 base64 編碼版本

範例

此範例會將 "hello" 字串轉換為 base64 編碼的字串:

base64('hello')

並傳回此結果:"aGVsbG8="

base64ToBinary

傳回 base64 編碼字串的二進位版本。

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用編碼或解碼函數來手動執行這些轉換。 不過,如果您在設計工具中仍然使用這些函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 Base64編碼和譯碼

base64ToBinary('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換的 base64 編碼字串
傳回值 類型 說明
< 二進位 for base64 字串> 繩子 base64 編碼字串的二進位版本

範例

此範例會將 "aGVsbG8=" base64 編碼的字串轉換為二進位字串:

base64ToBinary('aGVsbG8=')

例如,假設您使用 HTTP 動作來傳送要求。 您可以使用 base64ToBinary() 將 base64 編碼字串轉換成二進位資料,並使用要求中的 application/octet-stream 內容類型傳送該資料。

base64ToString

傳回 base64 編碼字串的字串版本,也就是有效地解碼 base64 字串。 使用此函式,而不使用已淘汰的decodeBase64()

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用編碼或解碼函數來手動執行這些轉換。 不過,如果您在設計工具中仍然使用這些函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 Base64編碼和譯碼

base64ToString('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要解碼的 base64 編碼字串
傳回值 類型 說明
< 解碼基底64字串> 繩子 傳回 base64 編碼字串的字串版本

範例

此範例會將 "aGVsbG8=" base64 編碼的字串轉換為單純字串:

base64ToString('aGVsbG8=')

並傳回此結果:"hello"

二進位

傳回字串的 Base64 編碼二進位版本。

binary('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換的字串
傳回值 類型 說明
< 輸入值的二進位格式> 繩子 指定字串的 base64 編碼二進位版本

範例

例如,您使用的是傳回影像或影片檔案的 HTTP 動作。 您可以使用 binary() 將值轉換成 base-64 編碼的內容信封模型。 然後,您可以在其他動作中重複使用內容信封,例如 Compose。 您可以使用此函數運算式,在要求中傳送具有 application/octet-stream 內容類型的字串位元組。

body

傳回動作在執行階段的 body 輸出。 actions('<actionName>').outputs.body 的簡略版。 請參閱 actions()

body('<actionName>')
參數 為必填項目 類型 說明
< 動作名稱> 是的 繩子 所需動作的 body 輸出名稱
傳回值 類型 說明
< 動作-身體-輸出> 繩子 來自指定動作的 body 輸出

範例

這個範例會從 bodyX 動作取得 Get user 輸出:

body('Get_user')

並傳回此結果:

"body": {
    "FullName": "Contoso Corporation",
    "Location": "Generic Town, USA",
    "Id": 283541717,
    "UserName": "ContosoInc",
    "FollowersCount": 172,
    "Description": "Leading the way in transforming the digital workplace.",
    "StatusesCount": 93,
    "FriendsCount": 126,
    "FavouritesCount": 46,
    "ProfileImageUrl": "https://pbs.twimg.com/profile_images/908820389907722240/gG9zaHcd_400x400.jpg"
}

布爾 (bool)

傳回值的布林值版本。

bool(<value>)
參數 為必填項目 類型 說明
< 價值> 是的 任意 要轉換為布林值的值。

如果您使用 bool() 搭配物件,物件的值必須是可轉換成布林值的字串或整數。

傳回值 類型 說明
truefalse 布林值 指定值的布林值版本。

輸出

這些範例顯示 bool() 輸入的不同支援類型:

輸入值 類型 傳回值
bool(1) 整數 true
bool(0) 整數 false
bool(-1) 整數 true
bool('true') 繩子 true
bool('false') 繩子 false

C

區塊

將字串或陣列分割為長度相等的區塊。

chunk('<collection>', '<length>')
chunk([<collection>], '<length>')
參數 為必填項目 類型 說明
< 收藏> 是的 字串或陣列 要分割的集合
< 長度> 是的 每個區塊的長度
傳回值 類型 說明
< 收藏> Array 具有指定長度的區塊陣列。

範例 1

此範例會將字串分割成長度為 10 的區塊:

chunk('abcdefghijklmnopqrstuvwxyz', 10)

並傳回此結果:['abcdefghij', 'klmnopqrst', 'uvwxyz']

範例 2

此範例會將陣列分割成長度為 5 的區塊:

chunk(createArray(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), 5)

並傳回此結果:[ [1,2,3,4,5], [6,7,8,9,10], [11,12] ]

聯合

從一個或多個參數中傳回第一個非 Null 值。 空白字串、空白陣列和空白物件不是 null。

coalesce(<object_1>, <object_2>, ...)
參數 為必填項目 類型 說明
< object_1>,<object_2>,... 是的 任何類型,可以是混合類型 要檢查是否有 Null 的一個或多個項目
傳回值 類型 說明
< 第一個非空項目> 任意 第一個不是 Null 的項目或值。 如果所有參數都是 Null,則此函式會傳回 Null。

範例

這些範例會從指定值傳回第一個非 Null 的值,或是,如果所有值都是 Null,則傳回 Null:

coalesce(null, true, false)
coalesce(null, 'hello', 'world')
coalesce(null, null, null)

並傳回下列結果:

  • 第一個範例:true
  • 第二個範例:"hello"
  • 第三個範例:null

concat

結合兩個或多個字串,並傳回合併的字串。

concat('<text1>', '<text2>', ...)
參數 為必填項目 類型 說明
< text1>, <text2>, ... 是的 繩子 至少要有兩個字串來結合
傳回值 類型 說明
< 正文1正文2......> 繩子 從合併輸入字串中建立的字串。



注意:結果的長度不得超過 104,857,600 個字元。

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此當您使用 concat() 函數處理需要編碼或解碼的資料時,您就不須手動執行這些轉換:

  • concat('data:;base64,',<value>)
  • concat('data:,',encodeUriComponent(<value>))

不過,如果您在設計工具中仍然使用此函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 Base64編碼和譯碼

範例

此範例會合併 "Hello" 和 "World" 字串:

concat('Hello', 'World')

並傳回此結果:"HelloWorld"

contains

檢查集合是否具有特定項目。 找到項目時,傳回 True,或找不到項目時,傳回 False。 此函式會區分大小寫。

contains('<collection>', '<value>')
contains([<collection>], '<value>')

具體而言,此函數會用在這些集合類型上:

  • 要尋找「子字串」的「字串」
  • 要尋找「值」的「陣列」
  • 一個用來尋找字典
參數 為必填項目 類型 說明
< 收藏> 是的 字串、陣列或字典 要檢查的集合
< 價值> 是的 分別為字串、陣列或字典 要尋找的項目
傳回值 類型 說明
真或假 布林值 找到項目時,傳回 True。 找不到項目時,傳回 False。

範例 1

此範例會檢查字串 "hello world" 是否有子字串 "world",並傳回 True:

contains('hello world', 'world')

範例 2

此範例會檢查字串 "hello world" 是否有子字串 "universe",並傳回 False:

contains('hello world', 'universe')

convertFromUtc

將時間戳記從國際標準時間 (UTC) 轉換為目標時區。

convertFromUtc('<timestamp>', '<destinationTimeZone>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 目的地時區> 是的 繩子 目標時區的名稱。 如需時區名稱,請檢閱 Microsoft Windows 默認時區
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 轉換後的時間戳記> 繩子 已轉換為目標時區的時間戳記,沒有時區 UTC 位移。

範例 1

此範例會將時間戳記轉換為指定的時區:

convertFromUtc('2018-01-01T08:00:00.0000000Z', 'Pacific Standard Time')

並傳回此結果:"2018-01-01T00:00:00.0000000"

範例 2

此範例會將時間戳記轉換為指定的時區和格式:

convertFromUtc('2018-01-01T08:00:00.0000000Z', 'Pacific Standard Time', 'D')

並傳回此結果:"Monday, January 1, 2018"

轉換時區

將時間戳記從來源時區轉換為目標時區。

convertTimeZone('<timestamp>', '<sourceTimeZone>', '<destinationTimeZone>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 來源時區> 是的 繩子 來源時區的名稱。 如需時區名稱,請參閱 Microsoft Windows 預設時區,但您可能必須從時區名稱中移除任何標點符號。
< 目的地時區> 是的 繩子 目標時區的名稱。 如需時區名稱,請參閱 Microsoft Windows 預設時區,但您可能必須從時區名稱中移除任何標點符號。
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 轉換後的時間戳記> 繩子 轉換為目標時區的時間戳記

範例 1

此範例會將來源時區轉換為目標時區:

convertTimeZone('2018-01-01T08:00:00.0000000Z', 'UTC', 'Pacific Standard Time')

並傳回此結果:"2018-01-01T00:00:00.0000000"

範例 2

此範例會將時區轉換為指定的時區和格式:

convertTimeZone('2018-01-01T80:00:00.0000000Z', 'UTC', 'Pacific Standard Time', 'D')

並傳回此結果:"Monday, January 1, 2018"

convertToUtc

將時間戳記從來源時區轉換為國際標準時間 (UTC)。

convertToUtc('<timestamp>', '<sourceTimeZone>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 來源時區> 是的 繩子 來源時區的名稱。 如需時區名稱,請參閱 Microsoft Windows 預設時區,但您可能必須從時區名稱中移除任何標點符號。
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 轉換後的時間戳記> 繩子 轉換為 UTC 的時間戳記

範例 1

此範例會將時間戳記轉換為 UTC:

convertToUtc('01/01/2018 00:00:00', 'Pacific Standard Time')

並傳回此結果:"2018-01-01T08:00:00.0000000Z"

範例 2

此範例會將時間戳記轉換為 UTC:

convertToUtc('01/01/2018 00:00:00', 'Pacific Standard Time', 'D')

並傳回此結果:"Monday, January 1, 2018"

createArray

傳回一個來自多個輸入的陣列。 如需單一輸入陣列,請參閱 array()

createArray('<object1>', '<object2>', ...)
參數 為必填項目 類型 說明
< object1>, <object2>, ... 是的 任何類型,但不能是混合 至少需要兩個項目來建立陣列
傳回值 類型 說明
[<object1>, <object2>, ...] Array 從所有輸入項目建立的陣列

範例

此範例會從以下輸入建立陣列:

createArray('h', 'e', 'l', 'l', 'o')

並傳回此結果:["h", "e", "l", "l", "o"]

D

dataUri

傳回字串的資料統一資源識別項 (URI)。

dataUri('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換的字串
傳回值 類型 說明
< 資料 uri> 繩子 輸入字串的資料URI

範例

此範例會針對 "hello" 字串建立資料 URI:

dataUri('hello')

並傳回此結果:"data:text/plain;charset=utf-8;base64,aGVsbG8="

dataUriToBinary

傳回資料統一資源識別項 (URI) 的二進位版本。 使用此函式,而不是decodeDataUri()。 雖然這兩個函數的運作方式相同,但是較常使用 dataUriBinary()

dataUriToBinary('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換的資料 URI
傳回值 類型 說明
< 資料URI的二進制> 繩子 資料 URI 的二進位版本

範例

此範例會建立此資料 URI 的二進位版本:

dataUriToBinary('data:text/plain;charset=utf-8;base64,aGVsbG8=')

並傳回此結果:

"01100100011000010111010001100001001110100111010001100101011110000111010000101111011100000 1101100011000010110100101101110001110110110001101101000011000010111001001110011011001010111 0100001111010111010101110100011001100010110100111000001110110110001001100001011100110110010 10011011000110100001011000110000101000111010101100111001101100010010001110011100000111101"

dataUriToString

傳回資料統一資源識別項 (URI) 的字串版本。

dataUriToString('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換的資料 URI
傳回值 類型 說明
< 資料字串> 繩子 資料 URI 的字串版本

範例

此範例會建立此資料 URI 的字串:

dataUriToString('data:text/plain;charset=utf-8;base64,aGVsbG8=')

並傳回此結果:"hello"

日期差異

以時間戳記傳回兩個日期之間的差異。 此函式會從 startDate 減去 endDate,並以字串格式傳回時間戳記結果。

dateDifference('<startDate>', '<endDate>')
參數 為必填項目 類型 說明
< 開始日期> 是的 繩子 包含時間戳記的字串
< 結束日期> 是的 繩子 包含時間戳記的字串
傳回值 類型 說明
< 時間跨度> 繩子 兩個時間戳記之間的差異,此為使用字串格式的時間戳記。 如果 startDateendDate 更接近現在,則結果為負值。

範例

此範例會從第二個值減去第一個值:

dateDifference('2015-02-08', '2018-07-30')

並傳回此結果:"1268.00:00:00"

dayOfMonth

傳回時間戳記中的當月日期。

dayOfMonth('<timestamp>')
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
傳回值 類型 說明
< 月份中的某天> 整數 在指定時間戳記中的當月日期

範例

此範例會傳回此時間戳記中的當月日期數字:

dayOfMonth('2018-03-15T13:27:36Z')

並傳回此結果:15

dayOfWeek

從時間戳記傳回當週的第幾天。

dayOfWeek('<timestamp>')
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
傳回值 類型 說明
< 一周中的一天> 整數 在指定時間戳記上那一週的第幾天,其中星期日是 0、星期一是 1,依此類推

範例

此範例會從此時間戳記傳回當週的第幾天:

dayOfWeek('2018-03-15T13:27:36Z')

並傳回此結果:4

dayOfYear

從時間戳記傳回一年的第幾天。

dayOfYear('<timestamp>')
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
傳回值 類型 說明
< 一年中的一天> 整數 在指定時間戳記上那一年的第幾天

範例

此範例會從此時間戳記傳回一年的第幾天:

dayOfYear('2018-03-15T13:27:36Z')

並傳回此結果:74

十進位

以十進位數傳回字串中的十進位數。 當您使用需要小數精確度的數據,以及做為 邏輯比較函 式和 數學函式的輸入時,可以使用此函式。 若要在使用 decimal() 函式的結果時擷取並維持精度,請使用 string 函式包裹任何十進位輸出。 下列範例顯示此使用方式,當您以數字形式使用十進位結果時,可能會遺失有效位數。

備註

此函式和 Azure Logic Apps 執行時間的內容中所討論的十進位精度與 .NET 的十進位精度相同。

decimal('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 字串中的十進位數
傳回值 類型 說明
< 十進位的> 十進位數 輸入字串的十進位數

範例 1

此範例會建立用做數字的十進位:

decimal('1.2345678912312131') // Returns 1.234567891231213.

範例 2

此範例會建立十進位,然後將結果轉換為字串以進行有效位數保留:

string(decimal('1.2345678912312131')) // Returns "1.2345678912312131".

範例 3

此範例會在兩個十進位數上使用數學函數,並使用結果做為數字:

add(decimal('1.2345678912312131'), decimal('1.2345678912312131')) // Returns 2.469135782462426.

範例 4

此範例會在兩個十進位數上使用數學函數,並將結果轉換為字串以進行有效位數保留:

string(add(decimal('1.2345678912312131'), decimal('1.2345678912312131'))) // Returns "2.4691357824624262".

decodeBase64 (取代)

此函式已被取代,因此請改用base64ToString()。

decodeDataUri

傳回資料統一資源識別項 (URI) 的二進位版本。 請考慮使用 dataUriToBinary(),而非 decodeDataUri()。 雖然這兩個函數的運作方式相同,但是較常使用 dataUriToBinary()

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用編碼或解碼函數來手動執行這些轉換。 不過,如果您在設計工具中仍然使用這些函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 Base64編碼和譯碼

decodeDataUri('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要解碼的資料 URI 字串
傳回值 類型 說明
< 資料URI的二進制> 繩子 資料 URI 字串的二進位版本

範例

此範例會傳回此資料 URI 的二進位版本:

decodeDataUri('data:text/plain;charset=utf-8;base64,aGVsbG8=')

並傳回此結果:"hello"

decodeUriComponent(解碼URI元件)

傳回以已解碼版本取代逸出字元的字串。

decodeUriComponent('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 其逸出字元需要解碼的字串
傳回值 類型 說明
< 解碼 uri> 繩子 更新後的字串,其中跳脫字元已被解碼

範例

此範例會以已解碼的版本取代此字串中的逸出字元:

decodeUriComponent('https%3A%2F%2Fcontoso.com')

並傳回此結果:"https://contoso.com"

div

傳回兩個數字相除的結果。 若要取得餘數結果,請參閱 mod()

div(<dividend>, <divisor>)
參數 為必填項目 類型 說明
< 股利> 是的 整數或浮點數 要除以「除數」的數字
< 除數> 是的 整數或浮點數 要除「被除數」的數字,但不能為零
傳回值 類型 說明
< 商結果> 整數或浮點數 第一個數字除以第二個數字的結果。 如果被除數或除數具有浮點數類型,結果就會有浮點數類型。



注意:若要將 float 結果轉換成整數,請嘗試從邏輯應用程式 在 Azure 中建立和呼叫函式

範例 1

這兩個範例都會傳回具有整數類型的此值:2

div(10,5)
div(11,5)

範例 2

這兩個範例都會傳回具有浮點數類型的此值:2.2

div(11,5.0)
div(11.0,5)

E

encodeUriComponent

傳回字串的統一資源識別碼 (URI) 編碼版本,將 URL 不安全的字元替換成逸出字元。 請考慮使用 uriComponent(),而非 encodeUriComponent()。 雖然這兩個函數的運作方式相同,但是較常使用 uriComponent()

備註

Azure Logic Apps 會自動或隱含地執行 base64 編碼或解碼,因此您不需要使用編碼或解碼函數來手動執行這些轉換。 不過,如果您在設計工具中仍然使用這些函數,您可能會在設計工具中遇到非預期的轉譯行為。 除非您編輯函數的參數值 (這會從程式碼中移除函數及其效果),否則這些行為只會影響函數的可見度,而不會影響其效果。 如需詳細資訊,請參閱 Base64編碼和譯碼

encodeUriComponent('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換成 URI 編碼格式的字串
傳回值 類型 說明
< 編碼 URI> 繩子 具有逸出字元的 URI 編碼字串

範例

此範例會建立此字串的 URI 編碼版本:

encodeUriComponent('https://contoso.com')

並傳回此結果:"https%3A%2F%2Fcontoso.com"

empty

檢查集合是否是空的。 集合若是空的,傳回 True,或集合若不是空的,則傳回 False。

empty('<collection>')
empty([<collection>])
參數 為必填項目 類型 說明
< 收藏> 是的 字串、陣列或物件 要檢查的集合
傳回值 類型 說明
真或假 布林值 若集合是空的,傳回 True。 若不是空的,傳回 False。

範例

這些範例會檢查指定的集合是否是空的:

empty('')
empty('abc')

並傳回下列結果:

  • 第一個範例:傳遞空字串,所以函數傳回 true
  • 第二個範例:傳遞 "abc" 字串,所以函數傳回 false

endsWith

檢查字串是否以特定的子字串結束。 找到子字串時,傳回 True,或找不到子字串時,傳回 False。 此函式不會區分大小寫。

endsWith('<text>', '<searchText>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 要檢查的字串
< 搜尋文字> 是的 繩子 要尋找的結尾子字串
傳回值 類型 說明
真或假 布林值 找到結尾子字串時,傳回 True。 找不到項目時,傳回 False。

範例 1

此範例會檢查 "hello world" 字串是否以 "world" 字串結尾:

endsWith('hello world', 'world')

並傳回此結果:true

範例 2

此範例會檢查 "hello world" 字串是否以 "universe" 字串結尾:

endsWith('hello world', 'universe')

並傳回此結果:false

equals

檢查兩個值、運算式或物件是否相等。 兩個項目相等時,傳回 True,或兩個項目不相等時,傳回 False。

equals('<object1>', '<object2>')
參數 為必填項目 類型 說明
< object1>, <object2> 是的 各種類型 要比較的值、運算式或物件
傳回值 類型 說明
真或假 布林值 當兩個項目相等時,傳回 True。 當兩個項目不相等時,傳回 False。

範例

這些範例會檢查指定的輸入是否相等。

equals(true, 1)
equals('abc', 'abcd')

並傳回下列結果:

  • 第一個範例:兩個值相等,所以函數傳回 true
  • 第二個範例:兩個值不相等,所以函式傳回 false

F

first

傳回字串或陣列中的第一個項目。

first('<collection>')
first([<collection>])
參數 為必填項目 類型 說明
< 收藏> 是的 字串或陣列 要從中尋找第一個項目的集合
傳回值 類型 說明
< 第一個集合項目> 任意 集合中的第一個項目

範例

這些範例會尋找以下集合中第一個項目:

first('hello')
first(createArray(0, 1, 2))

並傳回下列結果:

  • 第一個範例:"h"
  • 第二個範例:0

float

將浮點數的字串版本轉換為實際浮點數。 只有在將自訂參數傳遞給應用程式時,例如邏輯應用程式工作流程或 Power Automate 流程,您才可以使用此函式。 若要轉換以地區設定特定格式表示的浮點字串,您可以選擇性地指定 RFC 4646 地區設定程式碼。

float('<value>', '<locale>'?)
參數 為必填項目 類型 說明
< 價值> 是的 繩子 具有要轉換有效浮點數的字串。 最小值和最大值與浮點數資料類型的限制相同。
< 區域設定> 繩子 要使用的 RFC 4646 地區設定程式碼。

如果未指定,系統會使用預設地區。

如果 地區設定 不是有效的值,就會產生錯誤,指出所提供的地區設定無效或沒有相關聯的地區設定。
傳回值 類型 說明
< 浮點值> 浮動 所指定字串的浮點數。 最小值和最大值與浮點數資料類型的限制相同。

範例 1

此範例會建立此浮點數的字串版本:

float('10,000.333')

並傳回此結果:10000.333

範例 2

此範例會建立此德文樣式浮點數的字串版本:

float('10.000,333', 'de-DE')

並傳回此結果:10000.333

範例 3

非預期有效輸入的範例:

float('12,3,4,5678')  //Returns   12345678
float('1234567,8+')   //Returns   12345678
float('12345,6,78,-') //Returns  -12345678
float('-12,345,678,') //Returns  -12345678
float('12345678.-')   //Returns  -12345678
float('.12345678')    //Returns 0.12345678

formatDateTime

傳回指定格式的時間戳記。

formatDateTime('<timestamp>', '<format>'?, '<locale>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。
< 區域設定> 繩子 要使用的地區設定。 如果未指定,則值為 en-us。 如果 地區設定 不是有效的值,就會產生錯誤。
傳回值 類型 說明
< 重新格式化的時間戳> 繩子 如果指定,則為指定格式和地區設定的更新時間戳記。

範例

formatDateTime('03/15/2018') // Returns '2018-03-15T00:00:00.0000000'.
formatDateTime('03/15/2018 12:00:00', 'yyyy-MM-ddTHH:mm:ss') // Returns '2018-03-15T12:00:00'.
formatDateTime('01/31/2016', 'dddd MMMM d') // Returns 'Sunday January 31'.
formatDateTime('01/31/2016', 'dddd MMMM d', 'fr-fr') // Returns 'dimanche janvier 31'.
formatDateTime('01/31/2016', 'dddd MMMM d', 'fr-FR') // Returns 'dimanche janvier 31'.
formatDateTime('01/31/2016', 'dddd MMMM d', 'es-es') // Returns 'domingo enero 31'.

formDataMultiValues

傳回一個陣列,其中的值符合在動作的 表單資料表單編碼 輸出中的索引鍵名稱。

formDataMultiValues('<actionName>', '<key>')
參數 為必填項目 類型 說明
< 動作名稱> 是的 繩子 其輸出中有您所需索引鍵值的動作
< 鑰匙> 是的 繩子 您需要其值的索引鍵名稱
傳回值 類型 說明
[<具有鍵值的陣列>] Array 此陣列具有符合指定索引鍵的所有值

範例

此範例會從「主旨」索引鍵的值建立陣列,而索引鍵值位於指定動作的表單資料或表單編碼輸出中:

formDataMultiValues('Send_an_email', 'Subject')

然後傳回陣列中的主旨文字,例如:["Hello world"]

formDataValue

傳回符合動作 表單資料表單碼 輸出中索引鍵名稱的單一值。 如果函式找到一個以上的相符項目,函式會擲回錯誤。

formDataValue('<actionName>', '<key>')
參數 為必填項目 類型 說明
< 動作名稱> 是的 繩子 其輸出中有您所需索引鍵值的動作
< 鑰匙> 是的 繩子 您需要其值的索引鍵名稱
傳回值 類型 說明
< key-value(鍵值)> 繩子 所指定索引鍵中的值

範例

此範例會從「主旨」索引鍵的值建立字串,而索引鍵值位於指定動作的表單資料或表單編碼輸出中:

formDataValue('Send_an_email', 'Subject')

然後以字串形式傳回主旨文字,例如:"Hello world"

formatNumber

根據指定的格式以字串形式傳回數字。

formatNumber(<number>, <format>, <locale>?)
參數 為必填項目 類型 說明
< 數字> 是的 整數或雙精度浮點數 您想要格式化的值。
< 格式> 是的 繩子 複合格式字串,可指定您要使用的格式。 如需支持的數值格式字串,請參閱 標準數值格式字串,這些字串受到 number.ToString(<format>, <locale>)支援。
< 區域設定> 繩子 使用 number.ToString(<format>, <locale>) 支援的地區設定。 如果未指定,則值為 en-us。 如果 地區設定 不是有效的值,就會產生錯誤。
傳回值 類型 說明
< 格式化數字> 繩子 指定的數字依您指定的格式而呈現的字串。 您可以將此傳回值轉換成 intfloat

範例 1

假設您想要格式化數字 1234567890。 此範例將該數字格式化為字串 "1,234,567,890.00"。

formatNumber(1234567890, '#,##0.00', 'en-US')

範例 2

假設您想要格式化數字 1234567890。 此範例將該數字格式化為字串 "1.234.567.890,00"。

formatNumber(1234567890, '#,##0.00', 'is-IS')

範例 3

假設您想要格式化數字 17.35。 此範例將該數字格式化為字串 "$17.35"。

formatNumber(17.35, 'C2')

範例 4

假設您想要格式化數字 17.35。 此範例將該數字格式化為字串 "17,35 kr"。

formatNumber(17.35, 'C2', 'is-IS')

G

getFutureTime

傳回目前時間戳記加上指定時間單位的結果。

getFutureTime(<interval>, <timeUnit>, <format>?)
參數 為必填項目 類型 說明
< 間隔> 是的 整數 要新增的時間單位數
< 時間單位> 是的 繩子 interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
< 格式> 繩子 單一格式規範自訂格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤,指出所提供的格式無效,而且必須是數值格式字串。
傳回值 類型 說明
< 更新時間戳記> 繩子 目前時間戳記加上指定的時間單位數字

範例 1

假設目前的時間戳記是 "2018-03-01T00:00:00.0000000Z"。 此範例會在時間戳記中加上 5 天:

getFutureTime(5, 'Day')

並傳回此結果:"2018-03-06T00:00:00.0000000Z"

範例 2

假設目前的時間戳記是 "2018-03-01T00:00:00.0000000Z"。 此範例會加上五天,並將結果轉換為 "D" 格式:

getFutureTime(5, 'Day', 'D')

並傳回此結果:"Tuesday, March 6, 2018"

getPastTime

傳回目前時間戳記減去指定時間單位的結果。

getPastTime(<interval>, <timeUnit>, <format>?)
參數 為必填項目 類型 說明
< 間隔> 是的 整數 要減去的指定時間單位數字
< 時間單位> 是的 繩子 interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
< 格式> 繩子 單一格式規範自訂格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤,指出所提供的格式無效,而且必須是數值格式字串。
傳回值 類型 說明
< 更新時間戳記> 繩子 目前時間戳記減去指定的時間單位數字

範例 1

假設目前的時間戳記是 "2018-02-01T00:00:00.0000000Z"。 此範例會從此時間戳記中減去五天:

getPastTime(5, 'Day')

並傳回此結果:"2018-01-27T00:00:00.0000000Z"

範例 2

假設目前的時間戳記是 "2018-02-01T00:00:00.0000000Z"。 此範例會減去五天,並將結果轉換為 "D" 格式:

getPastTime(5, 'Day', 'D')

並傳回此結果:"Saturday, January 27, 2018"

greater

檢查第一個值是否大於第二個值。 當第一個值比較大時,傳回 True,或當第一個值比較小時,傳回 False。

greater(<value>, <compareTo>)
greater('<value>', '<compareTo>')
參數 為必填項目 類型 說明
< 價值> 是的 整數、浮點數或字串 要檢查其是否大於第二個值的第一個值
< 比較至> 是的 個別的整數、浮點數或字串 比較值
傳回值 類型 說明
真或假 布林值 當第一個值大於第二個值時,傳回 True。 當第一個值等於或小於第二個值時,傳回 False。

範例

以下範例會檢查第一個值是否大於第二個值:

greater(10, 5)
greater('apple', 'banana')

並傳回下列結果:

  • 第一個範例:true
  • 第二個範例:false

greaterOrEquals

檢查第一個值是否大於或等於第二個值。 當第一個值較大或相等時,傳回 True,或當第一個值較小時,傳回 False。

greaterOrEquals(<value>, <compareTo>)
greaterOrEquals('<value>', '<compareTo>')
參數 為必填項目 類型 說明
< 價值> 是的 整數、浮點數或字串 要檢查其是否大於或等於第二個值的第一個值
< 比較至> 是的 個別的整數、浮點數或字串 比較值
傳回值 類型 說明
真或假 布林值 當第一個值大於或等於第二個值時,傳回 True。 當第一個值小於第二個值時,傳回 False。

範例

以下範例會檢查第一個值是否大於或等於第二個值:

greaterOrEquals(5, 5)
greaterOrEquals('apple', 'banana')

並傳回下列結果:

  • 第一個範例:true
  • 第二個範例:false

guid

以字串形式產生唯一識別碼 (GUID),例如 "c2ecc88d-88c8-4096-912c-d6f2e2b138ce":

guid()

此外,除了預設格式 "D" (以連字號分隔的 32 個數字),您可以指定不同格式的 GUID。

guid('<format>')
參數 為必填項目 類型 說明
< 格式> 繩子 針對所傳回的 GUID 的單一格式指定項。 預設格式為 "D",但您可以使用 "N"、"D"、"B"、"P" 或 "X"。
傳回值 類型 說明
< GUID 值> 繩子 隨機產生的 GUID

範例

此範例會產生相同 GUID,不過格式是 32 個以連字號分隔的數字,並以括號括住:

guid('P')

並傳回此結果:"(c2ecc88d-88c8-4096-912c-d6f2e2b138ce)"

I

if

檢查表達式是正確或錯誤。 根據結果,傳回指定的值。 參數由左至右來評估。

if(<expression>, <valueIfTrue>, <valueIfFalse>)
參數 為必填項目 類型 說明
< 運算式> 是的 布林值 要檢查的運算式
< valueIfTrue> 是的 任意 運算式為 True 時要傳回的值
< valueIfFalse> 是的 任意 運算式為 False 時要傳回的值
傳回值 類型 說明
< 指定的返回值> 任意 根據運算式為 True 或 False,傳回的指定值

範例

此範例會傳回 "yes",因為指定的運算式傳回 True。 否則,此範例會傳回 "no"

if(equals(1, 1), 'yes', 'no')

indexOf

傳回子字串的起始位置或索引值。 此函式不區分大小寫,而且索引以數字 0 開頭。

indexOf('<text>', '<searchText>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 具有子字串要尋找的字串
< 搜尋文字> 是的 繩子 要尋找的子字串
傳回值 類型 說明
< 索引值> 整數 所指定子字串的起始位置或索引值。

如果找不到該字串,傳回數字 -1。

範例

此範例會在 "hello world" 字串中,尋找 "world" 子字串的起始索引值:

indexOf('hello world', 'world')

並傳回此結果:6

整數 (int)

將整數的字串版本轉換為實際的整數編號。

int('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換之整數的字串版本。 最小值和最大值與整數資料類型的限制相同。
傳回值 類型 說明
< 整數結果> 整數 所指定字串的整數版本。 最小值和最大值與整數資料類型的限制相同。

範例

此範例會建立字串 "10" 的整數版本:

int('10')

並傳回此結果:10

isFloat

傳回指出字串是否為浮點數的布林值。 依預設,此函式會使用的浮點格式不因文化特性而異。 若要識別以其他地區設定特定格式表示的浮點數,您可以選擇性地指定 RFC 4646 地區設定程式碼。

isFloat('<string>', '<locale>'?)
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要檢查的字串
< 區域設定> 繩子 要使用的 RFC 4646 地區設定程式碼
傳回值 類型 說明
< 布林值結果> 布林值 指出字串是否為浮點數的布林值。

範例 1

本範例會檢查字串是否為不因文化特性而異的浮點數:

isFloat('10,000.00')

並傳回此結果:true

範例 2

本範例會檢查字串是否為德文地區設定中的浮點數:

isFloat('10.000,00', 'de-DE')

並傳回此結果:true

isInt

傳回指出字串是否為整數的布林值。

isInt('<string>')
參數 為必填項目 類型 說明
< 字串> 是的 繩子 要檢查的字串
傳回值 類型 說明
< 布林值結果> 布林值 指出字串是否為整數的布林值

範例

此範例會檢查字串是否為整數:

isInt('10')

並傳回此結果:true

項目

若用於透過陣列進行的重複動作中,則會傳回動作進行目前反覆項目期間,目前在陣列中的項目。 您也可以從該項目的屬性取得這些值。

item()
傳回值 類型 說明
< 目前陣列項目> 任意 進行動作的目前反覆項目時,目前存在陣列中的項目

範例

此範例會從目前的 "Send_an_email" 動作訊息取得 body 元素,該動作在 for-each 迴圈的目前反覆項目中:

item().body

項目

從 for-each 迴圈中的每個循環傳回目前項目。 在 for each 迴圈內使用此函式。

items('<loopName>')
參數 為必填項目 類型 說明
< 迴圈名稱> 是的 繩子 for-each 迴圈名稱
傳回值 類型 說明
< 項目> 任意 來自所指定 for each 迴圈中目前循環的項目

範例

此範例會從指定 for each 迴圈中取得目前項目:

items('myForEachLoopName')

iterationIndexes

傳回 Until 迴圈內目前反覆運算的索引值。 您可以在巢狀 Until 迴圈內使用這個函式。

iterationIndexes('<loopName>')
參數 為必填項目 類型 說明
< 迴圈名稱> 是的 繩子 Until 迴圈的名稱
傳回值 類型 說明
< 指數> 整數 指定的 Until 迴圈內目前反覆運算的索引值

範例

此範例建立計數器變數,並在 Until 迴圈中的每次反覆運算期間,將該變數遞增 1,直到計數器值達到 5 為止。 此範例也建立變數來追蹤每次反覆運算的目前索引。 在 Until 迴圈中的每次反覆運算期間,此範例會遞增計數器值,然後將計數器值指派給目前的索引值,然後遞增計數器值。 在迴圈中,此範例使用 iterationIndexes 函式來參考目前的反覆運算索引:

iterationIndexes('Until_Max_Increment')

{
   "actions": {
      "Create_counter_variable": {
         "type": "InitializeVariable",
         "inputs": {
            "variables": [ 
               {
                  "name": "myCounter",
                  "type": "Integer",
                  "value": 0
               }
            ]
         },
         "runAfter": {}
      },
      "Create_current_index_variable": {
         "type": "InitializeVariable",
         "inputs": {
            "variables": [
               {
                  "name": "myCurrentLoopIndex",
                  "type": "Integer",
                  "value": 0
               }
            ]
         },
         "runAfter": {
            "Create_counter_variable": [ "Succeeded" ]
         }
      },
      "Until_Max_Increment": {
         "type": "Until",
         "actions": {
            "Assign_current_index_to_counter": {
               "type": "SetVariable",
               "inputs": {
                  "name": "myCurrentLoopIndex",
                  "value": "@variables('myCounter')"
               },
               "runAfter": {
                  "Increment_variable": [ "Succeeded" ]
               }
            },
            "Compose": {
               "inputs": "'Current index: ' @{iterationIndexes('Until_Max_Increment')}",
               "runAfter": {
                  "Assign_current_index_to_counter": [
                     "Succeeded"
                    ]
                },
                "type": "Compose"
            },           
            "Increment_variable": {
               "type": "IncrementVariable",
               "inputs": {
                  "name": "myCounter",
                  "value": 1
               },
               "runAfter": {}
            }
         },
         "expression": "@equals(variables('myCounter'), 5)",
         "limit": {
            "count": 60,
            "timeout": "PT1H"
         },
         "runAfter": {
            "Create_current_index_variable": [ "Succeeded" ]
         }
      }
   }
}

J

json

傳回字串或 XML 的 JavaScript 物件標記法 (JSON) 類型值、物件或物件陣列。

json('<value>')
json(xml('value'))

這很重要

如果沒有定義輸出結構的 XML 結構描述,函數可能會視輸入而定,傳回結構與預期格式大不相同的結果。

此行為讓此函數不適用於以下情節:例如,在重要的商務系統或解決方案中,輸出必須符合定義完善的合約。

參數 為必填項目 類型 說明
< 價值> 是的 字串或 XML 要轉換的字串或 XML
傳回值 類型 說明
< JSON 結果> JSON 原生類型、物件或陣列 輸入字串或 XML 中的 JSON 原生類型值、物件或物件陣列。



- 如果您在根項目中傳入具有單一子項目的 XML,函數會傳回該子項目的單一 JSON 物件。

- 如果您在根項目中傳入具有多個子項目的 XML,函數會為那些子項目傳回包含 JSON 物件的陣列。

- 如果字串為 Null,函數會傳回空物件。

範例 1

此範例會將此字串轉換為 JSON 值:

json('[1, 2, 3]')

並傳回此結果:[1, 2, 3]

範例 2

此範例會將此字串轉換為 JSON:

json('{"fullName": "Sophia Owen"}')

並傳回此結果:

{
  "fullName": "Sophia Owen"
}

範例 3

此範例會使用 json()xml() 函數,將根項目中具有單一子項目的 XML 轉換成針對該子項目命名為 person 的 JSON 物件:

json(xml('<?xml version="1.0"?> <root> <person id="1"> <name>Sophia Owen</name> <occupation>Engineer</occupation> </person> </root>'))

並傳回此結果:

{
   "?xml": { 
      "@version": "1.0" 
   },
   "root": {
      "person": {
         "@id": "1",
         "name": "Sophia Owen",
         "occupation": "Engineer"
      }
   }
}

範例 4

此範例會使用 json()xml() 函數,將根項目中具有多個子項目的 XML 轉換成名為 person 的陣列,該陣列包含那些子項目的 JSON 物件:

json(xml('<?xml version="1.0"?> <root> <person id="1"> <name>Sophia Owen</name> <occupation>Engineer</occupation> </person> <person id="2"> <name>John Doe</name> <occupation>Engineer</occupation> </person> </root>'))

並傳回此結果:

{
   "?xml": {
      "@version": "1.0"
   },
   "root": {
      "person": [
         {
            "@id": "1",
            "name": "Sophia Owen",
            "occupation": "Engineer"
         },
         {
            "@id": "2",
            "name": "John Doe",
            "occupation": "Engineer"
         }
      ]
   }
}

交集

傳回僅包含指定集合中共同項目的集合。 項目若要出現在結果中,必須出現在所有傳遞至此函式的集合中。 如果一個或多個項目有相同的名稱,則具有該名稱的最後一個項目會出現在結果中。

intersection([<collection1>], [<collection2>], ...)
intersection('<collection1>', '<collection2>', ...)
參數 為必填項目 類型 說明
< collection1>, <collection2>, ... 是的 陣列或物件,但不可以兩者並存 您想要其中「只有」共同項目的集合
傳回值 類型 說明
< 常見項目> 個別的陣列或物件 在指定的多個集合中,「只有」共同項目的集合

範例

此範例會從以下陣列中找出共同項目:

intersection(createArray(1, 2, 3), createArray(101, 2, 1, 10), createArray(6, 8, 1, 2))

傳回僅包含這些項目的陣列:

加入

傳回具有陣列中所有項目的字串,並以「分隔符號」將每個字元隔開。

join([<collection>], '<delimiter>')
參數 為必填項目 類型 說明
< 收藏> 是的 Array 包含要聯結項目的陣列
< 定界符> 是的 繩子 分隔符號會出現在結果字串的每個字元之間。
傳回值 類型 說明
< char1><定界符><char2><定界符>... 繩子 從指定陣列中所有項目建立的結果字串。



注意:結果的長度不得超過 104,857,600 個字元。

範例

此範例會從此陣列中所有項目建立字串,並以指定字元作為分隔符號:

join(createArray('a', 'b', 'c'), '.')

並傳回此結果:"a.b.c"

L

last

傳回集合中的最後一個項目。

last('<collection>')
last([<collection>])
參數 為必填項目 類型 說明
< 收藏> 是的 字串或陣列 要從中尋找最後一個項目的集合
傳回值 類型 說明
< 最後一個收集項目> 分別為字串或陣列 集合中的最後一個項目

範例

這些範例會尋找以下集合中最後一個項目:

last('abcd')
last(createArray(0, 1, 2, 3))

並傳回下列結果:

  • 第一個範例:"d"
  • 第二個範例:3

lastIndexOf

傳回子字串最後一次出現的起始位置或索引值。 此函式不區分大小寫,而且索引以數字 0 開頭。

lastIndexOf('<text>', '<searchText>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 具有子字串要尋找的字串
< 搜尋文字> 是的 繩子 要尋找的子字串
傳回值 類型 說明
< 結束索引值> 整數 指定的子字串最後一次出現的起始位置或索引值。

如果字串或子字串值是空的,就會發生下列行為:

  • 如果只有字串值是空的,函數會傳回 -1

  • 如果字串和子字串值都是空的,函數會傳回 0

  • 如果只有子字串值是空的,函數會傳回字串長度減 1。

範例

此範例會在字串 world 中,尋找子字串 hello world hello world 最後一次出現的起始索引值。 傳回的結果為 18

lastIndexOf('hello world hello world', 'world')

這個範例遺漏子字串參數,並傳回 22 值,因為輸入字串的值 (23) 減 1 大於 0。

lastIndexOf('hello world hello world', '')

長度

傳回集合中的項目數目。

length('<collection>')
length([<collection>])
參數 為必填項目 類型 說明
< 收藏> 是的 字串或陣列 要計算其項目數的集合
傳回值 類型 說明
< 長度或數量> 整數 集合中的項目數目

範例

這些範例會計算以下集合中的項目數:

length('abcd')
length(createArray(0, 1, 2, 3))

並傳回此結果:4

less

檢查第一個值是否小於第二個值。 當第一個值較小時,傳回 True,或當第一個值較大時,傳回 False。

less(<value>, <compareTo>)
less('<value>', '<compareTo>')
參數 為必填項目 類型 說明
< 價值> 是的 整數、浮點數或字串 要檢查其是否小於第二個值的第一個值
< 比較至> 是的 個別的整數、浮點數或字串 比較項目
傳回值 類型 說明
真或假 布林值 當第一個值小於第二個值時,傳回 True。 當第一個值等於或大於第二個值時,傳回 False。

範例

以下範例會檢查第一個值是否小於第二個值。

less(5, 10)
less('banana', 'apple')

並傳回下列結果:

  • 第一個範例:true
  • 第二個範例:false

lessOrEquals

檢查第一個值是否小於或等於第二個值。 當第一個值較小或相等時,傳回 True,或當第一個值較大時,傳回 False。

lessOrEquals(<value>, <compareTo>)
lessOrEquals('<value>', '<compareTo>')
參數 為必填項目 類型 說明
< 價值> 是的 整數、浮點數或字串 要檢查其是否小於或等於第二個值的第一個值
< 比較至> 是的 個別的整數、浮點數或字串 比較項目
傳回值 類型 說明
真或假 布林值 當第一個值小於或等於第二個值時,傳回 True。 當第一個值大於第二個值時,傳回 False。

範例

以下範例會檢查第一個值是否小於或等於第二個值。

lessOrEquals(10, 10)
lessOrEquals('apply', 'apple')

並傳回下列結果:

  • 第一個範例:true
  • 第二個範例:false

listCallbackUrl

傳回呼叫觸發程序或動作的「回呼 URL」。 此函式僅適用於 HttpWebhookApiConnectionWebhook 連接器類型的觸發程式和動作,但不適用於 手動週期HTTPAPIConnection 類型。

listCallbackUrl()
傳回值 類型 說明
< 回呼網址> 繩子 觸發程序或動作的回呼 URL

範例

此範例會顯示此函數可能會傳回的回呼 URL 範例:

"https://prod-01.westus.logic.azure.com:443/workflows/<*workflow-ID*>/triggers/manual/run?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<*signature-ID*>"

M

max

從具有數字的清單或陣列中傳回最大值 (包含首尾兩端的值)。

max(<number1>, <number2>, ...)
max([<number1>, <number2>, ...])
參數 為必填項目 類型 說明
< number1>、 <number2>、... 是的 整數、浮點數或兩者並存 您需要其中最大值的數字集合
[<number1>, <number2>, ...] 是的 陣列 - 整數、浮點數或兩者並存 您需要其中最大值的數字陣列
傳回值 類型 說明
< 最大值> 整數或浮點數 所指定陣列或數字集合中的最大值

範例

這些範例會從數字集合和陣列中取得最大值:

max(1, 2, 3)
max(createArray(1, 2, 3))

並傳回此結果:3

Min

從數字集合或陣列中傳回最小值。

min(<number1>, <number2>, ...)
min([<number1>, <number2>, ...])
參數 為必填項目 類型 說明
< number1>、 <number2>、... 是的 整數、浮點數或兩者並存 您需要其中最小值的數字集合
[<number1>, <number2>, ...] 是的 陣列 - 整數、浮點數或兩者並存 您需要其中最小值的數字陣列
傳回值 類型 說明
< 最小值> 整數或浮點數 所指定數字集合或陣列中的最小值

範例

這些範例會取得數字集合和陣列中的最小值:

min(1, 2, 3)
min(createArray(1, 2, 3))

並傳回此結果:1

mod

傳回兩數相除的餘數。 若要取得整數結果,請參閱 div()

mod(<dividend>, <divisor>)
參數 為必填項目 類型 說明
< 股利> 是的 整數或浮點數 要除以「除數」的數字
< 除數> 是的 整數或浮點數 要除「被除數」的數字,但不能為零
傳回值 類型 說明
< 模結果> 整數或浮點數 第一個數字除以第二個數字的餘數

範例 1

此範例會將第一個數字除以第二個數字:

mod(3, 2)

並傳回此結果:1

範例 2

這個範例顯示,如果一或兩個值都是負數,則結果會符合被除數的正負號:

mod(-5, 2)
mod(4, -3)

該範例會傳回這些結果:

  • 第一個範例:-1
  • 第二個範例:1

mul

傳回兩數相乘的結果。

mul(<multiplicand1>, <multiplicand2>)
參數 為必填項目 類型 說明
< 乘法1> 是的 整數或浮點數 要與「被乘數 2」 相乘的數字
< 乘法2> 是的 整數或浮點數 要與「被乘數 1」 相乘的數字
傳回值 類型 說明
< 產品結果> 整數或浮點數 第一個數字與第二個數字相乘的乘積

範例

這些範例會將第一個數字與第二個數字相乘:

mul(1, 2)
mul(1.5, 2)

並傳回下列結果:

  • 第一個範例:2
  • 第二個範例:3

multipartBody

在具有多個部分的動作輸出中,傳回特定部分的內容。

multipartBody('<actionName>', <index>)
參數 為必填項目 類型 說明
< 動作名稱> 是的 繩子 其輸出具有多個部分的動作名稱
< 指數> 是的 整數 所需部分的索引值
傳回值 類型 說明
< 身體> 繩子 所指定部分的內容

N

不是

檢查運算式是否為假。 運算式為 False 時,傳回 True,或運算式為 True 時,傳回 False。

not(<expression>)
參數 為必填項目 類型 說明
< 運算式> 是的 布林值 要檢查的運算式
傳回值 類型 說明
真或假 布林值 運算式為 False 時,傳回 True。 運算式為 True 時,傳回 False。

範例 1

這些範例會檢查指定的運算式是否為虛假。

not(false)
not(true)

並傳回下列結果:

  • 第一個範例:運算式為 False,所以函數傳回 true
  • 第一個範例:運算式為 True,所以函數傳回 false

範例 2

這些範例會檢查指定的運算式是否為虛假。

not(equals(1, 2))
not(equals(1, 1))

並傳回下列結果:

  • 第一個範例:運算式為 False,所以函數傳回 true
  • 第一個範例:運算式為 True,所以函數傳回 false

nthIndexOf

返回字串中子字串第 n 次出現的起始位置或索引值。

nthIndexOf('<text>', '<searchText>', <occurrence>)
參數 為必填項目 類型 說明
< 文字> 是的 繩子 包含要尋找之子字串的字串
< 搜尋文字> 是的 繩子 要尋找的子字串
< 事件> 是的 整數 數位,指定要尋找之子字串的第 n個出現次數。 如果 出現是負數 ,請從結尾開始搜尋。
傳回值 類型 說明
< 索引值> 整數 n次出現指定子字串的起始位置或索引值。 如果找不到子字串或少於 n 個出現的子字串存在,則傳回 -1

範例

nthIndexOf('123456789123465789', '1', 1) // Returns `0`.
nthIndexOf('123456789123465789', '1', 2) // Returns `9`.
nthIndexOf('123456789123465789', '12', 2) // Returns `9`.
nthIndexOf('123456789123465789', '6', 4) // Returns `-1`.

O

檢查是否至少有一個運算式是 True。 至少有一個運算式是 True 時,傳回 True,或所有運算式都是 False 時,傳回 False。

or(<expression1>, <expression2>, ...)
參數 為必填項目 類型 說明
< expression1>, <expression2>, ... 是的 布林值 要檢查的表達式
傳回值 類型 說明
真或假 布林值 當至少有一個表達式為 true 時,返回 true。 所有運算式都是 False 時,即傳回 False。

範例 1

這些範例會檢查是否至少有一個表達式為真:

or(true, false)
or(false, false)

並傳回下列結果:

  • 第一個範例:至少有一個運算式為 True,所以函數傳回 true
  • 第二個範例:兩個運算式都是 False,所以函式傳回 false

範例 2

這些範例會檢查是否至少有一個表達式為真:

or(equals(1, 1), equals(1, 2))
or(equals(1, 2), equals(1, 3))

並傳回下列結果:

  • 第一個範例:至少有一個運算式為 True,所以函數傳回 true
  • 第二個範例:兩個運算式都是 False,所以函式傳回 false

輸出

在執行階段傳回動作的輸出。

outputs('<actionName>')
參數 為必填項目 類型 說明
< 動作名稱> 是的 繩子 所需動作輸出的名稱
傳回值 類型 說明
< 輸出> 繩子 來自指定動作的輸出

範例

這個範例會從 X 動作 Get user 取得輸出:

outputs('Get_user')

並傳回此結果:

{
  "statusCode": 200,
  "headers": {
    "Pragma": "no-cache",
    "Vary": "Accept-Encoding",
    "x-ms-request-id": "a916ec8f52211265d98159adde2efe0b",
    "X-Content-Type-Options": "nosniff",
    "Timing-Allow-Origin": "*",
    "Cache-Control": "no-cache",
    "Date": "Mon, 09 Apr 2018 18:47:12 GMT",
    "Set-Cookie": "ARRAffinity=b9400932367ab5e3b6802e3d6158afffb12fcde8666715f5a5fbd4142d0f0b7d;Path=/;HttpOnly;Domain=twitter-wus.azconn-wus.p.azurewebsites.net",
    "X-AspNet-Version": "4.0.30319",
    "X-Powered-By": "ASP.NET",
    "Content-Type": "application/json; charset=utf-8",
    "Expires": "-1",
    "Content-Length": "339"
  },
  "body": {
    "FullName": "Contoso Corporation",
    "Location": "Generic Town, USA",
    "Id": 283541717,
    "UserName": "ContosoInc",
    "FollowersCount": 172,
    "Description": "Leading the way in transforming the digital workplace.",
    "StatusesCount": 93,
    "FriendsCount": 126,
    "FavouritesCount": 46,
    "ProfileImageUrl": "https://pbs.twimg.com/profile_images/908820389907722240/gG9zaHcd_400x400.jpg"
  }
}

P

參數

傳回工作流程定義中所述參數的值。

parameters('<parameterName>')
參數 為必填項目 類型 說明
< 參數名稱> 是的 繩子 您需要其值的參數名稱
傳回值 類型 說明
< 參數值> 任意 所指定參數的值

範例

假設您有此 JSON 值:

{
  "fullName": "Sophia Owen"
}

此範例會取得指定參數的值:

parameters('fullName')

並傳回此結果:"Sophia Owen"

parseDateTime

從包含時間戳記的字串傳回時間戳記。

parseDateTime('<timestamp>', '<locale>'?, '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 區域設定> 繩子 要使用的地區設定。

如果未指定,預設地區設定為 en-us

如果 地區設定 不是有效的值,就會產生錯誤。
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。 如果未指定格式,請嘗試使用與所提供地區設定相容的多個格式進行剖析。 如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 剖析時間戳記> 繩子 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK) 格式的剖析時間戳,符合 ISO 8601 並保留時區資訊。

範例

parseDateTime('20/10/2014', 'fr-fr') // Returns '2014-10-20T00:00:00.0000000'.
parseDateTime('20 octobre 2010', 'fr-FR') // Returns '2010-10-20T00:00:00.0000000'.
parseDateTime('martes 20 octubre 2020', 'es-es') // Returns '2020-10-20T00:00:00.0000000'.
parseDateTime('21052019', 'fr-fr', 'ddMMyyyy') // Returns '2019-05-21T00:00:00.0000000'.
parseDateTime('20190521', 'fr-fr', 'yyyyMMdd') // Returns '2019-05-21T00:00:00.0000000'.
parseDateTime('10/20/2014 15h', 'en-US', 'MM/dd/yyyy HH\h') // Returns '2014-10-20T15:00:00.0000000'.

R

蘭特

從指定範圍中傳回一個隨機整數,範圍只包含起始端的數字。

rand(<minValue>, <maxValue>)
參數 為必填項目 類型 說明
< 最小值> 是的 整數 範圍中的最小整數
< 最大值> 是的 整數 在範圍中,在函式所能傳回最大整數後面的整數
傳回值 類型 說明
< 隨機結果> 整數 從指定範圍傳回的隨機整數

範例

此範例會從指定範圍取得隨機整數,但不包含最大值:

rand(1, 5)

並傳回這些數字的其中一個作為結果:1234

範圍

傳回從指定整數開始的整數陣列。

range(<startIndex>, <count>)
參數 為必填項目 類型 說明
< 開始索引> 是的 整數 作為第一個項目起始陣列的整數值
< 計數> 是的 整數 陣列中的整數數目。 count 參數值必須是不超過 100,000 的正整數。



注意:和 值的總 startIndexcount 不得超過 2,147,483,647。
傳回值 類型 說明
[<範圍結果>] Array 從指定索引開始的整數陣列

範例

此範例會建立從指定索引開始的整數陣列,且其中有指定數量的整數:

range(1, 4)

並傳回此結果:[1, 2, 3, 4]

removeProperty

從物件中移除屬性,並傳回更新的物件。 如果您嘗試移除的屬性不存在,此函數會傳回原始物件。

removeProperty(<object>, '<property>')
參數 為必填項目 類型 說明
< 物件> 是的 物體 您要從中移除屬性的 JSON 物件
< 財產> 是的 繩子 要移除的屬性名稱
傳回值 類型 說明
< 已更新的物件> 物體 沒有指定屬性的更新 JSON 物件

若要從現有的屬性中移除子屬性,請使用下列語法:

removeProperty(<object>['<parent-property>'], '<child-property>')
參數 為必填項目 類型 說明
< 物件> 是的 物體 您想要從中移除屬性的 JSON 物件
< 父屬性> 是的 繩子 父屬性的名稱,其中有您想要移除的子屬性
< 子屬性> 是的 繩子 子屬性的名稱,代表要移除的屬性
傳回值 類型 說明
< 已更新的物件> 物體 已更新的 JSON 物件,其中已移除子屬性

範例 1

這個範例會 middleName 從 JSON 物件中移除 屬性,該物件會使用 JSON() 函式從字串轉換成 JSON,並傳回更新的物件:

removeProperty(json('{ "firstName": "Sophia", "middleName": "Anne", "surName": "Owen" }'), 'middleName')

以下是目前的 JSON 物件:

{
   "firstName": "Sophia",
   "middleName": "Anne",
   "surName": "Owen"
}

以下是更新的 JSON 物件:

{
   "firstName": "Sophia",
   "surName": "Owen"
}

範例 2

這個範例將從 JSON 物件的父屬性中移除 middleName 子屬性,該 JSON 物件是使用 customerName 函式從字串轉換而來,並傳回更新的物件:

removeProperty(json('{ "customerName": { "firstName": "Sophia", "middleName": "Anne", "surName": "Owen" } }')['customerName'], 'middleName')

以下是目前的 JSON 物件:

{
   "customerName": {
      "firstName": "Sophia",
      "middleName": "Anne",
      "surName": "Owen"
   }
}

以下是更新的 JSON 物件:

{
   "customerName": {
      "firstName": "Sophia",
      "surName": "Owen"
   }
}

取代

使用指定字串取代子字串,並傳回結果字串。 此函式會區分大小寫。

replace('<text>', '<oldText>', '<newText>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 有子字串要取代的字串
< 舊文本> 是的 繩子 要取代的子字串
< 新文本> 是的 繩子 取代字串
傳回值 類型 說明
< 更新文字> 繩子 取代子字串後的更新字串

如果找不到子字串,則傳回原始字串。

範例

此範例會尋找 "the old string" 中的 "old" 字串,然後以"new" 取代 "old":

replace('the old string', 'old', 'new')

並傳回此結果:"the new string"

result

傳回指定範圍動作內的最上層動作結果,例如 For_eachUntilScope 動作。 result() 函數會接受單一參數,這是範圍的名稱,並傳回陣列,其中包含該範圍中第一層動作的資訊。 這些動作物件包含的屬性與 actions() 函式傳回的屬性相同,例如動作的開始時間、結束時間、狀態、輸入、相互關聯識別碼和輸出。

備註

此函式 只會 從範圍動作中的第一層動作傳回資訊,而不是從更深層的巢狀動作傳回資訊,例如切換或條件動作。

例如,您可以使用此函數來取得失敗動作的結果,以便診斷和處理例外狀況。 如需詳細資訊,請參閱 取得失敗的背景和結果

result('<scopedActionName>')
參數 為必填項目 類型 說明
< scopedActionName> 是的 繩子 您希望從此範圍內之最上層動作輸入及輸出的範圍動作名稱
傳回值 類型 說明
< 陣列物件> 陣列物件 陣列,其中包含所指定的範圍內,每個上層動作的輸入和輸出的陣列

範例

這個範例在 For_each 動作中使用 result() 函數,以傳回 Compose 迴圈之內 HTTP 動作每次反覆項目的輸入和輸出:

{
   "actions": {
      "Compose": {
         "inputs": "@result('For_each')",
         "runAfter": {
            "For_each": [
               "Succeeded"
            ]
         },
         "type": "compose"
      },
      "For_each": {
         "actions": {
            "HTTP": {
               "inputs": {
                  "method": "GET",
                  "uri": "https://httpstat.us/200"
               },
               "runAfter": {},
               "type": "Http"
            }
         },
         "foreach": "@triggerBody()",
         "runAfter": {},
         "type": "Foreach"
      }
   }
}

以下是可能傳回的陣列範例,其中,外部 outputs 物件包含 For_each 動作內各動作每次反覆運算的輸入和輸出。

[
   {
      "name": "HTTP",
      "outputs": [
         {
            "name": "HTTP",
            "inputs": {
               "uri": "https://httpstat.us/200",
               "method": "GET"
            },
            "outputs": {
               "statusCode": 200,
               "headers": {
                   "X-AspNetMvc-Version": "5.1",
                   "Access-Control-Allow-Origin": "*",
                   "Cache-Control": "private",
                   "Date": "Tue, 20 Aug 2019 22:15:37 GMT",
                   "Set-Cookie": "ARRAffinity=0285cfbea9f2ee7",
                   "Server": "Microsoft-IIS/10.0",
                   "X-AspNet-Version": "4.0.30319",
                   "X-Powered-By": "ASP.NET",
                   "Content-Length": "0"
               },
               "startTime": "2019-08-20T22:15:37.6919631Z",
               "endTime": "2019-08-20T22:15:37.95762Z",
               "trackingId": "6bad3015-0444-4ccd-a971-cbb0c99a7.....",
               "clientTrackingId": "085863526764.....",
               "code": "OK",
               "status": "Succeeded"
            }
         },
         {
            "name": "HTTP",
            "inputs": {
               "uri": "https://httpstat.us/200",
               "method": "GET"
            },
            "outputs": {
            "statusCode": 200,
               "headers": {
                   "X-AspNetMvc-Version": "5.1",
                   "Access-Control-Allow-Origin": "*",
                   "Cache-Control": "private",
                   "Date": "Tue, 20 Aug 2019 22:15:37 GMT",
                   "Set-Cookie": "ARRAffinity=0285cfbea9f2ee7",
                   "Server": "Microsoft-IIS/10.0",
                   "X-AspNet-Version": "4.0.30319",
                   "X-Powered-By": "ASP.NET",
                   "Content-Length": "0"
               },
               "startTime": "2019-08-20T22:15:37.6919631Z",
               "endTime": "2019-08-20T22:15:37.95762Z",
               "trackingId": "9987e889-981b-41c5-aa27-f3e0e59bf69.....",
               "clientTrackingId": "085863526764.....",
               "code": "OK",
               "status": "Succeeded"
            }
         }
      ]
   }
]

reverse

將集合中的項目順序反轉。 當您搭配 sort()使用此函式時,可以依遞減順序排序集合。

reverse([<collection>])
參數 為必填項目 類型 說明
< 收藏> 是的 Array 要反轉的集合
傳回值 類型 說明
[<更新收藏>] Array 反轉的集合

範例

此範例會反轉整數的陣列:

reverse(createArray(0, 1, 2, 3))

並傳回此陣列:[3,2,1,0]

S

setProperty

設定 JSON 物件屬性的值,並傳回更新的物件。 如果您嘗試設定的屬性不存在,則會將此屬性新增至物件。 若要新增屬性,請使用 addProperty() 函式。

setProperty(<object>, '<property>', <value>)
參數 為必填項目 類型 說明
< 物件> 是的 物體 您想要設定其屬性的 JSON 物件
< 財產> 是的 繩子 要設定的現有屬性或新屬性名稱
< 價值> 是的 任意 要為指定屬性設定的值

若要設定子物件中的子屬性,請改用巢狀 setProperty() 呼叫。 否則,此函式只會傳回子物件作為輸出。

setProperty(<object>, '<parent-property>', setProperty(<object>['parentProperty'], '<child-property>', <value>))
參數 為必填項目 類型 說明
< 物件> 是的 物體 您想要設定其屬性的 JSON 物件
< 父屬性> 是的 繩子 父屬性的名稱,其中有您想要設定的子屬性
< 子屬性> 是的 繩子 子屬性的名稱,代表要設定的屬性
< 價值> 是的 任意 要為指定屬性設定的值
傳回值 類型 說明
< 已更新的物件> 物體 您已設定其屬性的更新 JSON 物件

範例 1

這個範例將會在 JSON 物件中設定 surName 屬性,並且使用 JSON() 函式將該物件從字串轉換為 JSON。 此函式會將指定的值指派給這個屬性,並傳回更新的物件:

setProperty(json('{ "firstName": "Sophia", "surName": "Owen" }'), 'surName', 'Hartnett')

以下是目前的 JSON 物件:

{
   "firstName": "Sophia",
   "surName": "Owen"
}

以下是更新的 JSON 物件:

{
   "firstName": "Sophia",
   "surName": "Hartnett"
}

範例 2

本範例使用surName函式,將字串轉換成 JSON,並在 JSON 物件中設定customerName父屬性的子屬性。 此函式會將指定的值指派給這個屬性,並傳回更新的物件:

setProperty(json('{ "customerName": { "firstName": "Sophia", "surName": "Owen" } }'), 'customerName', setProperty(json('{ "customerName": { "firstName": "Sophia", "surName": "Owen" } }')['customerName'], 'surName', 'Hartnett'))

以下是目前的 JSON 物件:

{
   "customerName": {
      "firstName": "Sophie",
      "surName": "Owen"
   }
}

以下是更新的 JSON 物件:

{
   "customerName": {
      "firstName": "Sophie",
      "surName": "Hartnett"
   }
}

略過

移除集合前端的項目,並傳回「其他所有」項目。

skip([<collection>], <count>)
參數 為必填項目 類型 說明
< 收藏> 是的 Array 您想要從中移除項目的集合
< 計數> 是的 整數 正整數,用於指定要從前端移除的項目數量
傳回值 類型 說明
[<更新收藏>] Array 移除指定項目之後的更新集合

範例

此範例會從指定陣列的前端移除一個項目,也就是數字 0:

skip(createArray(0, 1, 2, 3), 1)

並傳回具有剩餘項目的此陣列:[1,2,3]

切片

藉由指定開始和結束位置或值,傳回子字串。 另請參閱 substring()

slice('<text>', <startIndex>, <endIndex>?)
參數 為必填項目 類型 說明
< 文字> 是的 繩子 包含要尋找之子字串的字串
< 開始索引> 是的 整數 以零起始的起始位置或值,用於開始搜尋子字串的位置

- 如果 startIndex 大於字串長度,則傳回空字串。

- 如果 startIndex 為負數,請開始搜尋字串長度和 startIndex 總和的索引值。
< 結束索引> 整數 以零起始的起始位置或值,用於結束搜尋子字串的位置。 搜尋中不包含位於結束索引值的字元。

- 如果未指定 endIndex 或大於字串長度,則最多搜尋字串結尾。

- 如果 endIndex 為負數,請結束搜尋字串長度和 endIndex 總和的索引值。
傳回值 類型 說明
< 切片結果> 繩子 包含找到子字串的新字串

範例

slice('Hello World', 2) // Returns 'llo World'.
slice('Hello World', 30) // Returns ''.
slice('Hello World', 10, 2) // Returns ''.
slice('Hello World', 0) // Returns 'Hello World'.
slice('Hello World', 2, 5) // Returns 'llo'.
slice('Hello World', 6, 20) // Returns 'World'.
slice('Hello World', -2) // Returns 'ld'.
slice('Hello World', 3, -1) // Returns 'lo Worl'.
slice('Hello World', 3, 3) // Returns ''.

排序

排序集合中的項目。 你可以使用任何包含工作流程定義語言支援的基本資料型態的鍵來排序集合物件,例如 整數float字串布爾

sort([<collection>], <sortBy>?)
參數 為必填項目 類型 說明
< 收藏> 是的 Array 要排序項目的集合
< 排序依據> 繩子 用來排序集合物件的索引鍵
傳回值 類型 說明
[<更新收藏>] Array 已排序的集合

範例 1

此範例會排序整數的陣列:

sort(createArray(2, 1, 0, 3))

並傳回此陣列:[0,1,2,3]

範例 2

此範例會依索引鍵排序物件的陣列:

sort(createArray(json('{ "first": "Amalie", "last": "Rose" }'), json('{ "first": "Elise", "last": "Renee" }')), 'last')

並傳回此陣列:[{ "first": "Elise", "last": "Renee" }, {"first": "Amalie", "last": "Rose" }')]

分割

根據原始字串中指定的分隔符號字元,傳回包含以逗號分隔之子字串的陣列。

split('<text>', '<delimiter>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 要根據原始字串中指定的分隔符號分隔成子字串的字串
< 定界符> 是的 繩子 做為分隔符號的原始字串中的字元
傳回值 類型 說明
[<子字串1>,<子字串2>,...] Array 包含原始字串中子字串的陣列,以逗號分隔

範例 1

此範例建立陣列時,會以指定的字元作為分隔符號,使用來自指定字串的子字串:

split('a_b_c', '_')

並傳回此陣列作為結果:["a","b","c"]

範例 2

此範例會在字串中沒有分隔符號時,建立具有單一元素的陣列:

split('a_b_c', ' ')

並傳回此陣列作為結果:["a_b_c"]

startOfDay

傳回時間戳記中當天的起始點。

startOfDay('<timestamp>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 指定的時間戳記,但以當天的零小時標記開始

範例

此範例會尋找此時間戳記中當天的起始點:

startOfDay('2018-03-15T13:30:30Z')

並傳回此結果:"2018-03-15T00:00:00.0000000Z"

startOfHour

傳回時間戳記中小時的起始點。

startOfHour('<timestamp>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 指定的時間戳記,但以小時的零分鐘標記開始

範例

此範例會尋找此時間戳記中小時的起始點:

startOfHour('2018-03-15T13:30:30Z')

並傳回此結果:"2018-03-15T13:00:00.0000000Z"

startOfMonth

傳回時間戳記中月份的起始點。

startOfMonth('<timestamp>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 指定的時間戳記,但以當月第一天的零小時標記開始

範例 1

此範例會傳回此時間戳記中月份的起始點:

startOfMonth('2018-03-15T13:30:30Z')

並傳回此結果:"2018-03-01T00:00:00.0000000Z"

範例 2

此範例以指定的格式傳回此時間戳記的月份開頭:

startOfMonth('2018-03-15T13:30:30Z', 'yyyy-MM-dd')

並傳回此結果:"2018-03-01"

startsWith

檢查字串是否以特定的子字串開始。 找到子字串時,傳回 True,或找不到子字串時,傳回 False。 此函式不會區分大小寫。

startsWith('<text>', '<searchText>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 要檢查的字串
< 搜尋文字> 是的 繩子 要尋找的起始字串
傳回值 類型 說明
真或假 布林值 找到起始子字串時,傳回 True。 找不到項目時,傳回 False。

範例 1

此範例會檢查 "hello world" 字串是否以 "hello" 子字串開始:

startsWith('hello world', 'hello')

並傳回此結果:true

範例 2

此範例會檢查 "hello world" 字串是否以 "greetings" 子字串開始:

startsWith('hello world', 'greetings')

並傳回此結果:false

字串

傳回值的字串版本。

string(<value>)
參數 為必填項目 類型 說明
< 價值> 是的 任意 要轉換的值。 如果此值為 null 或評估為 null,則此值會轉換成空字串 ("") 值。



例如,如果您將字串變數指派給不存在的屬性,您可以使用 ? 運算子存取該屬性,則 Null 值會轉換成空字串。 不過,比較 Null 值與比較空字串不同。
傳回值 類型 說明
< 字串值> 繩子 指定值的字串版本。 如果 value 參數為 null 或評估為 null,這個值會以空字串 ("") 值傳回。

範例 1

此範例會建立此數字的字串版本:

string(10)

並傳回此結果:"10"

範例 2

此範例會為指定的 JSON 物件建立字串,並使用反斜線字元 (\) 做為雙引號 (") 的逸出字元。

string( { "name": "Sophie Owen" } )

並傳回此結果:"{ \\"name\\": \\"Sophie Owen\\" }"

sub

傳回第一個數字減去第二個數字的結果。

sub(<minuend>, <subtrahend>)
參數 為必填項目 類型 說明
< 減值> 是的 整數或浮點數 要從中減去「減數」的數字
< 減數> 是的 整數或浮點數 從「被減數」中減去的數字
傳回值 類型 說明
< 結果> 整數或浮點數 從第一個數字減去第二個數字的結果

範例

此範例會從第一個數字減去第二個數字:

sub(10.3, .3)

並傳回此結果:10

substring

從字串中傳回字元,從指定的位置或索引開始。 索引值會以數字 0 開頭。 另請參閱 slice()

substring('<text>', <startIndex>, <length>)
參數 為必填項目 類型 說明
< 文字> 是的 繩子 您需要其中字元的字串
< 開始索引> 是的 整數 等於或大於 0 的正數,作為起始位置或索引值
< 長度> 整數 您希望在子字串中具有的正的字元數量

備註

請確定新增 startIndexlength 參數值的總和小於您為 text 參數提供的字串長度。 否則,您會收到錯誤,不同於其他語言中的類似函式,其中結果是從 startIndex 到字串結尾的子字串。 length 參數是選擇性的,如果未提供,substring() 函式會採用從 startIndex 到字串結尾的所有字元。

傳回值 類型 說明
< 子字串結果> 繩子 具有指定字元數目的子字串,並以來源字串中的指定索引位置起始

範例

此範例會從指定字串建立 5 個字元的子字串,並且從索引值 6 起始:

substring('hello world', 6, 5)

並傳回此結果:"world"

subtractFromTime

從時間戳減去一定數量的時間單位。 另請參閱 getPastTime

subtractFromTime('<timestamp>', <interval>, '<timeUnit>', '<format>'?)
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 包含時間戳記的字串
< 間隔> 是的 整數 要減去的指定時間單位數字
< 時間單位> 是的 繩子 interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 更新時間戳記> 繩子 時間戳記減去指定的時間單位數字

範例 1

此範例會從此時間戳記中減去一天:

subtractFromTime('2018-01-02T00:00:00Z', 1, 'Day')

並傳回此結果:"2018-01-01T00:00:00.0000000Z"

範例 2

此範例會從此時間戳記中減去一天:

subtractFromTime('2018-01-02T00:00:00Z', 1, 'Day', 'D')

並傳回選用 "D" 格式的此結果:"Monday, January, 1, 2018"

T

take

傳回集合中的前端項目。

take('<collection>', <count>)
take([<collection>], <count>)
參數 為必填項目 類型 說明
< 收藏> 是的 字串或陣列 您需要其中項目的集合
< 計數> 是的 整數 正整數,表示您需要的前端項目數量
傳回值 類型 說明
< 子集>或 [<子集>] 分別為字串或陣列 從原始集合前端取得指定項目數量的字串或陣列

範例

此範例會從這些集合的前端取得指定數目的項目:

take('abcde', 3)
take(createArray(0, 1, 2, 3, 4), 3)

並傳回下列結果:

  • 第一個範例:"abc"
  • 第二個範例:[0, 1, 2]

刻度

傳回從 0001 年 1 月 1 日 12:00:00 午夜 (C# 中的 DateTime.Ticks) 到指定的時間戳記為止的滴答數 (100 奈秒間隔)。 如需詳細資訊,請參閱本主題: DateTime.Ticks 屬性 (System)

ticks('<timestamp>')
參數 為必填項目 類型 說明
< 時間戳> 是的 繩子 時間戳記的字串
傳回值 類型 說明
< 刻度數字> 整數 自指定時間戳記以來的刻度數目

toLower

傳回小寫格式的字串。 如果字串中的字元沒有小寫版本,則該字元在傳回的字串中會保持不變。

toLower('<text>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 要以小寫格式傳回的字串
傳回值 類型 說明
< 小寫文字> 繩子 小寫格式的原始字串

範例

此範例會將此字串轉換為小寫:

toLower('Hello World')

並傳回此結果:"hello world"

toUpper

返回大寫格式的字串。 如果字串中的字元沒有大寫版本,則該字元在傳回的字串中會保持不變。

toUpper('<text>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 要以大寫格式傳回的字串
傳回值 類型 說明
< 大寫文字> 繩子 大寫格式的原始字串

範例

此範例會將此字串轉換為大寫:

toUpper('Hello World')

並傳回此結果:"HELLO WORLD"

觸發

傳回執行階段上觸發程序的輸出,或來自其他 JSON 成對名稱和數值中的值,而您可以將其指派給運算式。

  • 在觸發程序的輸入內,此函式會傳回先前執行的輸出。

  • 在觸發程序的條件內,此函式會傳回目前執行的輸出。

根據預設,函式會參考整個觸發程序物件,但是您可以選擇性地指定其中有所需值的屬性。 此外,此函式有可用的速記版本,請參閱 triggerOutputs()triggerBody()

trigger()
傳回值 類型 說明
< 觸發輸出> 繩子 執行階段上觸發程序的輸出

triggerBody

傳回觸發程序在執行階段的 body 輸出。 trigger().outputs.body 的簡略版。 請參閱 trigger()

triggerBody()
傳回值 類型 說明
< 觸發器體輸出> 繩子 來自觸發程序的 body 輸出

triggerFormDataMultiValues

傳回一個陣列,其中的值符合觸發器的 form-dataform-encoded 輸出中的鍵名。

triggerFormDataMultiValues('<key>')
參數 為必填項目 類型 說明
< 鑰匙> 是的 繩子 您需要其值的索引鍵名稱
傳回值 類型 說明
[<具有鍵值的陣列>] Array 此陣列具有符合指定索引鍵的所有值

範例

此範例會從 "feedUrl" 索引鍵值建立陣列,而此索引鍵值位於 RSS 觸發程序的表單資料或表單編碼輸出中:

triggerFormDataMultiValues('feedUrl')

並傳回此陣列作為範例結果:["https://feeds.a.dj.com/rss/RSSMarketsMain.xml"]

triggerFormDataValue

傳回字串,其中包含符合觸發程式 表單資料表單碼 輸出中索引鍵名稱的單一值。 如果函式找到一個以上的相符項目,函式會擲回錯誤。

triggerFormDataValue('<key>')
參數 為必填項目 類型 說明
< 鑰匙> 是的 繩子 您需要其值的索引鍵名稱
傳回值 類型 說明
< key-value(鍵值)> 繩子 所指定索引鍵中的值

範例

此範例會從 "feedUrl" 索引鍵值建立字串,而此索引鍵值位於 RSS 觸發程序的表單資料或表單編碼輸出中:

triggerFormDataValue('feedUrl')

並傳回此字串作為範例結果:"https://feeds.a.dj.com/rss/RSSMarketsMain.xml"

triggerMultipartBody

從具有多個部分的觸發程序輸出中,傳回特定部分的內容。

triggerMultipartBody(<index>)
參數 為必填項目 類型 說明
< 指數> 是的 整數 所需部分的索引值
傳回值 類型 說明
< 身體> 繩子 在觸發程序的多部分輸出中,指定部分的內容

triggerOutputs

傳回觸發程序在執行階段的輸出,或來自其他 JSON 名稱與值配對中的值。 trigger().outputs 的簡略版。 請參閱 trigger()

triggerOutputs()
傳回值 類型 說明
< 觸發輸出> 繩子 執行階段上觸發程序的輸出

修剪

移除字串的開頭和尾端空白字元,並傳回更新後的字串。

trim('<text>')
參數 為必填項目 類型 說明
< 文字> 是的 繩子 要為其移除開頭和尾端空白字元的字串
傳回值 類型 說明
< 更新的文字> 繩子 不含開頭或尾端空白字元的原始字串更新版本

範例

此範例會從「Hello World」字串中移除開頭與結尾空白字元:

trim(' Hello World  ')

並傳回此結果:"Hello World"

U

union

傳回具有指定集合中「所有」項目的集合。 出現在結果中的項目,可以出現在任何傳遞至此函式的集合中。 如果一個或多個項目有相同的名稱,則具有該名稱的最後一個項目會出現在結果中。

union('<collection1>', '<collection2>', ...)
union([<collection1>], [<collection2>], ...)
參數 為必填項目 類型 說明
< collection1>, <collection2>, ... 是的 陣列或物件,但不可以兩者並存 您想要其中「所有」項目的集合
傳回值 類型 說明
< 更新後的集合> 個別的陣列或物件 具有指定集合中所有項目的集合 - 不含重複值

範例

此範例會從以下集合取得「所有」項目:

union(createArray(1, 2, 3), createArray(1, 2, 10, 101))

並傳回此結果:[1, 2, 3, 10, 101]

uriComponent

傳回字串的統一資源識別碼 (URI) 編碼版本,將 URL 不安全的字元替換成逸出字元。 使用此函式而非 encodeUriComponent()。 雖然這兩個函數的運作方式相同,但是較常使用 uriComponent()

uriComponent('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換成 URI 編碼格式的字串
傳回值 類型 說明
< 編碼 URI> 繩子 具有逸出字元的 URI 編碼字串

範例

此範例會建立此字串的 URI 編碼版本:

uriComponent('https://contoso.com')

並傳回此結果:"https%3A%2F%2Fcontoso.com"

uriComponentToBinary

傳回統一資源識別項 (URI) 元件的二進位版本。

uriComponentToBinary('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要轉換的 URI 編碼字串
傳回值 類型 說明
< 二進位編碼 URI> 繩子 URI 編碼字串的二進位版本。 二進位內容是以 base64 編碼,而且由 $content 表示。

範例

此範例會建立此 URI 編碼字串的二進位版本:

uriComponentToBinary('https%3A%2F%2Fcontoso.com')

並傳回此結果:"aHR0cHM6Ly9jb250b3NvLmNvbQ=="

uriComponentToString

傳回統一資源識別項 (URI) 編碼字串的字串版本,也就是有效地解碼 URI 編碼字串。

uriComponentToString('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 要解碼的 URI 編碼字串
傳回值 類型 說明
< 解碼 uri> 繩子 URI 編碼字串的已解碼版本

範例

此範例會建立此 URI 編碼字串的已解碼字串版本:

uriComponentToString('https%3A%2F%2Fcontoso.com')

並傳回此結果:"https://contoso.com"

uriHost

傳回統一資源識別項 (URI) 的 host 值。

uriHost('<uri>')
參數 為必填項目 類型 說明
< URI> 是的 繩子 您需要其 host 值的 URI
傳回值 類型 說明
< 主機值> 繩子 所指定 URI 的 host

範例

此範例會尋找此 URI 的 host 值:

uriHost('https://www.localhost.com:8080')

並傳回此結果:"www.localhost.com"

uriPath

傳回統一資源識別項 (URI) 的 path 值。

uriPath('<uri>')
參數 為必填項目 類型 說明
< URI> 是的 繩子 您需要其 path 值的 URI
傳回值 類型 說明
< 路徑值> 繩子 所指定 URI 的 path 值。 如果 path 沒有值,則傳回 "/" 字元。

範例

此範例會尋找此 URI 的 path 值:

uriPath('https://www.contoso.com/catalog/shownew.htm?date=today')

並傳回此結果:"/catalog/shownew.htm"

uriPathAndQuery

傳回統一資源識別項 (URI) 的 pathquery 值。

uriPathAndQuery('<uri>')
參數 為必填項目 類型 說明
< URI> 是的 繩子 您需要其 pathquery 值的 URI
傳回值 類型 說明
< 路徑查詢值> 繩子 所指定 URI 的 pathquery 值。 如果 path 未指定值,則傳回 "/" 字元。

範例

此範例會尋找此 URI 的 pathquery 值:

uriPathAndQuery('https://www.contoso.com/catalog/shownew.htm?date=today')

並傳回此結果:"/catalog/shownew.htm?date=today"

uriPort

傳回統一資源識別項 (URI) 的 port 值。

uriPort('<uri>')
參數 為必填項目 類型 說明
< URI> 是的 繩子 您需要其 port 值的 URI
傳回值 類型 說明
< 連接埠值> 整數 所指定 URI 的 port 值。 如果 port 未指定值,則傳回通訊協定的預設連接埠。

範例

此範例會傳回此 URI 的 port 值:

uriPort('https://www.localhost:8080')

並傳回此結果:8080

uriQuery

傳回統一資源識別項 (URI) 的 query 值。

uriQuery('<uri>')
參數 為必填項目 類型 說明
< URI> 是的 繩子 您需要其 query 值的 URI
傳回值 類型 說明
< 查詢值> 繩子 所指定 URI 的 query

範例

此範例會傳回此 URI 的 query 值:

uriQuery('https://www.contoso.com/catalog/shownew.htm?date=today')

並傳回此結果:"?date=today"

uriScheme

傳回統一資源識別項 (URI) 的 scheme 值。

uriScheme('<uri>')
參數 為必填項目 類型 說明
< URI> 是的 繩子 您需要其 scheme 值的 URI
傳回值 類型 說明
< 方案值> 繩子 所指定 URI 的 scheme

範例

此範例會傳回此 URI 的 scheme 值:

uriScheme('https://www.contoso.com/catalog/shownew.htm?date=today')

並傳回此結果:"http"

utcNow

傳回目前的時間戳記。

utcNow('<format>')

您可以選擇性地以 <format> 參數指定不同格式。

參數 為必填項目 類型 說明
< 格式> 繩子 數值格式字串,可以是 單一格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效值,則會產生錯誤。
傳回值 類型 說明
< 目前時間戳記> 繩子 目前的日期和時間

範例

utcNow()                  // Returns 2025-09-25T05:18:31.3384797Z
utcNow('u')               // Returns 2025-09-25 05:18:31Z
utcNow('U')               // Returns Thursday, September 25, 2025 5:18:31 AM
utcNow('d')               // Returns 9/25/2025
utcNow('D')               // Returns Thursday, September 25, 2025
utcNow('t')               // Returns 5:18 AM
utcNow('T')               // Returns 5:18:31 AM
utcNow('y')               // Returns September 2025
utcNow('yyyy')            // Returns 2025
utcNow('ddd, d MMM yyyy') // Returns Thu, 25 Sep 2025

V

變數

傳回指定變數的值。

variables('<variableName>')
參數 為必填項目 類型 說明
< 變數名稱> 是的 繩子 您需要其值的變數名稱
傳回值 類型 說明
< 變數值> 任意 所指定變數的值

範例

假設 "numItems" 變數的目前值為 20。 此範例會取得此變數的整數值:

variables('numItems')

並傳回此結果:20

W

工作流程

傳回執行階段期間與工作流程本身相關的所有詳細資料。

workflow().<property>
參數 為必填項目 類型 說明
< 財產> 繩子 您需要其值的工作流程屬性名稱



根據預設,工作流程物件具有下列屬性:nametypeidlocationruntags



- run 屬性值是包含下列屬性的 JSON 物件:nametypeid



- 屬性 tags 是 JSON 物件,其中包含與 Azure Logic Apps 中邏輯應用程式相關聯的標記,或 Power Automate 中的流程 ,以及這些標籤的值。 如需深入了解 Azure 資源中的標籤,請檢閱 在 Azure 中組織標籤資源、資源群組和訂閱的邏輯方法



注意:根據預設,邏輯應用程式沒有標籤,但 Power Automate 流程具有 flowDisplayNameenvironmentName 標籤。

範例 1

此範例會傳回工作流程的目前執行名稱:

workflow().run.name

範例 2

如果您使用 Power Automate,您可以建立使用 @workflow() 輸出屬性的 tags 運算式,以從流程的 flowDisplayNameenvironmentName 屬性取得值。

例如,您可以從連回流程的流程本身傳送自訂電子郵件通知。 這些通知可以包含 HTML 連結,其中包含電子郵件標題中的流程顯示名稱,並遵循下列語法:

<a href=https://flow.microsoft.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/details>Open flow @{workflow()['tags']['flowDisplayName']}</a>

X

Xml

傳回包含 JSON 物件的 XML 版字串。

xml('<value>')
參數 為必填項目 類型 說明
< 價值> 是的 繩子 包含 JSON 物件以供轉換的字串

JSON 物件必須只能有一個根屬性,且不可以是陣列。
使用反斜線字元 (\) 做為雙引號 (") 的逸出字元。
傳回值 類型 說明
< xml 版本> 物體 所指定字串或 JSON 物件的編碼 XML

範例 1

此範例會將此字串轉換為 XML:

xml('<name>Sophia Owen</name>')

並傳回此結果 XML:

<name>Sophia Owen</name>

範例 2

此範例會為包含 JSON 物件的此字串建立 XML 版本:

xml(json('{ "name": "Sophia Owen" }'))

並傳回此結果 XML:

<name>Sophia Owen</name>

範例 3

假設您有此 JSON 物件:

{
  "person": {
    "name": "Sophia Owen",
    "city": "Seattle"
  }
}

此範例會為包含此 JSON 物件的字串建立 XML:

xml(json('{"person": {"name": "Sophia Owen", "city": "Seattle"}}'))

並傳回此結果 XML:

<person>
  <name>Sophia Owen</name>
  <city>Seattle</city>
<person>

範例 4

xml() 式需要包含有效 XML 的物件或字串。 函式不接受原始陣列作為輸入。

如果您的資料是 JSON 字串,您可以使用函數 json() 將字串轉換為 JSON 物件,然後再將結果傳遞給函數 xml() ,例如:

xml(
  json('{"root":{"array":[
    { "ID": 1, "Name": "James" },
    { "ID": 2, "Name": "John" },
    { "ID": 3, "Name": "Sam" }
  ]}}')
)

如果您有 JSON 陣列,如下列範例所示,您有三個選項。

[
  { "ID": 1, "Name": "James" },
  { "ID": 2, "Name": "John" },
  { "ID": 3, "Name": "Sam" }
]

選項 1:將 JSON 陣列儲存在名為 Compose1撰寫動作中。 然後使用函 outputs() 式從 Compose1 傳回 JSON 物件。

{
  "root": { "array": @{outputs('Compose1')} }
}

將傳回的 JSON 物件儲存在另一個名為 Compose2 的動作中。 然後,您可以使用 和 xml()outputs() 函式,從 Compose2 的 JSON 物件輸出建立 XML,例如:

xml(outputs('Compose2'))

選項 2:將 JSON 陣列儲存在名為 Compose1撰寫動作中。 然後使用 outputs()、 、 concat()json()xml() 函數從 JSON 物件輸出建立 XML,例如:

xml(
  json(
    concat(
      '{"root":{"array":',
      outputs('Compose1'),
      '}}'
    )
  )
)

選項 3:將 JSON 陣列儲存在名為 Compose1撰寫動作中。 然後outputs(),您可以使用 、 、 json()addProperty()xml()函數從 JSON 物件輸出建立 XML,例如:

xml(
  addProperty(
    json('{}'),
    'root',
    addProperty(
      json('{}'),
      'array',
      outputs('Compose1')
    )
  )
)

所有範例 (包括 JSON 字串資料範例和選項 1 到 3) 都會傳回下列 XML 結果:

<root>
  <array>
    <ID>1</ID>
    <Name>James</Name>
  </array>
  <array>
    <ID>2</ID>
    <Name>John</Name>
  </array>
  <array>
    <ID>3</ID>
    <Name>Sam</Name>
  </array>
</root>

xpath

檢查 XML 中是否有符合 XPath (XML 路徑語言) 運算式的節點或值,並傳回符合的節點或值。 XPath 運算式 (或 "XPath") 可協助您瀏覽 XML 文件結構,讓您可以在 XML 內容中選取節點或計算值。

備註

在使用量和標準邏輯應用程式中,所有函式運算式都會使用 .NET XPath 程式庫。 XPath 運算式與基礎 .NET 程式庫相容,且只支援基礎 .NET 程式庫支援的運算式。

xpath('<xml>', '<xpath>')
參數 為必填項目 類型 說明
< XML> 是的 任意 XML 字串,將對其搜尋是否有符合 XPath 運算式的值或節點
< x路徑> 是的 任意 用來尋找相符 XML 節點或值的 XPath 運算式
傳回值 類型 說明
< xml 節點> XML 只有單一節點符合指定的 XPath 運算式時會傳回 XML 節點
< 價值> 任意 只有單一值符合指定的 XPath 運算式時,會傳回 XML 節點的值
[<xml-node1>, <xml-node2>, ...] 或是 [<value1>, <value2>, ...] Array 陣列,其中有符合指定 XPath 運算式的 XML 節點或值

範例 1

假設您有此 'items' XML 值:

<?xml version="1.0"?>
<produce>
  <item>
    <name>Gala</name>
    <type>apple</type>
    <count>20</count>
  </item>
  <item>
    <name>Honeycrisp</name>
    <type>apple</type>
    <count>10</count>
  </item>
</produce>

這個範例會傳入 XPath 運算式 '/produce/item/name/text()',以尋找符合 <name></name> XML 字串中 'items' 節點的節點,並傳回具有這些節點值的陣列:

xpath(xml(parameters('items')), '/produce/item/name/text()')

此範例也會使用 parameters() 函式從 取得 XML 字串 'items' ,並使用 xml() 函式將字串轉換成 XML 格式。

以下是填入符合 <name></name> 之節點值的結果陣列:

[ Gala, Honeycrisp ]

範例 2

接續範例 1,此範例會傳入 XPath 運算式 '/produce/item/name[1]',以尋找身為 name 元素子系的第一個 item 元素。

xpath(xml(parameters('items')), '/produce/item/name[1]')

結果如下︰Gala

範例 3

接續範例 1,此範例會傳入 XPath 運算式 '/produce/item/name[last()]',以尋找身為 name 元素子系的最後一個 item 元素。

xpath(xml(parameters('items')), '/produce/item/name[last()]')

結果如下︰Honeycrisp

範例 4

在此範例中,假設 items XML 字串也包含屬性 expired='true'expired='false'

<?xml version="1.0"?>
<produce>
  <item>
    <name expired='true'>Gala</name>
    <type>apple</type>
    <count>20</count>
  </item>
  <item>
    <name expired='false'>Honeycrisp</name>
    <type>apple</type>
    <count>10</count>
  </item>
</produce>

此範例會傳入 XPath 運算式 '//name[@expired]',以尋找具有 name 屬性的所有 expired 元素:

xpath(xml(parameters('items')), '//name[@expired]')

結果如下︰[ Gala, Honeycrisp ]

範例 5

在此範例中,假設 items XML 字串只包含此屬性 expired = 'true'

<?xml version="1.0"?>
<produce>
  <item>
    <name expired='true'>Gala</name>
    <type>apple</type>
    <count>20</count>
  </item>
  <item>
    <name>Honeycrisp</name>
    <type>apple</type>
    <count>10</count>
  </item>
</produce>

這個範例會傳入 XPath 運算式 '//name[@expired = 'true']',以尋找具有 name 屬性的所有 expired = 'true' 元素:

xpath(xml(parameters('items')), '//name[@expired = 'true']')

結果如下︰[ Gala ]

範例 6

在此範例中,假設 items XML 字串也包含這些屬性:

  • expired='true' price='12'
  • expired='false' price='40'
<?xml version="1.0"?>
<produce>
  <item>
    <name expired='true' price='12'>Gala</name>
    <type>apple</type>
    <count>20</count>
  </item>
  <item>
    <name expired='false' price='40'>Honeycrisp</name>
    <type>apple</type>
    <count>10</count>
  </item>
</produce>

這個範例會傳入 XPath 運算式 '//name[@price>35]',以尋找具有 name 的所有 price > 35 元素:

xpath(xml(parameters('items')), '//name[@price>35]')

結果如下︰Honeycrisp

範例 7

在此範例中,假設 items XML 字串與範例 1 相同:

<?xml version="1.0"?>
<produce>
  <item>
    <name>Gala</name>
    <type>apple</type>
    <count>20</count>
  </item>
  <item>
    <name>Honeycrisp</name>
    <type>apple</type>
    <count>10</count>
  </item>
</produce>

此範例會尋找符合 <count></count> 節點的節點,並使用 sum() 函數新增這些節點值:

xpath(xml(parameters('items')), 'sum(/produce/item/count)')

結果如下︰30

範例 8

在此範例中,假設您有這個 XML 字串,其中包含 XML 文件命名空間 xmlns="https://contoso.com"

<?xml version="1.0"?><file xmlns="https://contoso.com"><location>Paris</location></file>

這些運算式會使用 XPath 運算式 /*[name()="file"]/*[name()="location"]/*[local-name()="file" and namespace-uri()="https://contoso.com"]/*[local-name()="location"],以尋找符合 <location></location> 節點的節點。 這些範例示範您在設計工具或運算式編輯器中使用的語法:

  • xpath(xml(body('Http')), '/*[name()="file"]/*[name()="location"]')
  • xpath(xml(body('Http')), '/*[local-name()="file" and namespace-uri()="https://contoso.com"]/*[local-name()="location"]')

以下是符合 <location></location> 節點的結果節點:

<location xmlns="https://contoso.com">Paris</location>

這很重要

如果您在程式碼檢視中工作,請使用反斜線字元 (\) 來逸出雙引號 (")。 例如,當您將運算式序列化為 JSON 字串時,您必須使用逸出字元。 不過,如果您在設計工具或運算式編輯器中工作,則不需要逸出雙引號,因為反斜線字元會自動新增至基礎定義,例如:

  • 程式碼檢視:xpath(xml(body('Http')), '/*[name()=\"file\"]/*[name()=\"location\"]')

  • 運算式編輯器:xpath(xml(body('Http')), '/*[name()="file"]/*[name()="location"]')

範例 9

接續範例 8,此範例會使用 XPath 運算式 'string(/*[name()="file"]/*[name()="location"])',在 <location></location> 節點中尋找值:

xpath(xml(body('Http')), 'string(/*[name()="file"]/*[name()="location"])')

結果如下︰Paris

後續步驟

瞭解 工作流程定義語言