共用方式為


Azure Logic Apps 和 Power Automate 中工作流程表達式函式的參考指南

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

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

注意

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

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

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

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

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

表達式中的函式

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

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

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

Task 表達式中的函式語法
將該專案傳遞至函式,以使用專案。 “@<functionName>(<item>)”
1.使用巢狀parameters()函式取得parameterName的值。
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()參數和 firstNamelastName 參數中使用 函式。 接著,您會將產生的字串傳遞至 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>')"

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

字串函數

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

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

集合函數

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

集合函式 Task
chunk 將字串或集合分割成長度相等的區塊。
contains 檢查集合是否具有特定項目。
empty 檢查集合是否是空的。
first 傳回集合中的第一個項目。
intersection 在指定的多個集合中,傳回「只有」共同項目的集合。
專案 如果此函式出現在陣列的重複動作內,請在動作的目前反覆專案期間傳回數位列中的目前專案。
join 傳回具有陣列中「所有」項目 (以指定的字元隔開) 的字串。
last 傳回集合中的最後一個項目。
length 傳回字串或陣列中的項目數目。
reverse 反轉數位列中的項目順序。
skip 移除集合前端的項目,並傳回「其他所有」項目。
sort 排序集合中的專案。
take 傳回集合中的前端項目。
union 傳回具有指定集合中「所有」項目的集合。

邏輯比較函數

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

注意

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

邏輯比較函式 Task
and 檢查是否所有運算式都是 True。
equals 檢查兩個值是否相等。
greater 檢查第一個值是否大於第二個值。
greaterOrEquals 檢查第一個值是否大於或等於第二個值。
if 檢查運算式是 True 或 False。 根據結果,傳回指定的值。
isFloat 傳回布爾值,指出字串是否為浮點數。
isInt 傳回布爾值,指出字串是否為整數。
less 檢查第一個值是否小於第二個值。
lessOrEquals 檢查第一個值是否小於或等於第二個值。
not 檢查運算式是否為 False。
or 檢查是否至少有一個運算式是 True。

轉換函數

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

注意

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

轉換函式 Task
array 從單一指定輸入傳回的陣列。 關於多個輸入的資訊,請參閱 createArray
base64 傳回字串的 base64 編碼版本。
base64ToBinary 傳回 base64 編碼字串的二進位版本。
base64ToString 傳回 base64 編碼字串的字串版本。
binary 傳回輸入值的二進位版本。
bool 傳回輸入值的布林值版本。
createArray 從多個輸入傳回陣列。
dataUri 傳回輸入值的資料 URI。
dataUriToBinary 傳回資料 URI 的二進位版本。
dataUriToString 傳回資料 URI 的字串版本。
decimal 傳回十進位字串的十進位數。
decodeBase64 傳回 base64 編碼字串的字串版本。
decodeDataUri 傳回資料 URI 的二進位版本。
decodeUriComponent 傳回以已解碼版本取代逸出字元的字串。
encodeUriComponent 傳回以逸出字元取代 URL 中 Unsafe 字元的字串。
float 傳回輸入值的浮點數。
int 傳回字串的整數版本。
json 傳回字串或 XML 的 JavaScript 物件標記法 (JSON) 類型值或物件。
string 傳回輸入值的字串版本。
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>)

注意

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

數學函數

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

數學函式 Task
add 傳回兩個數字相加的結果。
div 傳回兩個數字相除的結果。
max 從數字集合或陣列中傳回最大值。
min 從數字集合或陣列中傳回最小值。
mod 傳回兩數相除的餘數。
mul 傳回將兩數相乘的乘積。
rand 從指定範圍傳回隨機整數。
range 傳回從指定整數開始的整數陣列。
sub 傳回第一個數字減去第二個數字的結果。

日期和時間函式

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

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

工作流程函數

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

  • 取得運行時間工作流程實例的詳細數據。
  • 使用用於具現化邏輯應用程式或流程的輸入。
  • 參考觸發程式和動作的輸出。

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

工作流程函式 Task
action 傳回目前動作在運行時間的輸出,或來自其他 JSON 名稱和值組的值。 另 請參閱動作
actions 在運行時間傳回動作的輸出,或來自其他 JSON 名稱和值組的值。 另 請參閱動作
身體 在運行時間傳回動作的 body 輸出。
formDataMultiValues 使用符合表單資料表單編碼動作輸出中索引鍵名稱的值,建立陣列。
formDataValue 傳回符合動作表單資料表單碼輸出索引鍵名稱的單一值。
專案 如果此函式出現在陣列的重複動作內,請在動作的目前反覆專案期間傳回數位列中的目前專案。
items 如果此函式出現在 Foreach 或 Until 循環內,請從指定的循環傳回目前的專案。
iterationIndexes 如果此函式出現在 Until 迴圈內,則傳回目前反覆專案的索引值。 您可以在巢狀 Until 迴圈內使用此函式。
listCallbackUrl 傳回呼叫觸發程式或動作的「回呼 URL」。
multipartBody 傳回動作輸出中具有多個部分之特定元件的主體。
輸出 在運行時間傳回動作的輸出。
parameters 傳回工作流程定義中所描述之參數的值。
result 傳回指定範圍動作內最上層動作的輸入和輸出,例如 For_eachUntilScope
觸發 在運行時間或從其他 JSON 名稱和值組傳回觸發程式的輸出。 另 請參閱 triggerOutputstriggerBody
triggerBody 在運行時間傳回觸發程序的 body 輸出。 請參閱 觸發程式
triggerFormDataValue 傳回符合表單資料表單編碼觸發程式輸出中索引鍵名稱的單一值。
triggerMultipartBody 傳回觸發程式多部分輸出中特定元件的主體。
triggerFormDataMultiValues 建立陣列,其值符合表單資料表單編碼觸發程序輸出中的索引鍵名稱。
triggerOutputs 在運行時間傳回觸發程序的輸出,或來自其他 JSON 名稱和值組的值。 請參閱 觸發程式
variables 傳回指定變數的值。
工作流程 傳回運行時間期間工作流程本身的所有詳細數據。

URI 剖析函數

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

URI 剖析函式 Task
uriHost host傳回統一資源標識碼的值(URI)。
uriPath path傳回統一資源標識碼的值(URI)。
uriPathAndQuery path傳回統一資源標識碼 (URI) 的和 query 值。
uriPort port傳回統一資源標識碼的值(URI)。
uriQuery query傳回統一資源標識碼的值(URI)。
uriScheme scheme傳回統一資源標識碼的值(URI)。

操作函式:JSON 和 XML

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

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

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

所有函式 - 依字母順序排列的清單

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

A

action

