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 檢查字串是否以特定子字串開頭。
從指定的位置開始,從字串傳回字元。 另 請參閱配量
toLower 以小寫格式傳回字串。
toUpper 以大寫格式傳回字串。
修剪 從字串中移除開頭和尾端空格符,並傳回更新的字串。

集合函數

若要使用集合,一般是數位、字串,有時是字典,您可以使用這些集合函式。

集合函式 Task
chunk 將字串或集合分割成長度相等的區塊。
contains 檢查集合是否有特定專案。
empty 檢查集合是否為空白。
first 從集合傳回第一個專案。
交叉口 傳回集合,該集合只具有指定集合中的一般專案。
專案 如果此函式出現在陣列的重複動作內,請在動作的目前反覆專案期間傳回數位列中的目前專案。
join 傳回字串,其中包含 數位中的所有 專案,並以指定的字元分隔。
last 從集合傳回最後一個專案。
length 傳回字串或陣列中的項目數。
reverse 反轉數位列中的項目順序。
從集合前面移除專案,並傳回 所有其他 專案。
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 不安全字元。
float 傳回輸入值的浮點數。
int 傳回字串的整數版本。
Json 傳回字串或 XML 的 JavaScript 物件表示法 (JSON) 類型值或物件。
string 傳回輸入值的字串版本。
uriComponent 將 URL 不安全字元取代為逸出字元,以傳回輸入值的 URI 編碼版本。
uriComponentToBinary 傳回 URI 編碼字串的二進位版本。
uriComponentToString 傳回 URI 編碼字串的字串版本。
xml 傳回字串的 XML 版本。

隱含資料類型轉換

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 從一組數位或陣列傳回最小值。
國防部 傳回除兩個數位的餘數。
mul 傳回乘兩個數字的產品。
rand 從指定的範圍傳回隨機整數。
range 傳回從指定整數開始的整數數位。
傳回從第一個數字減去第二個數字的結果。

日期和時間函式

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

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

工作流程函數

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

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

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

工作流程函式 Task
action 傳回目前動作在運行時間的輸出,或來自其他 JSON 名稱和值組的值。 另 請參閱動作
actionBody 在運行時間傳回動作的 body 輸出。 另 請參閱本文
actionOutputs 在運行時間傳回動作的輸出。 請參閱 輸出動作
actions 在運行時間傳回動作的輸出,或來自其他 JSON 名稱和值組的值。 另 請參閱動作
身體 在運行時間傳回動作的 body 輸出。 另 請參閱 actionBody
formDataMultiValues 使用符合表單資料表單編碼動作輸出中索引鍵名稱的值,建立陣列。
formDataValue 傳回符合動作表單資料表單碼輸出索引鍵名稱的單一值。
專案 如果此函式出現在陣列的重複動作內,請在動作的目前反覆專案期間傳回數位列中的目前專案。
專案 如果此函式出現在 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 物件,並傳回更新的物件。
合併 從一或多個參數傳回第一個非 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 目前動作或屬性的輸出

actionBody

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

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

範例

此範例會從 Twitter 動作Get user取得body輸出:

actionBody('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"
}

actionOutputs

在運行時間傳回動作的輸出。 和 是的 actions('<actionName>').outputs速記。 請參閱 actions() 。 函 actionOutputs() 式會在設計工具中解析為 outputs() ,因此請考慮使用 outputs(),而不是 actionOutputs()。 雖然這兩個函式的運作方式相同, outputs() 但偏好使用。

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

範例

此範例會從 Twitter 動作 Get user取得輸出:

actionOutputs('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"
  }
}

動作

在運行時間傳回動作的輸出,或來自其他 JSON 名稱和值組的值,您可以指派給表示式。 根據預設,函式會參考整個動作物件,但您可以選擇性地指定其值的屬性。 如需速記版本,請參閱 actionBody()actionOutputs()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 從執行時間的 Twitter 動作 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 包含時間戳的字串
<> 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 包含時間戳的字串
<小時> 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

本範例會將五秒減去指定的時間戳:

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

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

addToTime

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

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

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

範例 1

本範例會將一天新增至指定的時間戳:

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

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

範例 2

本範例會將一天新增至指定的時間戳:

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 用於建立數位的字串
傳回值 類型 描述
[<value>] 陣列 包含單一指定輸入的陣列

範例

此範例會從 「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速記。 請參閱 actionBody()actions()

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

