Azure Data Factory 和 Azure Synapse Analytics 中的運算式和函式

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費啟動新的試用版

本文提供 Azure Data Factory 和 Azure Synapse Analytics 所支援之運算式和函式的詳細數據。

運算式

定義中的 JSON 值可以是在運行時間評估的常值或表示式。 例如:

"name": "value"

"name": "@pipeline().parameters.password"

表達式可以出現在 JSON 字串值中的任何位置,且一律會產生另一個 JSON 值。 如果 JSON 值是表示式,則會藉由移除 at-sign (@) 來擷取表達式的主體。 如果需要以 @开头的常值字符串,則必須使用 @@逸出它。 下列範例示範如何評估表達式。

JSON 值 結果
“parameters” 傳回 'parameters' 字元。
“parameters[1]” 傳回 'parameters[1]' 字元。
"@@" 傳回包含 『@』 的 1 個字元字串。
" @" 傳回包含 ' @' 的 2 個字元字串。

表達式也可以出現在字串內,使用稱為 字串插補 的功能,其中表達式會包裝在 中 @{ ... }。 例如:"name" : "First Name: @{pipeline().parameters.firstName} Last Name: @{pipeline().parameters.lastName}"

使用字串插補,結果一律為字串。 假設我已將 定義為 myNumber42myStringfoo