回目前 動作在運行時間的輸出,或其他 JSON 名稱和值組的值,您可以指派給表達式。 根據預設,此函式會參考整個動作物件,但您可以選擇性地指定其值的屬性。 另 請參閱 actions()

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

  • unsubscribe Webhook 動作的 屬性,讓您可以從原始subscribe要求存取結果
  • trackedProperties動作的屬性
  • do-until動作的循環條件
action()
action().outputs.body.<property>
參數 必要 類型​ 描述
<property> No String 動作物件屬性的名稱,其值如下:name、startTime、endTimeinputsoutputsstatuscodetrackingId 和 clientTrackingId。 在 Azure 入口網站 中,您可以檢閱特定執行歷程記錄的詳細數據來尋找這些屬性。 如需詳細資訊,請參閱 REST API - 工作流程執行動作
傳回值 類型 描述
<action-output> String 目前動作或屬性的輸出

動作

在運行時間傳回動作的輸出,或來自其他 JSON 名稱和值組的值,您可以指派給表示式。 根據預設,函式會參考整個動作物件,但您可以選擇性地指定其值的屬性。 如需速記版本,請參閱 body()。 如需目前的動作,請參閱 action()

提示

函式會 actions() 以字串的形式傳回輸出。 如果您需要將傳回的值當做 JSON 物件使用,您必須先轉換字串值。 您可以使用剖析 JSON 動作,將字串值轉換成 JSON 物件

注意

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

actions('<actionName>')
actions('<actionName>').outputs.body.<property>
參數 必要 類型​ 描述
<actionName> Yes String 您要輸出的動作物件名稱
<property> No String 動作物件屬性的名稱,其值如下:name、startTime、endTimeinputsoutputsstatuscodetrackingId 和 clientTrackingId。 在 Azure 入口網站 中,您可以檢閱特定執行歷程記錄的詳細數據,以尋找這些屬性。 如需詳細資訊,請參閱 REST API - 工作流程執行動作
傳回值 類型 描述
<action-output> String 指定動作或屬性的輸出

範例

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

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

並傳回此結果:"Succeeded"

add

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

add(<summand_1>, <summand_2>)
參數 必要 類型​ 描述
<summand_1>, <summand_2> Yes 整數、浮點數或混合 要相加的數字
傳回值 類型 描述
<result-sum> 整數或浮點數 指定數字相加的結果

範例

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

add(1, 1.5)

並傳回此結果:2.5

addDays

將天數新增至時間戳。

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 時間戳記加上指定的天數

範例 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>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
<hours> Yes 整數 要加入的時數 (正數或負數)
<format> No String 數值格式字串,可以是單一 格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 時間戳記加上指定的時數

範例 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>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
<分鐘> Yes 整數 要加入的分鐘數 (正數或負數)
<format> No String 數值格式字串,可以是單一 格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 時間戳記加上指定的分鐘數

範例 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>)
參數 必要 類型​ 描述
<object> Yes Object 您要在其中新增屬性的 JSON 物件
<property> Yes String 要加入之屬性的名稱
<value> Yes 任意 屬性的值
傳回值 類型 描述
<updated-object> Object 具有指定屬性的更新 JSON 物件

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

setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>)
參數 必要 類型​ 描述
<object> Yes Object 您要在其中新增屬性的 JSON 物件
<parent-property> Yes String 您要在其中新增子屬性的父屬性名稱
<child-property> Yes String 要加入之子屬性的名稱
<value> Yes 任意 要為指定之屬性設定的值
傳回值 類型 描述
<updated-object> Object 您所設定屬性的已更新 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>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
<seconds> Yes 整數 要加入的秒數 (正數或負數)
<format> No String 數值格式字串,可以是單一 格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 時間戳記加上指定的秒數

範例 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>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
<interval> Yes 整數 要加入的指定時間單位數字
<timeUnit> Yes String interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
<format> No String 數值格式字串,可以是單一 格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 時間戳記加上指定的時間單位數字

範例 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 時傳回 true,或至少有一個運算式為 false 時傳回 false。

and(<expression1>, <expression2>, ...)
參數 必要 類型​ 描述
<expression1>, <expression2>, ... Yes 布林值 要檢查的運算式
傳回值 類型 描述
[True] 或 [False] 布林值 當所有表達式都為 true 時,傳回 true。 至少一個運算式為 False 時,則傳回 False。

範例 1

這些範例會檢查指定的布爾值是否全部為 true:

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

並傳回下列結果:

  • 第一個範例:兩個運算式都是 True,所以會傳回 true
  • 第二個範例:一個運算式為 False,所以會傳回 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,所以會傳回 false

陣列

從單一指定輸入傳回的陣列。 關於多個輸入的資訊,請參閱 createArray()

array('<value>')
參數 必要 類型​ 描述
<value> Yes String 建立陣列的字串
傳回值 類型 描述
[<>] 陣列 包含單一指定輸入的陣列

範例

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

array('hello')

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

B

base64

傳回字串的 base64 編碼版本。

注意

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

base64('<value>')
參數 必要 類型​ 描述
<value> Yes String 輸入字串
傳回值 類型 描述
<base64-string> String 輸入字串的 base64 編碼版本

範例

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

base64('hello')

並傳回此結果:"aGVsbG8="

base64ToBinary

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

注意

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

base64ToBinary('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換的 base64 編碼字串
傳回值 類型 描述
<binary-for-base64-string> String base64 編碼字串的二進位版本

範例

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

base64ToBinary('aGVsbG8=')

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

base64ToString

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

注意

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

base64ToString('<value>')
參數 必要 類型​ 描述
<value> Yes String 要解碼的 base64 編碼字串
傳回值 類型 描述
<decoded-base64-string> String 傳回 base64 編碼字串的字串版本

範例

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

base64ToString('aGVsbG8=')

並傳回此結果:"hello"

binary

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

binary('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換的字串
傳回值 類型 描述
<binary-for-input-value> String 指定字串的base64編碼二進位版本

範例

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

本文

在運行時間傳回動作的 body 輸出。 的 actions('<actionName>').outputs.body速記。 請參閱 actions()

body('<actionName>')
參數 必要 類型​ 描述
<actionName> Yes String 您要之 body 動作輸出的名稱
傳回值 類型 描述
<action-body-output> String body指定動作的輸出

範例

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

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>)
參數 必要 類型​ 描述
<value> Yes 任意 要轉換成布爾值的值。

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

傳回值 類型 描述
truefalse 布林值 指定值的布爾值版本。

輸出

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

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

C

chunk

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

chunk('<collection>', '<length>')
chunk([<collection>], '<length>')
參數 必要 類型​ 描述
<collection> Yes 字串或陣列 要分割的集合
<length> Yes 每個區塊的長度
傳回值 類型 描述
<collection> 陣列 具有指定長度的區塊陣列

範例 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] ]