範例

此範例會從 Get user Twitter 動作取得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] ]

合併

從一或多個參數傳回第一個非 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)。 使用此函式,而不是 譯碼DataUri()。 雖然這兩個函式的運作方式相同, 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 包含時間戳的字串
傳回值 類型 描述
<月日> 整數 指定時間戳中的月份日期

範例

此範例會從這個時間戳傳回月份日期的數位:

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

並傳回此結果: 15

dayOfWeek

傳回時間戳中的星期幾。

dayOfWeek('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳的字串
傳回值 類型 描述
<一周中的一天> 整數 指定時間戳中的星期天為0、星期一為1,依故

範例

此範例會從這個時間戳傳回星期幾的數位:

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

並傳回此結果: 4

dayOfYear

從時間戳傳回年份的日期。

dayOfYear('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳的字串
傳回值 類型 描述
<一年中的一天> 整數 指定時間戳中的年份日期

範例

此範例會從這個時間戳傳回年份的日期數目:

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

以逸出字元取代 URL 不安全字元,以傳回字串的統一資源識別元 (URI) 編碼版本。 請考慮使用 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

檢查集合是否為空白。 當集合是空的,或當不是空白時傳回 false 時傳回 true。

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>?)
參數 必要 類型​ 描述
<區間> Yes 整數 要新增的時間單位數目
<timeUnit> Yes String 要搭配 間隔使用的時間單位:“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”。 此範例會將五天新增至該時間戳:

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>?)
參數 必要 類型​ 描述
<區間> Yes 整數 要減去的指定時間單位數目
<timeUnit> Yes String 要搭配 間隔使用的時間單位:“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」 以外的 GUID 指定不同的格式,也就是以連字元分隔的 32 位數。

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 陣列 具有要聯結之項目的陣列
<分隔符> Yes String 在產生的字串中每個字元之間出現的分隔符
傳回值 類型 描述
<char1分隔符><char2><分隔符...>>< 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 和 Api 連線 ionWebhook 連接器類型的觸發程式和動作,但不適用於手動週期HTTPAPI 連線 ion 類型。

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 整數或浮點數 要乘以 multiplicand2 的數位
<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

這些範例會檢查至少一個表達式是否成立:

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回 。

輸出

傳回動作在運行時間的輸出。 使用這個函式,而不是 actionOutputs()在設計工具中解析為 outputs() 的 。 雖然這兩個函式的運作方式相同, outputs() 但偏好使用。

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

範例

此範例會從 Twitter 動作 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)

並傳回下列其中一個數位作為結果:1、、 324

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 取代子字串之後更新的字串

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

範例

此範例會在 「old string」 中尋找 「old」 子字串,並將 「old」 取代為 「new」:

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

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

result

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

注意

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

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

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

範例

此範例會使用 result() 動作中的 For_eachCompose 函式,從循環中 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 要根據原始字串中指定的分隔符分隔成子字串的字串
<分隔符> 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 整數或浮點數 要從 minuend 減去的數位
傳回值 類型 描述
<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 具有指定字元數的子字串,從來源字串中的指定索引位置開始

範例

此範例會從指定的字串建立五個字元的子字串,從索引值 6 開始:

substring('hello world', 6, 5)

並傳回此結果: "world"

subtractFromTime

從時間戳減去一些時間單位。 另 請參閱 getPastTime

subtractFromTime('<timestamp>', <interval>, '<timeUnit>', '<format>'?)
參數 必要 類型​ 描述
<timestamp> Yes String 包含時間戳的字串
<區間> Yes 整數 要減去的指定時間單位數目
<timeUnit> Yes String 要搭配 間隔使用的時間單位:“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 要以小寫格式傳回的字串
傳回值 類型 描述
<小寫文字> String 以小寫格式的原始字串

範例

這個範例會將此字串轉換成小寫:

toLower('Hello World')

並傳回此結果: "hello world"

toUpper

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

toUpper('<text>')
參數 必要 類型​ 描述
<text> String 要以大寫格式傳回的字串
傳回值 類型 描述
<大寫文字> 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

以逸出字元取代 URL 不安全字元,以傳回字串的統一資源識別元 (URI) 編碼版本。 使用此函式,而不是 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

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

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 任意 要搜尋符合 XPath 運算式值的節點或值的 XML 字串
<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

下一步

瞭解 工作流程定義語言