JSON 值 結果
“@pipeline(.parameters.myString” foo 字串的形式傳回。
“@{pipeline(.parameters.myString}” foo 字串的形式傳回。
“@pipeline(.parameters.myNumber” 42數位回。
“@{pipeline(.parameters.myNumber}” 42字串的形式傳回。
“答案是: @{pipeline(.parameters.myNumber}” 傳回 Answer is: 42 字串。
“@concat('Answer is: ', string(pipeline(.parameters.myNumber))” 傳回字串 Answer is: 42
“答案是: @@{pipeline(.parameters.myNumber}” 傳回 Answer is: @{pipeline().parameters.myNumber} 字串。

在 ForEach 活動之類的控制流程活動中,您可以提供數位來逐一查看屬性專案,並使用 @item() 在 ForEach 活動中逐一查看單一列舉。 例如,如果專案是陣列:[1,2,3],在第一個反覆運算中傳回 1, @item() 第二個反覆運算中傳回 2,在第三個反覆運算中傳回 3。 您也可以使用 @range(0,10) like 運算式,以 0 結束 9 開始反覆運算十次。

您可以使用 @activity(「活動名稱」來擷取活動的輸出並做出決策。 請考慮名為 Web1 的 Web 活動。 為了將第一個活動的輸出放在第二個活動的主體中,表達式通常會看起來像: @activity(『Web1』)。output 或 @activity(『Web1』)。output.data 或類似的內容,視第一個活動的輸出結果而定。

範例

複雜表達式範例

下列範例顯示參考活動輸出深度子欄位的複雜範例。 若要參考評估為子欄位的管線參數,請使用 [] 語法,而不是 dot(.) 運算符(例如 subfield1 和 subfield2),做為活動輸出的一部分。

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

以動態方式建立檔案並將其命名為常見模式。 讓我們探索一些動態檔案命名範例。

  1. 將日期附加至檔案名稱: @concat('Test_', formatDateTime(utcnow(), 'yyyy-dd-MM'))

  2. 在客戶時區中附加 DateTime: @concat('Test_', convertFromUtc(utcnow(), 'Pacific Standard Time'))

  3. 附加觸發程式時間: @concat('Test_', pipeline().TriggerTime)

  4. 輸出至日期為單一檔案時,輸出對應資料流中的自訂檔名: 'Test_' + toString(currentDate()) + '.csv'

在上述情況下,會從 Test_ 開始建立 4 個動態檔名。

動態內容編輯器

當您完成編輯時,動態內容編輯器會自動逸出內容中的字元。 例如,內容編輯器中的下列內容是具有兩個運算式函式的字串插補。

{ 
  "type": "@{if(equals(1, 2), 'Blob', 'Table' )}",
  "name": "@{toUpper('myData')}"
}

動態內容編輯器會將上述內容轉換成表示式 "{ \n \"type\": \"@{if(equals(1, 2), 'Blob', 'Table' )}\",\n \"name\": \"@{toUpper('myData')}\"\n}"。 此表達式的結果是如下所示的 JSON 格式字串。

{
  "type": "Table",
  "name": "MYDATA"
}

具有參數的數據集

在下列範例中,BlobDataset 會採用名為 path的參數。 其值是用來使用表示式來設定folderPath屬性的值dataset().path

{
    "name": "BlobDataset",
    "properties": {
        "type": "AzureBlob",
        "typeProperties": {
            "folderPath": "@dataset().path"
        },
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "path": {
                "type": "String"
            }
        }
    }
}

具有參數的管線

在下列範例中,管線會採用 inputPath 和 outputPath 參數。 參數 化 Blob 資料集的路徑 是使用這些參數的值來設定。 這裡使用的語法如下: pipeline().parameters.parametername

{
    "name": "Adfv2QuickStartPipeline",
    "properties": {
        "activities": [
            {
                "name": "CopyFromBlobToBlob",
                "type": "Copy",
                "inputs": [
                    {
                        "referenceName": "BlobDataset",
                        "parameters": {
                            "path": "@pipeline().parameters.inputPath"
                        },
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "BlobDataset",
                        "parameters": {
                            "path": "@pipeline().parameters.outputPath"
                        },
                        "type": "DatasetReference"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                }
            }
        ],
        "parameters": {
            "inputPath": {
                "type": "String"
            },
            "outputPath": {
                "type": "String"
            }
        }
    }
}

取代特殊字元

動態內容編輯器會在您完成編輯時,自動逸出內容中的字元,例如雙引號、反斜杠。 如果您想要使用 \n\t 取代換行字元或 Tab,請在 replace() 函式中造成問題。 您可以在程式代碼檢視中編輯動態內容,以移除運算式中的額外 \ ,或者您可以遵循下列步驟,使用表示式語言取代特殊字元:

  1. 針對原始字串值的 URL 編碼
  2. 取代 URL 編碼字串,例如換行字元 (%0A)、歸位字元(%0D)、水平製表元(%09)。
  3. URL 譯碼

例如,變數 companyName 其值中有換行符,expression @uriComponentToString(replace(uriComponent(variables('companyName')), '%0A', '')) 可以移除換行符。

Contoso-
Corporation

逸出單引號字元

表達式函式會針對字串值參數使用單引號。 使用兩個 ' 單引號來逸出字串函式中的字元。 例如,expression @concat('Baba', '''s ', 'book store') 會傳回下列結果。

Baba's book store

教學課程

教學課程 將逐步引導您如何在管線與活動之間以及活動之間傳遞參數。 本教學課程特別示範 Azure Data Factory 的步驟,雖然 Synapse 工作區的步驟幾乎相等,但使用者介面稍有不同。

函式

您可以在表示式內呼叫函式。 下列各節提供可在表達式中使用的函式相關信息。

日期函式

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

字串函數

若要使用字串,您可以使用這些字串函式和一些 集合函式。 字串函式僅適用於字串。

字串函數 Task
concat 結合兩個或多個字串,並傳回合並的字串。
endsWith 檢查字串是否以指定的子字串結尾。
guid 產生全域唯一標識碼 (GUID) 作為字串。
indexOf 傳回子字串的起始位置。
lastIndexOf 傳回子字串最後一次出現的開始位置。
replace 以指定的字串取代子字串,並傳回更新的字串。
split 在指定的分隔符每次出現時分割字串,並傳回產生的子字串做為數位的元素。
startsWith 檢查字串是否以特定子字串開頭。
substring 從指定的位置開始,從字串傳回字元。
toLower 以小寫格式傳回字串。
toUpper 以大寫格式傳回字串。
修剪 從字串中移除開頭和尾端空格符,並傳回更新的字串。

集合函數

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

集合函式 Task
contains 檢查集合是否有特定專案。
empty 檢查集合是否為空白。
first 從集合傳回第一個專案。
intersection 傳回集合,該集合只具有指定集合中的一般專案。
join 傳回字串,其中包含 數位中的所有 專案,並以指定的字元分隔。
last 從集合傳回最後一個專案。
length 傳回字串或陣列中的項目數。
skip 從集合前面移除專案,並傳回 所有其他 專案。
take 傳回集合前端的專案。
union 傳回具有 指定集合中所有 專案的集合。

邏輯函式

這些函式在條件內很有用,可用來評估任何類型的邏輯。

邏輯比較函式 Task
and 檢查所有表達式是否為 true。
equals 檢查這兩個值是否相等。
greater 檢查第一個值是否大於第二個值。
greaterOrEquals 檢查第一個值是否大於或等於第二個值。
if 檢查表達式是否為 true 或 false。 根據結果,傳回指定的值。
less 檢查第一個值是否小於第二個值。
lessOrEquals 檢查第一個值是否小於或等於第二個值。
not 檢查表達式是否為 false。
or 檢查是否至少有一個表達式為 true。

轉換函數

這些函式可用來在語言中的每個原生類型之間進行轉換:

  • string
  • 整數
  • float
  • boolean
  • 陣 列
  • 字典
轉換函式 Task
array 從單一指定的輸入傳回數位。 如需多個輸入,請參閱 createArray
base64 傳回字串的base64編碼版本。
base64ToBinary 傳回base64編碼字串的二進位版本。
base64ToString 傳回base64編碼字串的字串版本。
binary 傳回輸入值的二進位版本。
bool 傳回輸入值的布爾值版本。
coalesce 從一或多個參數傳回第一個非 Null 值。
createArray 從多個輸入傳回陣列。
dataUri 傳回輸入值的數據 URI。
dataUriToBinary 傳回數據 URI 的二進位版本。
dataUriToString 傳回數據 URI 的字串版本。
decodeBase64 傳回base64編碼字串的字串版本。
decodeDataUri 傳回數據 URI 的二進位版本。
decodeUriComponent 傳回字串,以譯碼版本取代逸出字元。
encodeUriComponent 傳回字串,以逸出字元取代 URL 不安全字元。
float 傳回輸入值的浮點數。
int 傳回字串的整數版本。
Json 傳回字串或 XML 的 JavaScript 物件表示法 (JSON) 類型值或物件。
string 傳回輸入值的字串版本。
uriComponent 將 URL 不安全字元取代為逸出字元,以傳回輸入值的 URI 編碼版本。
uriComponentToBinary 傳回 URI 編碼字串的二進位版本。
uriComponentToString 傳回 URI 編碼字串的字串版本。
xml 傳回字串的 XML 版本。
Xpath 檢查 XML 是否有符合 XPath (XML 路徑語言) 表示式的節點或值,並傳回相符的節點或值。

數學函數

這些函式可用於任一類型的數位: 整數浮點數

數學函式 Task
add 傳回加兩個數字的結果。
div 傳回將一個數位除以另一個數字的結果。
max 從一組數位或陣列傳回最高值。
min 從一組數位或陣列傳回最小值。
mod 傳回餘數,將一個數位除以另一個數位。
mul 傳回乘兩個數字的產品。
rand 從指定的範圍傳回隨機整數。
range 傳回從指定整數開始的整數數位。
sub 傳回從另一個數位減去一個數字的結果。

函式參考

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

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-15T13:00:00Z', 10)

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

範例 2

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

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

並傳回此結果: "2018-03-10T00: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:0000000Z"

範例 2

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

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

並傳回此結果: "2018-03-15T10: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"

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"]

base64

傳回字串的base64編碼版本。

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

範例

此範例會將 「hello」 字串轉換成 base64 編碼的字串:

base64('hello')

並傳回此結果: "aGVsbG8="

base64ToBinary

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

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

範例

此範例會將 “aGVsbG8=” base64 編碼字元串轉換成二進位字串:

base64ToBinary('aGVsbG8=')

並傳回此結果:

"0110000101000111010101100111001101100010010001110011100000111101"

base64ToString

傳回base64編碼字串的字串版本,有效地譯碼base64字串。 使用此函式,而不是 譯碼Base64()。 雖然這兩個函式的運作方式相同, base64ToString() 但偏好使用。

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

範例

此範例會將 “aGVsbG8=” base64 編碼字元串轉換成字符串:

base64ToString('aGVsbG8=')

並傳回此結果: "hello"

binary

傳回字串的二進位版本。

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

範例

此範例會將 「hello」 字串轉換成二進位字串:

binary('hello')

並傳回此結果:

"0110100001100101011011000110110001101111"

bool

傳回值的布爾值版本。

bool(<value>)
參數 必要 類型​ 描述
<value> Yes 任意 要轉換的值
傳回值 類型 描述
[True] 或 [False] 布林值 指定值的布爾值版本

範例

這些範例會將指定的值轉換成布爾值:

bool(1)
bool(0)

並傳回下列結果:

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

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 從合併輸入字串建立的字串

範例

此範例會結合字串 「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 時區值,但您可能必須從時區名稱中移除任何標點符號。
<format> No String 單一 格式規範自定義格式模式。 時間戳的預設格式為 「o」 (yyyy-MM-ddTHH:mm:ss.fffffffK),其符合 ISO 8601 並保留時區資訊。
傳回值 類型 描述
<converted-timestamp> String 轉換成目標時區的時間戳

範例 1

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

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

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

範例 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 時區值,但您可能必須從時區名稱中移除任何標點符號。
<destinationTimeZone> Yes String 目標時區的名稱。 如需時區名稱,請參閱 Microsoft 時區值,但您可能必須從時區名稱中移除任何標點符號。
<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-01T08: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 時區值,但您可能必須從時區名稱中移除任何標點符號。
<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"]

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"

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

並傳回此結果: 3

dayOfYear

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

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

範例

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

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

並傳回此結果: 74

decodeBase64

傳回base64編碼字串的字串版本,有效地譯碼base64字串。 請考慮使用 base64ToString() 而不是 decodeBase64()。 雖然這兩個函式的運作方式相同, base64ToString() 但偏好使用。

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

範例

此範例會建立base64編碼字串的字串:

decodeBase64('aGVsbG8=')

並傳回此結果: "hello"

decodeDataUri

傳回數據統一資源標識碼的二進位版本(URI)。 請考慮使用 dataUriToBinary(),而不是 decodeDataUri()。 雖然這兩個函式的運作方式相同, dataUriToBinary() 但偏好使用。

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('http%3A%2F%2Fcontoso.com')

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

div

傳回將一個數位除以另一個數字的結果。

div(<dividend>, <divisor>)

函式的精確傳回類型取決於其參數的類型,請參閱範例以取得詳細數據。

參數 必要 類型​ 描述
<dividend> Yes 整數或浮點數 要除以 除數的數位
<divisor> Yes 整數或浮點數 的數位。 零的除數值會在運行時間造成錯誤。
傳回值 類型 描述
<quotient-result> 整數或浮點數 將第一個數位除以第二個數字的結果

範例 1

這些範例會將數位 9 除以 2:

div(9, 2.0)
div(9.0, 2)
div(9.0, 2.0)

全部都會傳回此結果: 4.5

範例 2

此範例也會將數位 9 除以 2,但因為兩個參數都是整數,所以捨棄餘數 (整數除法):

div(9, 2)

表示式會傳回結果 4。 若要取得餘數的值,請使用 mod() 函式。

encodeUriComponent

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

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

範例

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

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

並傳回此結果: "http%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

equals

檢查兩個值、表達式或物件是否相等。 當兩者都相等時傳回 true,或當兩者不相等時傳回 false。

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

範例

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

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

並傳回下列結果:

  • 第一個範例:這兩個值都相等,因此函式會傳 true回 。
  • 第二個範例:這兩個值不相等,因此函式會傳 false回 。

first

從字串或陣列傳回第一個專案。

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

範例

這些範例會尋找這些集合中的第一個專案:

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

並傳回下列結果:

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

float

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

float('<value>')
參數 必要 類型​ 描述
<value> Yes String 具有要轉換之有效浮點數的字串
傳回值 類型 描述
<float-value> Float 指定字串的浮點數

範例

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

float('10.333')

並傳回此結果: 10.333

formatDateTime

傳回指定格式的時間戳。

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

範例

這個範例會將時間戳轉換成指定的格式:

formatDateTime('03/15/2018 12:00:00', 'yyyy-MM-ddTHH:mm:ss')

並傳回此結果: "2018-03-15T12:00:00"

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)"

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

json

傳回字串或 XML 的 JavaScript 物件表示法 (JSON) 類型值或物件。

json('<value>')
參數 必要 類型​ 描述
<value> Yes 字串或 XML 要轉換的字串或 XML
傳回值 類型 描述
<JSON-result> JSON 原生類型或物件 指定字串或 XML 的 JSON 原生類型值或物件。 如果字串為 Null,函式會傳回空的 物件。

範例 1

這個範例會將此字串轉換成 JSON 值:

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

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

範例 2

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

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

並傳回此結果:

{
  "fullName": "Sophia Owen"
}

範例 3

此範例會將此 XML 轉換成 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"
      } ]
   }
}

intersection

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

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 從指定數位中所有專案建立的結果字串

範例

這個範例會從這個陣列中具有指定字元做為分隔符的所有專案建立字串:

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

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

最後一

從集合傳回最後一個專案。

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。

範例

此範例會尋找 「hello world」 字串中最後出現 「world」 子字串的起始索引值:

lastIndexOf('hello world', 'world')

並傳回此結果: 6

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

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

從一組數位或陣列傳回最小值。

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> 整數或浮點數 除以第一個數位為第二個數位的餘數

範例

本範例會計算第一個數位除以第二個數位時的餘數:

mod(3, 2)

並傳回此結果: 1

mul

傳回乘兩個數字的產品。

mul(<multiplicand1>, <multiplicand2>)
參數 必要 類型​ 描述
<multiplicand1> Yes 整數或浮點數 要乘以 multiplicand2 的數位
<multiplicand2> Yes 整數或浮點數 以 multiplicand1 的數位
傳回值 類型 描述
<product-result> 整數或浮點數 乘以第一個數位乘以第二個數字的產品

範例

這些範例會將第一個數位乘以第二個數位:

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

並傳回下列結果:

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

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

檢查是否至少有一個表達式為 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回 。

rand

從指定的範圍傳回隨機整數,此範圍僅包含於起始端。

rand(<minValue>, <maxValue>)
參數 必要 類型​ 描述
<minValue> Yes 整數 範圍中最低的整數
<maxValue> Yes 整數 在函式可以傳回之範圍中最高整數之後的整數
傳回值 類型 描述
<random-result> 整數 從指定範圍傳回的隨機整數。 請注意,每次叫用 rand() 都會產生唯一的結果,這表示您在輸出監視中觀察到的值在實際運行時間可能不相同。

範例

這個範例會從指定的範圍取得隨機整數,但不包括最大值:

rand(1, 5)

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

range

傳回從指定整數開始的整數數位。

range(<startIndex>, <count>)
參數 必要 類型​ 描述
<startIndex> Yes 整數 啟動陣列做為第一個專案的整數值
<計數> Yes 整數 陣列中的整數數目
傳回值 類型 描述
[<range-result>] 陣列 從指定索引開始的整數陣列

範例

此範例會建立從指定索引開始的整數陣列,並具有指定的整數數目:

range(1, 4)

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

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"

skip

從集合前面移除專案,並傳回 所有其他 專案。

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

範例

此範例會從指定陣列的前面移除一個專案,數位 0:

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

並傳回具有其餘項目的這個陣列: [1,2,3]

split

在指定的分隔符每次出現時分割字串,並傳回產生的子字串做為數位的元素。 分隔符通常是單一字元,但支援多字元分隔符。

split('<text>', '<delimiter>')
參數 必要 類型​ 描述
<text> String 要分隔成子字串的字串
<分隔符> Yes String 要當做分隔符使用的字串
傳回值 類型 描述
[<substring1,substring2><>,...] 陣列 包含原始字串子字串的陣列

範例

此範例會根據分隔符 「_」 傳回包含字串 「a_b_c」 子字串的陣列:

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 指定的時間戳,但從月份的第一天開始,以零小時標記開始

範例

此範例會傳回此時間戳的月份開始:

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

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

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 任意 要轉換的值
傳回值 類型 描述
<string-value> String 指定值的字串版本

範例 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 開始。

substring('<text>', <startIndex>, <length>)
參數 必要 類型​ 描述
<text> String 您想要其字元的字串
<startIndex> Yes 整數 正數等於或大於 0,您想要用來做為起始位置或索引值
<length> Yes 整數 您想要在子字串中的正數字元數
傳回值 類型 描述
<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"

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]

ticks傳回指定時間戳的屬性值。 刻度是 100 奈秒的間隔。

ticks('<timestamp>')
參數 必要 類型​ 描述
<timestamp> Yes String 時間戳的字串
傳回值 類型 描述
<ticks-number> 整數 自輸入時間戳以來,公曆中從 12:00:00:00 開始的刻度數

toLower

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

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

範例

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

toLower('Hello World')

並傳回此結果: "hello world"

toUpper

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

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

範例

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

toUpper('Hello World')

並傳回此結果: "HELLO WORLD"

修剪

從字串中移除開頭和尾端空格符,並傳回更新的字串。

trim('<text>')
參數 必要 類型​ 描述
<text> String 字串,具有要移除的前置和尾端空格符
傳回值 類型 描述
<updatedText> String 原始字串的更新版本,不含開頭或尾端空格符

範例

此範例會從字串 「Hello World」 移除開頭和尾端空格符:

trim(' Hello World  ')

並傳回此結果: "Hello World"

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

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

uriComponentToBinary

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

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

範例

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

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

並傳回此結果:

"001000100110100001110100011101000111000000100101001100 11010000010010010100110010010001100010010100110010010001 10011000110110111101101110011101000110111101110011011011 110010111001100011011011110110110100100010"

uriComponentToString

傳回統一資源標識碼 (URI) 編碼字串的字串版本,有效地譯碼 URI 編碼的字串。

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

範例

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

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

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

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"

xml

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

xml('<value>')
參數 必要 類型​ 描述
<value> Yes String 字串與要轉換的 JSON 物件

JSON 對象必須只有一個根屬性,不能是陣列。
使用反斜杠字元 (\) 作為雙引號的逸出字元()。

傳回值 類型 描述
<xml-version> Object 指定字串或 JSON 物件的編碼 XML

範例 1

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

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

並傳回此結果 XML:

<name>Sophia Owen</name>

範例 2

假設您有此 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 內容中的節點或計算值。

xpath('<xml>', '<xpath>')
參數 必要 類型​ 描述
<xml> Yes 任意 要搜尋符合 XPath 運算式值的節點或值的 XML 字串
<Xpath> Yes 任意 用來尋找相符 XML 節點或值的 XPath 運算式
傳回值 類型 描述
<xml-node> XML 只有單一節點符合指定的 XPath 運算式時,XML 節點
<value> 任意 只有單一值符合指定的 XPath 運算式時,XML 節點的值
[<xml-node1>, <xml-node2>, ...]
-或-
[<value1>, <value2>, ...]
陣列 具有符合指定 XPath 運算式之 XML 節點或值的陣列

範例 1

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

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

並傳回此結果: 30

範例 2

在此範例中,這兩個表達式都會在指定的自變數中尋找符合 <location></location> 節點的節點,其中包含具有命名空間的 XML。 表達式會使用反斜杠字元 (\) 作為雙引號的逸出字元()。

  • 表達式 1

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

  • Expression 2

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

以下是自變數:

  • 這個 XML,其中包含 XML 檔案命名空間: xmlns="http://contoso.com"

    <?xml version="1.0"?> <file xmlns="http://contoso.com"> <location>Paris</location> </file>
    
  • 這裡任一 XPath 運算式:

    • /*[name()=\"file\"]/*[name()=\"location\"]

    • /*[local-name()=\"file\" and namespace-uri()=\"http://contoso.com\"]/*[local-name()=\"location\"]

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

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

範例 3

在範例 3 上,此範例會尋找節點中的 <location></location> 值:

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

並傳回此結果: "Paris"

注意

您可以將批註新增至數據流表達式,但不能在管線表達式中新增批注。

如需您可以在表示式中使用的系統變數清單,請參閱 系統變數