coalesce

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

coalesce(<object_1>, <object_2>, ...)
參數 必要 類型​ 描述
<object_1>, <object_2>, ... Yes 任何類型,可以是混合類型 要檢查是否有 Null 的一個或多個項目
傳回值 類型 描述
<first-non-null-item> 任意 第一個不是 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>, ... Yes String 要結合的至少兩個字串
傳回值 類型 描述
<text1text2...> String 從合併的輸入字串建立的字串。



注意:結果的長度不得超過 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>')

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

  • 要尋找「子字串」的「字串」
  • 要尋找「值」的「陣列」
  • 要尋找「索引碼」的「字典」
參數 必要 類型​ 描述
<collection> Yes 字串、陣列或字典 要檢查的集合
<value> Yes 個別的字串、陣列或字典 要尋找的項目
傳回值 類型 描述
[True] 或 [False] 布林值 找到項目時,傳回 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>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
<destinationTimeZone> Yes String 目標時區的名稱。 如需時區名稱,請檢閱 Microsoft Windows 默認時區
<format> No String 數值格式字串,可以是單一 格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<converted-timestamp> String 時間戳會轉換成目標時區,而沒有時區 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

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

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<converted-timestamp> String 轉換為目標時區的時間戳記

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<converted-timestamp> String 轉換為 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>, ... Yes 任何類型,但不能是混合 用來建立陣列的至少兩個項目
傳回值 類型 描述
[<object1>, <object2>, ...] 陣列 從所有輸入項目建立的陣列

範例

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

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

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

D

dataUri

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

dataUri('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換的字串
傳回值 類型 描述
<data-uri> String 輸入字串的資料 URI

範例

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

dataUri('hello')

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

dataUriToBinary

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

dataUriToBinary('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換的資料 URI
傳回值 類型 描述
<binary-for-data-uri> String 資料 URI 的二進位版本

範例

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

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

並傳回此結果:

"01100100011000010111010001100001001110100111010001100101011110000111010000101111011100000 1101100011000010110100101101110001110110110001101101000011000010111001001110011011001010111 0100001111010111010101110100011001100010110100111000001110110110001001100001011100110110010 10011011000110100001011000110000101000111010101100111001101100010010001110011100000111101"

dataUriToString

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

dataUriToString('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換的資料 URI
傳回值 類型 描述
<string-for-data-uri> String 資料 URI 的字串版本

範例

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

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

並傳回此結果:"hello"

dateDifference

以時間範圍傳回兩個時間戳之間的差異。 此函式會 startDateendDate減去 ,並以字串格式傳回時間戳的結果。

dateDifference('<startDate>', '<endDate>')
參數 必要 類型​ 描述
<startDate> Yes String 包含時間戳的字串
<endDate> Yes String 包含時間戳的字串
傳回值 類型 描述
<timespan> String 兩個時間戳之間的差異,也就是字串格式的時間戳。 如果 startDate 比 最近 endDate,則結果為負值。

範例

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

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

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

dayOfMonth

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

dayOfMonth('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
傳回值 類型 描述
<day-of-month> 整數 在指定時間戳記中的當月日期

範例

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

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

並傳回此結果:15

dayOfWeek

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

dayOfWeek('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
傳回值 類型 描述
<day-of-week> 整數 在指定時間戳記上那一週的第幾天,其中星期日是 0、星期一是 1,依此類推

範例

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

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

並傳回此結果:4

dayOfYear

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

dayOfYear('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
傳回值 類型 描述
<day-of-year> 整數 在指定時間戳記上那一年的第幾天

範例

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

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

並傳回此結果:74

decimal

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

注意

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

decimal('<value>')
參數 必要 類型​ 描述
<value> Yes String 字串中的十進位數
傳回值 類型 描述
<decimal> 十進位數字 輸入字串的十進位數

範例 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>')
參數 必要 類型​ 描述
<value> Yes String 要解碼的資料 URI 字串
傳回值 類型 描述
<binary-for-data-uri> String 資料 URI 字串的二進位版本

範例

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

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

並傳回此結果:

"01100100011000010111010001100001001110100111010001100101011110000111010000101111011100000 1101100011000010110100101101110001110110110001101101000011000010111001001110011011001010111 0100001111010111010101110100011001100010110100111000001110110110001001100001011100110110010 10011011000110100001011000110000101000111010101100111001101100010010001110011100000111101"

decodeUriComponent

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

decodeUriComponent('<value>')
參數 必要 類型​ 描述
<value> Yes String 其逸出字元需要解碼的字串
傳回值 類型 描述
<decoded-uri> String 更新後的字串,其中逸出字元已解碼

範例

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

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

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

div

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

div(<dividend>, <divisor>)
參數 必要 類型​ 描述
<dividend> Yes 整數或浮點數 要除以「除數」的數字
<divisor> Yes 整數或浮點數 除股息但不能為零的數位
傳回值 類型 描述
<quotient-result> 整數或浮點數 將第一個數位除以第二個數字的結果。 如果除數或除數具有 Float 類型,結果就會有 Float 類型。



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

範例 1

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

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

範例 2

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

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

E

encodeUriComponent

傳回字串的統一資源識別項 (URI) 編碼版本,以逸出字元取代 URL 中的 Unsafe 字元。 請考慮使用 uriComponent(),而非 encodeUriComponent()。 雖然這兩個函數的運作方式相同,但是較常使用 uriComponent()

注意

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

encodeUriComponent('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換成 URI 編碼格式的字串
傳回值 類型 描述
<encoded-uri> String 具有逸出字元的 URI 編碼字串

範例

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

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

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

empty

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

empty('<collection>')
empty([<collection>])
參數 必要 類型​ 描述
<collection> Yes 字串、陣列或物件 要檢查的集合
傳回值 類型 描述
[True] 或 [False] 布林值 若集合是空的,傳回 True。 若不是空的,傳回 False。

範例

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

empty('')
empty('abc')

並傳回下列結果:

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

endsWith

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

endsWith('<text>', '<searchText>')
參數 必要 類型​ 描述
<text> String 要檢查的字串
<searchText> Yes String 要尋找的結尾子字串
傳回值 類型 描述
[True] 或 [False] 布林值 找到結尾子字串時,傳回 True。 找不到項目時,傳回 False。

範例 1

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

endsWith('hello world', 'world')

並傳回此結果:true

範例 2

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

endsWith('hello world', 'universe')

並傳回此結果:false

等於

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

equals('<object1>', '<object2>')
參數 必要 類型​ 描述
<object1>, <object2> Yes 各種 要比較的值、運算式或物件
傳回值 類型 描述
[True] 或 [False] 布林值 當兩個項目相等時,傳回 True。 當兩個項目不相等時,傳回 False。

範例

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

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

並傳回下列結果:

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

F

第一

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

first('<collection>')
first([<collection>])
參數 必要 類型​ 描述
<collection> Yes 字串或陣列 要從中尋找第一個項目的集合
傳回值 類型 描述
<first-collection-item> 任意 集合中的第一個項目

範例

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

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

並傳回下列結果:

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

float

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

float('<value>', '<locale>'?)
參數 必要 類型​ 描述
<value> Yes String 字串,具有要轉換的有效浮點數。 最小值和最大值與 float 數據類型的限制相同。
<地區設定> No String 要使用的 RFC 4646 地區設定程式代碼。

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

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

範例 1

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

float('10,000.333')

並傳回此結果:10000.333

範例 2

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

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

並傳回此結果:10000.333

formatDateTime

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

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

範例

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>')
參數 必要 類型​ 描述
<actionName> Yes String 輸出具有您想要之索引鍵值的動作
<key> Yes String 您想要其值之索引鍵的名稱
傳回值 類型 描述
[<array-with-key-values>] 陣列 數位,其中包含符合指定索引鍵的所有值

範例

這個範例會從指定動作的表單資料或表單編碼輸出中的 「Subject」 索引鍵值建立陣列:

formDataMultiValues('Send_an_email', 'Subject')

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

formDataValue

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

formDataValue('<actionName>', '<key>')
參數 必要 類型​ 描述
<actionName> Yes String 輸出具有您想要之索引鍵值的動作
<key> Yes String 您想要其值之索引鍵的名稱
傳回值 類型 描述
<key-value> String 指定索引鍵中的值

範例

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

formDataValue('Send_an_email', 'Subject')

並傳回主旨文字做為字串,例如: "Hello world"

formatNumber

以以指定格式為基礎的字串傳回數位。

formatNumber(<number>, <format>, <locale>?)
參數 必要 類型​ 描述
<number> Yes 整數或雙精度浮點數 您想要格式化的值。
<format> Yes String 複合格式字串,指定您想要使用的格式。 如需支持的數值格式字串,請參閱 標準數值格式字串,這些字串受到number.ToString(<format>, <locale>) 支援。
<地區設定> No String 要使用的地區設定,如 所 number.ToString(<format>, <locale>)支援。 如果未指定,則值為 en-us。 如果 地區設定 不是有效的值,就會產生錯誤。
傳回值 類型 描述
<formatted-number> String 以您指定之格式的字串表示指定的數位。 您可以將這個傳回值 int 轉換成 或 float

範例 1

假設您要格式化數位 1234567890。 本範例會將該數位格式化為字串 「1,234,567,890.00」。。

formatNumber(1234567890, '0,0.00', 'en-us')

*範例 2”

假設您要格式化數位 1234567890。 本範例會將數位格式化為字串 “1.234.567.890,00”。

formatNumber(1234567890, '0,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> Yes 整數 要新增的時間單位數目
<timeUnit> Yes String interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
<format> No String 單一格式規範自訂格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,則會產生錯誤,指出所提供的格式無效,而且必須是數值格式字串。
傳回值 類型 描述
<updated-timestamp> String 目前時間戳記加上指定的時間單位數字

範例 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> Yes 整數 要減去的指定時間單位數字
<timeUnit> Yes String interval 搭配使用的時間單位:"Second"、"Minute"、"Hour"、"Day"、"Week"、"Month"、"Year"
<format> No String 單一格式規範自訂格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。

如果格式不是有效的值,則會產生錯誤,指出所提供的格式無效,而且必須是數值格式字串。
傳回值 類型 描述
<updated-timestamp> String 目前時間戳記減去指定的時間單位數字

範例 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>')
參數 必要 類型​ 描述
<value> Yes 整數、浮點數或字串 要檢查其是否大於第二個值的第一個值
<compareTo> Yes 個別的整數、浮點數或字串 比較值
傳回值 類型 描述
[True] 或 [False] 布林值 當第一個值大於第二個值時,傳回 True。 當第一個值等於或小於第二個值時,傳回 False。

範例

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

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

並傳回下列結果:

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

greaterOrEquals

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

greaterOrEquals(<value>, <compareTo>)
greaterOrEquals('<value>', '<compareTo>')
參數 必要 類型​ 描述
<value> Yes 整數、浮點數或字串 要檢查其是否大於或等於第二個值的第一個值
<compareTo> Yes 個別的整數、浮點數或字串 比較值
傳回值 類型 描述
[True] 或 [False] 布林值 當第一個值大於或等於第二個值時,傳回 True。 當第一個值小於第二個值時,傳回 False。

範例

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

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

並傳回下列結果:

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

guid

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

guid()

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

guid('<format>')
參數 必要 類型​ 描述
<format> No String 所傳回 GUID 的單一格式規範。 預設格式為 "D",但您可以使用 "N"、"D"、"B"、"P" 或 "X"。
傳回值 類型 描述
<GUID-value> String 隨機產生的 GUID

範例

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

guid('P')

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

I

if

檢查運算式是 True 或 False。 根據結果,傳回指定的值。 參數會從左至右進行評估。

if(<expression>, <valueIfTrue>, <valueIfFalse>)
參數 必要 類型​ 描述
<expression> Yes 布林值 要檢查的運算式
<valueIfTrue> Yes 任意 運算式為 True 時要傳回的值
<valueIfFalse> Yes 任意 運算式為 False 時要傳回的值
傳回值 類型 描述
<specified-return-value> 任意 根據運算式為 True 或 False,傳回的指定值

範例

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

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

indexOf

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

indexOf('<text>', '<searchText>')
參數 必要 類型​ 描述
<text> String 具有子字串要尋找的字串
<searchText> Yes String 要尋找的子字串
傳回值 類型 描述
<index-value> 整數 所指定子字串的起始位置或索引值。

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

範例

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

indexOf('hello world', 'world')

並傳回此結果:6

int

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

int('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換之整數的字串版本。 最小值和最大值與整數數據類型的限制相同。
傳回值 類型 描述
<integer-result> 整數 指定字串的整數版本。 最小值和最大值與整數數據類型的限制相同。

範例

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

int('10')

並傳回此結果:10

isFloat

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

isFloat('<string>', '<locale>'?)
參數 必要 類型​ 描述
<value> Yes String 要檢查的字串
<地區設定> No String 要使用的 RFC 4646 地區設定程式代碼
傳回值 類型 描述
<boolean-result> 布林值 布爾值,指出字串是否為浮點數

範例 1

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

isFloat('10,000.00')

並傳回此結果:true

範例 2

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

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

並傳回此結果:true

isInt

傳回布爾值,指出字串是否為整數。

isInt('<string>')
參數 必要 類型​ 描述
<string> Yes String 要檢查的字串
傳回值 類型 描述
<boolean-result> 布林值 布爾值,指出字串是否為整數

範例

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

isInt('10')

並傳回此結果:true

項目

在陣列的重複動作內使用時,在動作的目前反覆運算期間傳回陣列中的目前專案。 您也可以從該項目的屬性取得值。

item()
傳回值 類型 描述
<current-array-item> 任意 動作目前反覆運算陣列中的目前專案

範例

這個範例會從 for-each 循環目前反復專案內 “Send_an_email” 動作的目前訊息中取得 body 元素:

item().body

項目

從 for-each 循環中的每個週期傳回目前的專案。 在 for-each 循環內使用此函式。

items('<loopName>')
參數 必要 類型​ 描述
<loopName> Yes String for-each 循環的名稱
傳回值 類型 描述
<專案> 任意 指定 for-each 迴圈中目前迴圈中的專案

範例

這個範例會從指定的 for-each 迴圈取得目前的專案:

items('myForEachLoopName')

iterationIndexes

傳回 Until 迴圈內目前反覆專案的索引值。 您可以在巢狀 Until 迴圈內使用此函式。

iterationIndexes('<loopName>')
參數 必要 類型​ 描述
<loopName> Yes String Until 循環的名稱
傳回值 類型 描述
<index> 整數 指定 Until 迴圈內目前反覆專案的索引值

範例

此範例會建立計數器變數,並在 Until 迴圈中的每個反覆項目期間,將該變數遞增一個,直到計數器值達到五個為止。 此範例也會建立變數,以追蹤每個反覆專案的目前索引。 在 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 架構,函式可能會根據輸入傳回結構與預期格式大相徑庭的結果。

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

參數 必要 類型​ 描述
<value> Yes 字串或 XML 要轉換的字串或 XML
傳回值 類型 描述
<JSON-result> 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>, ... Yes 陣列或物件,但不可以兩者並存 您想要其中「只有」共同項目的集合
傳回值 類型 描述
<common-items> 個別的陣列或物件 在指定的多個集合中,「只有」共同項目的集合

範例

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

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

並傳回的「只有」這些項目的陣列:[1, 2]

join

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

join([<collection>], '<delimiter>')
參數 必要 類型​ 描述
<collection> Yes 陣列 要將其項目聯結的陣列
<delimiter> Yes String 在結果字串中,要出現在每個字元之間的分隔符號
傳回值 類型 描述
<char1><delimiter><char2><delimiter>... String 從指定數位中所有專案建立的結果字串。



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

範例

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

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

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

L

最後一

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

last('<collection>')
last([<collection>])
參數 必要 類型​ 描述
<collection> Yes 字串或陣列 要從中尋找最後一個項目的集合
傳回值 類型 描述
<last-collection-item> 個別的字串或陣列 集合中的最後一個項目

範例

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

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

並傳回下列結果:

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

lastIndexOf

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

lastIndexOf('<text>', '<searchText>')
參數 必要 類型​ 描述
<text> String 具有子字串要尋找的字串
<searchText> Yes String 要尋找的子字串
傳回值 類型 描述
<ending-index-value> 整數 指定的子字串最後一次出現的起始位置或索引值。

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

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

  • 如果字串與子字串值都是空的,則函式會傳 0回 。

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

範例

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

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

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

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

length

傳回集合中的項目數目。

length('<collection>')
length([<collection>])
參數 必要 類型​ 描述
<collection> Yes 字串或陣列 要計算其項目數的集合
傳回值 類型 描述
<length-or-count> 整數 集合中的項目數目

範例

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

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

並傳回此結果:4

less

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

less(<value>, <compareTo>)
less('<value>', '<compareTo>')
參數 必要 類型​ 描述
<value> Yes 整數、浮點數或字串 要檢查其是否小於第二個值的第一個值
<compareTo> Yes 個別的整數、浮點數或字串 比較項目
傳回值 類型 描述
[True] 或 [False] 布林值 當第一個值小於第二個值時,傳回 True。 當第一個值等於或大於第二個值時,傳回 False。

範例

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

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

並傳回下列結果:

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

lessOrEquals

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

lessOrEquals(<value>, <compareTo>)
lessOrEquals('<value>', '<compareTo>')
參數 必要 類型​ 描述
<value> Yes 整數、浮點數或字串 要檢查其是否小於或等於第二個值的第一個值
<compareTo> Yes 個別的整數、浮點數或字串 比較項目
傳回值 類型 描述
[True] 或 [False] 布林值 當第一個值小於或等於第二個值時,傳回 True。 當第一個值大於第二個值時,傳回 False。

範例

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

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

並傳回下列結果:

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

listCallbackUrl

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

listCallbackUrl()
傳回值 類型 描述
<callback-URL> String 觸發程式或動作的回呼 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*>"

max

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

max(<number1>, <number2>, ...)
max([<number1>, <number2>, ...])
參數 必要 類型​ 描述
<number1>, <number2>, ... Yes 整數、浮點數或兩者並存 您需要其中最大值的數字集合
[<number1>, <number2>, ...] Yes 陣列 - 整數、浮點數或兩者並存 您需要其中最大值的數字陣列
傳回值 類型 描述
<max-value> 整數或浮點數 所指定陣列或數字集合中的最大值

範例

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

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

並傳回此結果:3

分鐘

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

min(<number1>, <number2>, ...)
min([<number1>, <number2>, ...])
參數 必要 類型​ 描述
<number1>, <number2>, ... Yes 整數、浮點數或兩者並存 您需要其中最小值的數字集合
[<number1>, <number2>, ...] Yes 陣列 - 整數、浮點數或兩者並存 您需要其中最小值的數字陣列
傳回值 類型 描述
<min-value> 整數或浮點數 所指定數字集合或陣列中的最小值

範例

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

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

並傳回此結果:1

mod

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

mod(<dividend>, <divisor>)
參數 必要 類型​ 描述
<dividend> Yes 整數或浮點數 要除以「除數」的數字
<divisor> Yes 整數或浮點數 除股息但不能為零的數位
傳回值 類型 描述
<modulo-result> 整數或浮點數 第一個數字除以第二個數字的餘數

範例 1

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

mod(3, 2)

並傳回此結果:1

範例 2

此範例顯示,如果一或兩個值都是負值,結果會符合股息的正負號:

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

此範例會傳回下列結果:

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

mul

傳回將兩數相乘的乘積。

mul(<multiplicand1>, <multiplicand2>)
參數 必要 類型​ 描述
<multiplicand1> Yes 整數或浮點數 要與「被乘數 2」 相乘的數字
<multiplicand2> Yes 整數或浮點數 要與「被乘數 1」 相乘的數字
傳回值 類型 描述
<product-result> 整數或浮點數 第一個數字與第二個數字相乘的乘積

範例

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

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

並傳回下列結果:

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

multipartBody

傳回動作輸出中具有多個部分之特定元件的主體。

multipartBody('<actionName>', <index>)
參數 必要 類型​ 描述
<actionName> Yes String 具有多個部分輸出之動作的名稱
<index> Yes 整數 您想要之元件的索引值
傳回值 類型 描述
<身體> String 指定元件的本文

not

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

not(<expression>)
參數 必要 類型​ 描述
<expression> Yes 布林值 要檢查的運算式
傳回值 類型 描述
[True] 或 [False] 布林值 運算式為 False 時,傳回 True。 運算式為 True 時,傳回 False。

範例 1

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

not(false)
not(true)

並傳回下列結果:

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

範例 2

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

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

並傳回下列結果:

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

nthIndexOf

傳回開始位置或索引值, 其中第 n次出現子字串出現在字串中。

nthIndexOf('<text>', '<searchText>', <occurrence>)
參數 必要 類型​ 描述
<text> String 包含要尋找之子字串的字串
<searchText> Yes String 要尋找的子字串
<occurrence> Yes 整數 數位,指定要 尋找之子字串的第 n個出現次數。 如果 出現是負數 ,請從結尾開始搜尋。
傳回值 類型 描述
<index-value> 整數 第 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>, ... Yes 布林值 要檢查的運算式
傳回值 類型 描述
[True] 或 [False] 布林值 至少有一個運算式是 True 時,傳回 True。 當所有表達式都是 false 時,傳回 false。

範例 1

這些範例會檢查是否至少有一個運算式是 True:

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

並傳回下列結果:

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

範例 2

這些範例會檢查是否至少有一個運算式是 True:

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

並傳回下列結果:

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

輸出

傳回動作在運行時間的輸出。

outputs('<actionName>')
參數 必要 類型​ 描述
<actionName> Yes String 您要之動作輸出的名稱
傳回值 類型 描述
<output> String 指定動作的輸出

範例

這個範例會從 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

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

parameters('<parameterName>')
參數 必要 類型​ 描述
<parameterName> Yes String 您想要其值的參數名稱
傳回值 類型 描述
<parameter-value> 任意 指定參數的值

範例

假設您有此 JSON 值:

{
  "fullName": "Sophia Owen"
}

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

parameters('fullName')

並傳回此結果:"Sophia Owen"

parseDateTime

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

parseDateTime('<timestamp>', '<locale>'?, '<format>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳記的字串
<地區設定> No String 要使用的地區設定。

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

如果 地區設定 不是有效的值,就會產生錯誤。
<format> No String 數值格式字串,可以是單一 格式規範自定義格式模式。 時間戳記的預設格式為 "o" (yyyy-MM-ddTHH:mm:ss:fffffffK),其符合 ISO 8601 並保留時區資訊。 如果未指定格式,請嘗試使用與所提供地區設定相容的多種格式進行剖析。 如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<parsed-timestamp> String “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('10/20/2014 15h', 'en-US', 'MM/dd/yyyy HH\h') // Returns '2014-10-20T15:00:00.0000000'.

R

rand

從指定範圍傳回隨機整數 (不包含範圍中的末端數字)。

rand(<minValue>, <maxValue>)
參數 必要 類型​ 描述
<minValue> Yes 整數 範圍中的最小整數
<maxValue> Yes 整數 在範圍中,在函式所能傳回最大整數後面的整數
傳回值 類型 描述
<random-result> 整數 從指定範圍傳回的隨機整數

範例

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

rand(1, 5)

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

range

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

range(<startIndex>, <count>)
參數 必要 類型​ 描述
<startIndex> Yes 整數 作為第一個項目起始陣列的整數值
<計數> Yes 整數 陣列中的整數數目。 參數 count 值必須是不超過 100,000 的正整數。



注意:和 值的總 startIndexcount 不得超過 2,147,483,647。
傳回值 類型 描述
[<range-result>] 陣列 從指定索引開始的整數陣列

範例

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

range(1, 4)

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

removeProperty

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

removeProperty(<object>, '<property>')
參數 必要 類型​ 描述
<object> Yes Object 您要從中移除屬性的 JSON 物件
<property> Yes String 要移除之屬性的名稱
傳回值 類型 描述
<updated-object> Object 未指定屬性的更新 JSON 物件

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

removeProperty(<object>['<parent-property>'], '<child-property>')
參數 必要 類型​ 描述
<object> Yes Object 您要移除其屬性的 JSON 物件
<parent-property> Yes String 具有您想要移除之子屬性的父屬性名稱
<child-property> Yes String 要移除之子屬性的名稱
傳回值 類型 描述
<updated-object> Object 已更新的 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

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

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

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

replace('<text>', '<oldText>', '<newText>')
參數 必要 類型​ 描述
<text> String 有子字串要取代的字串
<oldText> Yes String 要取代的子字串
<newText> Yes String 取代字串
傳回值 類型 描述
<updated-text> String 取代子字串後的更新字串

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

範例

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

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

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

result

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

注意

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

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

result('<scopedActionName>')
參數 必要 類型​ 描述
<scopedActionName> Yes String 您想要在該範圍內最上層動作輸入與輸出的範圍動作名稱
傳回值 類型 描述
<array-object> Array 物件 陣列,包含指定範圍內每個最上層動作的輸入和輸出陣列

範例

此範例會使用 result() 動作中的 For_each 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>])
參數 必要 類型​ 描述
<collection> Yes 陣列 要反轉的集合
傳回值 類型 描述
[<updated-collection>] 陣列 反轉集合

範例

此範例會反轉整數數位:

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

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

S

setProperty

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

setProperty(<object>, '<property>', <value>)
參數 必要 類型​ 描述
<object> Yes Object 您要設定其屬性的 JSON 物件
<property> Yes String 要設定之現有或新屬性的名稱
<value> Yes 任意 要為指定之屬性設定的值

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

setProperty(<object>, '<parent-property>', setProperty(<object>['parentProperty'], '<child-property>', <value>))
參數 必要 類型​ 描述
<object> Yes Object 您要設定其屬性的 JSON 物件
<parent-property> Yes String 具有您想要設定之子屬性之父屬性的名稱
<child-property> Yes String 要設定之子屬性的名稱
<value> Yes 任意 要為指定之屬性設定的值
傳回值 類型 描述
<updated-object> Object 您所設定屬性的已更新 JSON 物件

範例 1

這個範例會 surName 設定 JSON 物件中的 屬性,這個物件會使用 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子屬性,這個屬性會從字串轉換成 JSON。 函式會將指定的值指派給 屬性,並傳回更新的物件:

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

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

skip([<collection>], <count>)
參數 必要 類型​ 描述
<collection> Yes 陣列 您想要從中移除項目的集合
<計數> Yes 整數 正整數,表示要移除的前端項目數量
傳回值 類型 描述
[<updated-collection>] 陣列 移除指定項目之後的更新集合

範例

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

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

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

slice

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

slice('<text>', <startIndex>, <endIndex>?)
參數 必要 類型​ 描述
<text> String 包含要尋找之子字串的字串
<startIndex> Yes 整數 以零起始的起始位置或值,用於開始搜尋子字串的位置

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

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

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

- 如果 endIndex 為負數,請結束搜尋字串長度和 endIndex 總和的索引值。
傳回值 類型 描述
<slice-result> String 包含找到子字串的新字串

範例

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 ''.

sort

排序集合中的專案。 您可以使用任何包含簡單類型的索引鍵來排序集合物件。

sort([<collection>], <sortBy>?)
參數 必要 類型​ 描述
<collection> Yes 陣列 包含要排序之專案的集合
<sortBy> No String 用於排序集合物件的索引鍵
傳回值 類型 描述
[<updated-collection>] 陣列 已排序的集合

範例 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

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

split('<text>', '<delimiter>')
參數 必要 類型​ 描述
<text> String 根據原始字串中指定的分隔符號來分隔成子字串的字串
<delimiter> Yes String 做為分隔符號的原始字串中的字元
傳回值 類型 描述
[<substring1>,<substring2>,...] 陣列 包含原始字串中子字串的陣列,以逗號分隔

範例 1

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

split('a_b_c', '_')

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

範例 2

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

split('a_b_c', ' ')

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

startOfDay

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

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 指定的時間戳記,但以當天的零小時標記開始

範例

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

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

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

startOfHour

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

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 指定的時間戳記,但以小時的零分鐘標記開始

範例

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

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

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

startOfMonth

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

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 指定的時間戳記,但以當月第一天的零小時標記開始

範例 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>')
參數 必要 類型​ 描述
<text> String 要檢查的字串
<searchText> Yes String 要尋找的起始字串
傳回值 類型 描述
[True] 或 [False] 布林值 找到起始子字串時,傳回 True。 找不到項目時,傳回 False。

範例 1

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

startsWith('hello world', 'hello')

並傳回此結果:true

範例 2

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

startsWith('hello world', 'greetings')

並傳回此結果:false

string

傳回值的字串版本。

string(<value>)
參數 必要 類型​ 描述
<value> Yes 任意 要進行轉換的 值。 如果此值為 null 或評估為 null,則值會轉換成空字串 ("") 值。



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

範例 1

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

string(10)

並傳回此結果:"10"

範例 2

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

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

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

sub

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

sub(<minuend>, <subtrahend>)
參數 必要 類型​ 描述
<minuend> Yes 整數或浮點數 要從中減去「減數」的數字
<subtrahend> Yes 整數或浮點數 從「被減數」中減去的數字
傳回值 類型 描述
<result> 整數或浮點數 從第一個數字減去第二個數字的結果

範例

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

sub(10.3, .3)

並傳回此結果:10

substring

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

substring('<text>', <startIndex>, <length>)
參數 必要 類型​ 描述
<text> String 您需要其中字元的字串
<startIndex> Yes 整數 等於或大於 0 的正數,作為起始位置或索引值
<length> No 整數 子字串中您需要的字元數正數

注意

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

傳回值 類型 描述
<substring-result> String 具有指定字元數目的子字串,並以來源字串中的指定索引位置起始

範例

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

substring('hello world', 6, 5)

並傳回此結果:"world"

subtractFromTime

從時間戳記減去時間單位數字。 另請參閱 getPastTime

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<updated-timestamp> String 時間戳記減去指定的時間單位數字

範例 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>)
參數 必要 類型​ 描述
<collection> Yes 字串或陣列 您需要其中項目的集合
<計數> Yes 整數 正整數,表示您需要的前端項目數量
傳回值 類型 描述
<子集>或 [<子集>] 個別的字串或陣列 從原始集合前端取得指定項目數量的字串或陣列

範例

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

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

並傳回下列結果:

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

刻度

傳回自 10001 年 1 月 1 日 12:00:00:00 午夜(或 C# 中的 DateTime.Ticks)以來的刻度數,最多到指定的時間戳。 如需詳細資訊,請參閱本主題: DateTime.Ticks 屬性 (System)

ticks('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 時間戳記的字串
傳回值 類型 描述
<ticks-number> 整數 自指定時間戳之後的刻度數目

toLower

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

toLower('<text>')
參數 必要 類型​ 描述
<text> String 要以小寫格式傳回的字串
傳回值 類型 描述
<lowercase-text> String 小寫格式的原始字串

範例

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

toLower('Hello World')

並傳回此結果:"hello world"

toUpper

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

toUpper('<text>')
參數 必要 類型​ 描述
<text> String 要以大寫格式傳回的字串
傳回值 類型 描述
<uppercase-text> String 大寫格式的原始字串

範例

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

toUpper('Hello World')

並傳回此結果:"HELLO WORLD"

觸發程序 (trigger)

在運行時間傳回觸發程式的輸出,或來自其他 JSON 名稱和值組的值,您可以指派給表示式。

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

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

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

trigger()
傳回值 類型 描述
<trigger-output> String 運行時間觸發程序的輸出

triggerBody

在運行時間傳回觸發程序的 body 輸出。 的 trigger().outputs.body速記。 請參閱 trigger()

triggerBody()
傳回值 類型 描述
<trigger-body-output> String body觸發程序的輸出

triggerFormDataMultiValues

傳回數位,其值符合觸發程式表單資料表單編碼輸出中的索引鍵名稱。

triggerFormDataMultiValues('<key>')
參數 必要 類型​ 描述
<key> Yes String 您想要其值之索引鍵的名稱
傳回值 類型 描述
[<array-with-key-values>] 陣列 數位,其中包含符合指定索引鍵的所有值

範例

此範例會從 RSS 觸發程式的表單資料或表單編碼輸出中的 「feedUrl」 索引鍵值建立陣列:

triggerFormDataMultiValues('feedUrl')

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

triggerFormDataValue

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

triggerFormDataValue('<key>')
參數 必要 類型​ 描述
<key> Yes String 您想要其值之索引鍵的名稱
傳回值 類型 描述
<key-value> String 指定索引鍵中的值

範例

此範例會從 RSS 觸發程式的表單資料或表單編碼輸出中的 「feedUrl」 索引鍵值建立字串:

triggerFormDataValue('feedUrl')

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

triggerMultipartBody

傳回觸發程序輸出中具有多個部分之特定元件的主體。

triggerMultipartBody(<index>)
參數 必要 類型​ 描述
<index> Yes 整數 您想要之元件的索引值
傳回值 類型 描述
<身體> String 觸發程式多部分輸出中指定元件的主體

triggerOutputs

在運行時間傳回觸發程序的輸出,或來自其他 JSON 名稱和值組的值。 的 trigger().outputs速記。 請參閱 trigger()

triggerOutputs()
傳回值 類型 描述
<trigger-output> String 運行時間觸發程序的輸出

修剪

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

trim('<text>')
參數 必要 類型​ 描述
<text> String 要為其移除開頭和尾端空白字元的字串
傳回值 類型 描述
<updatedText> String 不含開頭或尾端空白字元的原始字串更新版本

範例

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

trim(' Hello World  ')

並傳回此結果:"Hello World"

U

union

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

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

範例

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

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

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

uriComponent

傳回字串的統一資源識別項 (URI) 編碼版本,以逸出字元取代 URL 中的 Unsafe 字元。 使用此函式而非 encodeUriComponent()。 雖然這兩個函數的運作方式相同,但是較常使用 uriComponent()

uriComponent('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換成 URI 編碼格式的字串
傳回值 類型 描述
<encoded-uri> String 具有逸出字元的 URI 編碼字串

範例

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

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

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

uriComponentToBinary

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

uriComponentToBinary('<value>')
參數 必要 類型​ 描述
<value> Yes String 要轉換的 URI 編碼字串
傳回值 類型 描述
<binary-for-encoded-uri> String URI 編碼字串的二進位版本。 二進位內容是以 base64 編碼,而且由 $content 表示。

範例

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

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

並傳回此結果:

"001000100110100001110100011101000111000000100101001100 11010000010010010100110010010001100010010100110010010001 10011000110110111101101110011101000110111101110011011011 110010111001100011011011110110110100100010"

uriComponentToString

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

uriComponentToString('<value>')
參數 必要 類型​ 描述
<value> Yes String 要解碼的 URI 編碼字串
傳回值 類型 描述
<decoded-uri> String URI 編碼字串的已解碼版本

範例

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

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

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

uriHost

host傳回統一資源標識碼的值(URI)。

uriHost('<uri>')
參數 必要 類型​ 描述
<uri> Yes String 您想要其 host 值的 URI
傳回值 類型 描述
<host-value> String host指定 URI 的值

範例

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

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

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

uriPath

path傳回統一資源標識碼的值(URI)。

uriPath('<uri>')
參數 必要 類型​ 描述
<uri> Yes String 您想要其 path 值的 URI
傳回值 類型 描述
<path-value> String path指定 URI 的值。 如果沒有 path 值,則傳回 「/」 字元。

範例

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

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

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

uriPathAndQuery

path傳回統一資源標識碼 (URI) 的和 query 值。

uriPathAndQuery('<uri>')
參數 必要 類型​ 描述
<uri> Yes String 您想要其 pathquery 值的 URI
傳回值 類型 描述
<path-query-value> String 指定 path URI 的 和 query 值。 如果未 path 指定值,則傳回 「/」 字元。

範例

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

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

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

uriPort

port傳回統一資源標識碼的值(URI)。

uriPort('<uri>')
參數 必要 類型​ 描述
<uri> Yes String 您想要其 port 值的 URI
傳回值 類型 描述
<port-value> 整數 port指定 URI 的值。 如果未 port 指定值,請傳回通訊協議的預設埠。

範例

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

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

並傳回此結果:8080

uriQuery

query傳回統一資源標識碼的值(URI)。

uriQuery('<uri>')
參數 必要 類型​ 描述
<uri> Yes String 您想要其 query 值的 URI
傳回值 類型 描述
<query-value> String query指定 URI 的值

範例

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

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

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

uriScheme

scheme傳回統一資源標識碼的值(URI)。

uriScheme('<uri>')
參數 必要 類型​ 描述
<uri> Yes String 您想要其 scheme 值的 URI
傳回值 類型 描述
<scheme-value> String scheme指定 URI 的值

範例

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

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

並傳回此結果:"http"

utcNow

傳回目前的時間戳記。

utcNow('<format>')

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

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

如果格式不是有效的值,就會產生錯誤。
傳回值 類型 描述
<current-timestamp> String 目前的日期和時間

範例 1

假設今天是 2018 年 4 月 15 日下午 1:00:00。 此範例會取得目前的時間戳記:

utcNow()

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

範例 2

假設今天是 2018 年 4 月 15 日下午 1:00:00。 此範例會使用選擇性的 "D" 格式取得目前時間戳記:

utcNow('D')

並傳回此結果:"Sunday, April 15, 2018"

V

variables

傳回指定變數的值。

variables('<variableName>')
參數 必要 類型​ 描述
<variableName> Yes String 您想要其值之變數的名稱
傳回值 類型 描述
<variable-value> 任意 指定變數的值

範例

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

variables('numItems')

並傳回此結果:20

星期三

工作流程

傳回運行時間期間工作流程本身的所有詳細數據。

workflow().<property>
參數 必要 類型​ 描述
<property> No String 您想要其值之工作流程屬性的名稱



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



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>')
參數 必要 類型​ 描述
<value> Yes String 其中有 JSON 物件要轉換的字串

JSON 物件必須只能有一個根屬性,且不可以是陣列。
使用反斜線字元 (\) 做為雙引號 (") 的逸出字元。
傳回值 類型 描述
<xml-version> Object 所指定字串或 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>

xpath

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

注意

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

xpath('<xml>', '<xpath>')
參數 必要 類型​ 描述
<xml> Yes 任意 XML 字串,將對其搜尋是否有符合 XPath 運算式的值或節點
<xpath> Yes 任意 用來尋找相符 XML 節點或值的 XPath 運算式
傳回值 類型 描述
<xml-node> XML 只有單一節點符合指定的 XPath 運算式時會傳回 XML 節點
<value> 任意 只有單一值符合指定的 XPath 運算式時,會傳回 XML 節點的值
[<xml-node1>, <xml-node2>, ...] -or- [<value1>, <value2>, ...] 陣列 陣列,其中有符合指定 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]'以尋找專案子系item的第一個專案name

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]'以尋找具有 expired 屬性的所有name元素:

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]'以尋找具有 price > 35的所有name元素:

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 運算式或 /*[local-name()="file" and namespace-uri()="https://contoso.com"]/*[local-name()="location"]/*[name()="file"]/*[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

下一步

瞭解 工作流程定義語言