Microsoft Fabric 中数据工厂的表达式和函数

本文提供有关 Microsoft Fabric 中数据工厂支持的表达式和函数的详细信息。

Expressions

定义中的表达式值可以是在运行时计算的文本或表达式。 例如:

"value"

"@pipeline().parameters.password"

表达式可以出现在字符串值中的任何位置,并始终生成另一个字符串值。 如果值是表达式,则通过删除 at-sign (@) 提取表达式的正文。 如果需要以 @开头的文本字符串,则必须使用 @@对其进行转义。 以下示例演示如何计算表达式。

表达式值 结果
“parameters” 返回字符“parameters”。
“parameters[1]” 返回字符“parameters[1]”。
"@@" 返回包含“@”的 1 个字符字符串。
" @" 返回一个包含 '@' 的 2 个字符字符串。

表达式还可以显示在字符串内,使用称为 字符串内插 的功能,其中表达式被包装在一起 @{ ... }。 例如:"First Name: @{pipeline().parameters.firstName} Last Name: @{pipeline().parameters.lastName}"

使用字符串内插,结果始终为字符串。 假设我已定义为myNumber42myStringfoo

表达式值 结果
“@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], @item() 则在第一次迭代中返回 1,在第二次迭代中返回 2,在第三次迭代中返回 3。 还可以使用 @range(0,10) like 表达式循环访问 10 次,从 0 结束到 9。

可以使用 @activity(“活动名称”捕获活动的输出并做出决策。 请考虑名为 Web1 的 Web 活动。 为了将第一个活动的输出放置在第二个活动的正文中,表达式通常类似于: @activity(“Web1”)。output 或 @activity(“Web1”)。output.data 或类似内容,具体取决于第一个活动的输出的外观。

例子

复杂表达式示例

下面的示例显示了一个引用活动输出的深层子字段的复杂示例。 若要引用计算结果为子字段的管道参数,请使用 [] 语法而不是 dot(.) 运算符(例如子字段 1 和子字段 2),作为活动输出的一部分。

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

动态创建文件并将其命名为常见模式。 让我们浏览一些动态文件命名示例。

  • 将日期追加到文件名: @concat('Test_', formatDateTime(utcnow(), 'yyyy-dd-MM'))
  • 在客户时区中追加 DateTime: @concat('Test_', convertFromUtc(utcnow(), 'Pacific Standard Time'))
  • 追加触发器时间: @concat('Test_', pipeline().TriggerTime)
  • 输出到包含日期的单个文件时,在映射数据流中输出自定义文件名: 'Test_' + toString(currentDate()) + '.csv'

在上述情况下,从Test_开始创建四个动态文件名。

动态内容编辑器

完成编辑后,动态内容编辑器会自动转义内容中的字符。 例如,内容编辑器中的以下内容是带有表达式函数的字符串内插。

"@{toUpper('myData')}"

动态内容编辑器将上述内容转换为表达式 "@{toUpper('myData')}"。 此表达式的结果是如下所示的格式字符串。

"MYDATA"

替换特殊字符

动态内容编辑器会在完成编辑后自动转义内容中的字符(如双引号、反斜杠)。 如果要使用 \n\t in replace() 函数替换换行符或制表符,则会导致问题。 可以在代码视图中编辑动态内容以删除表达式中的额外 \,也可以按照以下步骤使用表达式语言替换特殊字符:

  1. 针对原始字符串值的 URL 编码
  2. 替换 URL 编码的字符串,例如换行符(%0A)、回车符(%0D)、水平制表符(%09)。
  3. URL 解码

例如,变量 companyName 在其值中使用换行符,表达式 @uriComponentToString(replace(uriComponent(variables('companyName')), '%0A', '')) 可以删除换行符。

Contoso- Corporation

转义单引号字符

表达式函数对字符串值参数使用单引号。 使用两个单引号转义 ' 字符串函数中的字符。 例如,表达式 @concat('Baba', '''s ', 'book store') 将返回以下结果。

Baba's book store

管道范围变量

可以在管道中的任何位置引用这些系统变量。

变量名称 Description
@pipeline().DataFactory 管道运行中正在运行的工作区的 ID
@pipeline().Pipeline 管道的 ID
@pipeline().PipelineName 管道的名称
@pipeline().RunId 特定管道运行的 ID
@pipeline().TriggerId 调用管道的触发器的 ID
@pipeline().TriggerName 调用管道的触发器的名称
@pipeline().TriggerTime 调用管道的触发器运行的时间。 这是触发器 实际 触发以调用管道运行的时间,它可能与触发器的计划时间略有不同。
@pipeline().GroupId 管道运行所属的组的 ID。
@pipeline()?.TriggeredByPipelineName 触发管道运行的管道的名称。 适用于由 ExecutePipeline 活动触发管道运行的时间。 在其他情况下使用时,计算结果为 Null 。 记下问号 @pipeline()
@pipeline()?.TriggeredByPipelineRunId 触发管道运行的管道的运行 ID。 适用于由 ExecutePipeline 活动触发管道运行的时间。 在其他情况下使用时,计算结果为 Null 。 记下问号 @pipeline()

注释

触发器相关的日期/时间系统变量(在管道和触发器范围中)以 ISO 8601 格式返回 UTC 日期,例如 2017-06-01T22:20:00.4061448Z

Functions

可以在表达式中调用函数。 以下部分提供有关可在表达式中使用的函数的信息。

日期函数

日期或时间函数 任务
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 以字符串的形式返回当前时间戳。

字符串函数

若要处理字符串,可以使用这些字符串函数和一些 集合函数。 字符串函数仅适用于字符串。

字符串函数 任务
concat 合并两个或多个字符串,并返回组合字符串。
endsWith 检查字符串是否以指定的子字符串结尾。
guid 以字符串的形式生成全局唯一标识符(GUID)。
indexOf 返回子字符串的起始位置。
lastIndexOf 返回子字符串的最后一个匹配项的起始位置。
替换 将子字符串替换为指定的字符串,并返回更新后的字符串。
拆分 返回一个数组,该数组包含子字符串(用逗号分隔)与基于原始字符串中的指定分隔符字符的较大字符串。
startsWith 检查字符串是否以特定的子字符串开头。
子字符串 从指定位置开始返回字符串中的字符。
toLower 以小写格式返回字符串。
toUpper 以大写格式返回字符串。
修剪 从字符串中删除前导空格和尾随空格,并返回更新后的字符串。

集合函数

若要使用集合(通常为数组、字符串,有时是字典),可以使用这些集合函数。

集合函数 任务
包含 检查集合是否具有特定项。
检查集合是否为空。
第一 从集合中返回第一项。
intersection 返回一个集合, 该集合中只有 指定集合中的常用项。
加入 返回一个字符串,其中包含数组 中的所有 项,用指定字符分隔。
最后 从集合中返回最后一项。
长度 返回字符串或数组中的项数。
跳过 从集合的前面删除项,并返回 所有其他 项。
从集合的前面返回项。
union 返回包含指定集合 中的所有 项的集合。

逻辑函数

这些函数在条件中非常有用,可用于评估任何类型的逻辑。

逻辑比较函数 任务
检查所有表达式是否均为 true。
等于 检查这两个值是否等效。
检查第一个值是否大于第二个值。
大于或等于 检查第一个值是否大于或等于第二个值。
如果 检查表达式是 true 还是 false。 根据结果返回指定的值。
更少 检查第一个值是否小于第二个值。
小于或等于 检查第一个值是否小于或等于第二个值。
检查表达式是否为 false。
检查至少一个表达式是否为 true。

转换函数

这些函数用于在语言中的每个本机类型之间进行转换:

  • 字符串
  • 整数
  • float
  • 布尔
  • 阵 列
  • 字典
转换函数 任务
array 从单个指定输入返回数组。 有关多个输入,请参阅 createArray
base64 返回字符串的 base64 编码版本。
base64ToBinary 返回 base64 编码字符串的二进制版本。
base64ToString 返回 base64 编码字符串的字符串版本。
二元的 返回输入值的二进制版本。
bool 返回输入值的布尔版本。
合并 从一个或多个参数返回第一个非 null 值。
createArray 从多个输入返回数组。
dataUri 返回输入值的数据 URI。
dataUriToBinary 返回数据 URI 的二进制版本。
dataUriToString 返回数据 URI 的字符串版本。
decodeBase64 返回 base64 编码字符串的字符串版本。
decodeDataUri 返回数据 URI 的二进制版本。
decodeUriComponent 返回一个字符串,该字符串将转义字符替换为解码的版本。
encodeUriComponent 返回一个字符串,该字符串将 URL 不安全字符替换为转义字符。
漂浮 返回输入值的浮点数。
int 返回字符串的整数版本。
字符串 返回输入值的字符串版本。
uriComponent 通过将 URL 不安全字符替换为转义字符,返回输入值的 URI 编码版本。
uriComponentToBinary 返回 URI 编码字符串的二进制版本。
uriComponentToString 返回 URI 编码字符串的字符串版本。
xml 返回字符串的 XML 版本。
xpath 检查 XML 中是否存在与 XPath(XML 路径语言)表达式匹配的节点或值,并返回匹配的节点或值。

数学函数

这些函数可用于任一类型的数字: 整数浮点数。

数学函数 任务
添加 返回添加两个数字的结果。
div 返回两个数字相除的结果。
最大 从一组数字或数组中返回最大值。
min 从一组数字或数组中返回最小值。
模组 返回除以两个数字的余数。
mul 返回乘以两个数字的产品。
兰特 从指定范围返回一个随机整数。
范围 返回从指定整数开始的整数数组。
字幕 返回从第一个数字中减去第二个数字的结果。

函数参考

本部分按字母顺序列出所有可用函数。

添加

返回添加两个数字的结果。

add(<summand_1>, <summand_2>)
参数 必选 类型 Description
< summand_1,summand_2><> 是的 整数、浮点数或混合 要添加的数字
返回值 类型 Description
< result-sum> 整数或浮点数 添加指定数字的结果

示例

此示例添加指定的数字:

add(1, 1.5)

并返回以下结果: 2.5

addDays

将天数添加到时间戳。

addDays('<timestamp>', <days>, '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< > 是的 整数 要添加的正天数或负天数
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 小时> 是的 整数 要添加的正小时数或负小时数
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< updated-timestamp> String 时间戳加上指定的小时数

示例 1

此示例将 10 小时添加到指定的时间戳:

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

并返回以下结果: "2018-03-15T10:00:0000000Z"

示例 2

此示例从指定的时间戳中减去 5 小时:

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

并返回以下结果: "2018-03-15T10:00:0000000Z"

addMinutes

将分钟数添加到时间戳。

addMinutes('<timestamp>', <minutes>, '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 纪要> 是的 整数 要添加的正或负分钟数
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< updated-timestamp> String 时间戳加上指定的分钟数

示例 1

此示例将 10 分钟添加到指定的时间戳:

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

并返回以下结果: "2018-03-15T00:20:00.0000000Z"

示例 2

此示例从指定的时间戳中减去 5 分钟:

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

并返回以下结果: "2018-03-15T00:15:00.0000000Z"

addSeconds

将秒数添加到时间戳。

addSeconds('<timestamp>', <seconds>, '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< > 是的 整数 要添加的正秒数或负秒数
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 间隔> 是的 整数 要添加的指定时间单位数
< timeUnit> 是的 String 间隔一起使用的时间单位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”、“Year”
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>)
参数 必选 类型 Description
< expression1,expression2><> 是的 布尔 要检查的表达式
返回值 类型 Description
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>')
参数 必选 类型 Description
< 价值> 是的 String 用于创建数组的字符串
返回值 类型 Description
[<value>] Array 包含单个指定输入的数组

示例

此示例从“hello”字符串创建数组:

array('hello')

并返回以下结果: ["hello"]

base64

返回字符串的 base64 编码版本。

base64('<value>')
参数 必选 类型 Description
< 价值> 是的 String 输入字符串
返回值 类型 Description
< base64-string> String 输入字符串的 base64 编码版本

示例

此示例将“hello”字符串转换为 base64 编码的字符串:

base64('hello')

并返回以下结果: "aGVsbG8="

base64ToBinary

返回 base64 编码字符串的二进制版本。

base64ToBinary('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的 base64 编码字符串
返回值 类型 Description
< binary-for-base64-string> String base64 编码字符串的二进制版本

示例

此示例将“aGVsbG8=”base64 编码的字符串转换为二进制字符串:

base64ToBinary('aGVsbG8=')

并返回以下结果:

"0110000101000111010101100111001101100010010001110011100000111101"

base64ToString

返回 base64 编码字符串的字符串版本,有效解码 base64 字符串。 使用此函数,而不是解码Base64()。 尽管这两个函数的工作方式相同, base64ToString() 但首选。

base64ToString('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要解码的 base64 编码字符串
返回值 类型 Description
< decoded-base64-string> String base64 编码字符串的字符串版本

示例

此示例将“aGVsbG8=”base64 编码的字符串转换为字符串:

base64ToString('aGVsbG8=')

并返回以下结果: "hello"

二进制

返回字符串的二进制版本。

binary('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的字符串
返回值 类型 Description
< binary-for-input-value> String 指定字符串的二进制版本

示例

此示例将“hello”字符串转换为二进制字符串:

binary('hello')

并返回以下结果:

"0110100001100101011011000110110001101111"

布尔

返回值的布尔版本。

bool(<value>)
参数 必选 类型 Description
< 价值> 是的 任意 要转换的值
返回值 类型 Description
True 或 False 布尔 指定值的布尔版本

示例

这些示例将指定值转换为布尔值:

bool(1)
bool(0)

并返回以下结果:

  • 第一个示例: true
  • 第二个示例: false

联合

从一个或多个参数返回第一个非 null 值。 空字符串、空数组和空对象不为 null。

coalesce(<object_1>, <object_2>, ...)
参数 必选 类型 Description
< >object_1、<object_2>... 是的 任何,都可以混合类型 要检查是否为 null 的一个或多个项
返回值 类型 Description
< 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>', ...)
参数 必选 类型 Description
< text1>, <text2>, ... 是的 String 至少两个要组合的字符串
返回值 类型 Description
< text1text2...> String 从组合输入字符串创建的字符串

示例

此示例合并字符串“Hello”和“World”:

concat('Hello', 'World')

并返回以下结果: "HelloWorld"

包含

检查集合是否具有特定项。 找到项时返回 true,如果未找到,则返回 false。 此函数区分大小写。

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

具体而言,此函数适用于以下集合类型:

  • 用于查找子字符串的字符串
  • 用于查找值的数组
  • 用于查找的字典
参数 必选 类型 Description
< 收集> 是的 字符串、数组或字典 要检查的集合
< 价值> 是的 字符串、数组或字典分别 要查找的项
返回值 类型 Description
True 或 False 布尔 找到该项时返回 true。 如果未找到,则返回 false。

示例 1

此示例检查子字符串“world”的字符串“hello world”,并返回 true:

contains('hello world', 'world')

示例 2

此示例检查子字符串“universe”的字符串“hello world”,并返回 false:

contains('hello world', 'universe')

convertFromUtc

将时间戳从世界时协调(UTC)转换为目标时区。

convertFromUtc('<timestamp>', '<destinationTimeZone>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< destinationTimeZone> 是的 String 目标时区的名称。 有关时区名称,请参阅 Microsoft时区值,但可能需要从时区名称中删除任何标点符号。
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< sourceTimeZone> 是的 String 源时区的名称。 有关时区名称,请参阅 Microsoft时区值,但可能需要从时区名称中删除任何标点符号。
< destinationTimeZone> 是的 String 目标时区的名称。 有关时区名称,请参阅 Microsoft时区值,但可能需要从时区名称中删除任何标点符号。
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< sourceTimeZone> 是的 String 源时区的名称。 有关时区名称,请参阅 Microsoft时区值,但可能需要从时区名称中删除任何标点符号。
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>', ...)
参数 必选 类型 Description
< object1>、 <object2>、... 是的 任何,但不混合 创建数组的至少两个项
返回值 类型 Description
[<object1>, <object2>, ...] Array 从所有输入项创建的数组

示例

此示例从以下输入创建数组:

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

并返回以下结果: ["h", "e", "l", "l", "o"]

dataUri

返回字符串的数据统一资源标识符(URI)。

dataUri('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的字符串
返回值 类型 Description
< data-uri> String 输入字符串的数据 URI

示例

此示例为“hello”字符串创建数据 URI:

dataUri('hello')

并返回以下结果: "data:text/plain;charset=utf-8;base64,aGVsbG8="

dataUriToBinary

返回数据统一资源标识符(URI)的二进制版本。 使用此函数,而不是 decodeDataUri()。 尽管这两个函数的工作方式相同, dataUriBinary() 但首选。

dataUriToBinary('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的数据 URI
返回值 类型 Description
< binary-for-data-uri> String 数据 URI 的二进制版本

示例

此示例为此数据 URI 创建二进制版本:

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

并返回以下结果:

"01100100011000010111010001100001001110100111010001100101011110000111010000101111011100000 1101100011000010110100101101110001110110110001101101000011000010111001001110011011001010111 0100001111010111010101110100011001100010110100111000001110110110001001100001011100110110010 10011011000110100001011000110000101000111010101100111001101100010010001110011100000111101"

dataUriToString

返回数据统一资源标识符(URI)的字符串版本。

dataUriToString('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的数据 URI
返回值 类型 Description
< string-for-data-uri> String 数据 URI 的字符串版本

示例

此示例为此数据 URI 创建一个字符串:

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

并返回以下结果: "hello"

dayOfMonth

返回时间戳中的月份日期。

dayOfMonth('<timestamp>')
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
返回值 类型 Description
< month-of-month> 整数 指定时间戳中的月份日期

示例

此示例返回此时间戳中月份日期的数字:

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

并返回以下结果: 15

dayOfWeek (周)

从时间戳返回一周中的一天。

dayOfWeek('<timestamp>')
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
返回值 类型 Description
< 星期几> 整数 指定时间戳中的星期几为 0、星期一为 1 等

示例

此示例返回此时间戳中星期几的数字:

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

并返回以下结果: 3

dayOfYear

从时间戳返回一年中的一天。

dayOfYear('<timestamp>')
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
返回值 类型 Description
< year-of-year> 整数 指定时间戳中的年份日期

示例

此示例返回此时间戳中年份的天数:

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

并返回以下结果: 74

decodeBase64

返回 base64 编码字符串的字符串版本,有效解码 base64 字符串。 请考虑使用 base64ToString() 而不是 decodeBase64(). 尽管这两个函数的工作方式相同, base64ToString() 但首选。

decodeBase64('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要解码的 base64 编码字符串
返回值 类型 Description
< decoded-base64-string> String base64 编码字符串的字符串版本

示例

此示例为 base64 编码的字符串创建字符串:

decodeBase64('aGVsbG8=')

并返回以下结果: "hello"

decodeDataUri

返回数据统一资源标识符(URI)的二进制版本。 请考虑使用 dataUriToBinary(),而不是 decodeDataUri(). 尽管这两个函数的工作方式相同, dataUriToBinary() 但首选。

decodeDataUri('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要解码的数据 URI 字符串
返回值 类型 Description
< binary-for-data-uri> String 数据 URI 字符串的二进制版本

示例

此示例返回此数据 URI 的二进制版本:

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

并返回以下结果:

"01100100011000010111010001100001001110100111010001100101011110000111010000101111011100000 1101100011000010110100101101110001110110110001101101000011000010111001001110011011001010111 0100001111010111010101110100011001100010110100111000001110110110001001100001011100110110010 10011011000110100001011000110000101000111010101100111001101100010010001110011100000111101"

decodeUriComponent

返回一个字符串,该字符串将转义字符替换为解码的版本。

decodeUriComponent('<value>')
参数 必选 类型 Description
< 价值> 是的 String 包含要解码的转义字符的字符串
返回值 类型 Description
< decoded-uri> String 带解码转义字符的已更新字符串

示例

此示例将此字符串中的转义字符替换为解码的版本:

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

并返回以下结果: "https://contoso.com"

div

返回除以两个数字的整数结果。 若要获取其余结果,请参阅 mod()。

div(<dividend>, <divisor>)
参数 必选 类型 Description
< 股利> 是的 整数或浮点数 要除以除的数字
< 除数> 是的 整数或浮点数 分红的数字,但不能为 0
返回值 类型 Description
< quotient-result> 整数 将第一个数字除以第二个数字的整数结果

示例

这两个示例将第一个数字除以第二个数字:

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

并返回以下结果: 2

encodeUriComponent

通过将 URL 不安全字符替换为转义字符来返回字符串的统一资源标识符(URI)编码版本。 请考虑使用 uriComponent(),而不是 encodeUriComponent(). 尽管这两个函数的工作方式相同, uriComponent() 但首选。

encodeUriComponent('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换为 URI 编码格式的字符串
返回值 类型 Description
< encoded-uri> String 包含转义字符的 URI 编码字符串

示例

此示例为此字符串创建 URI 编码版本:

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

并返回以下结果: "http%3A%2F%2Fcontoso.com"

检查集合是否为空。 如果集合为空,则返回 true;如果未为空,则返回 false。

empty('<collection>')
empty([<collection>])
参数 必选 类型 Description
< 收集> 是的 字符串、数组或对象 要检查的集合
返回值 类型 Description
True 或 False 布尔 当集合为空时返回 true。 如果未为空,则返回 false。

示例

这些示例检查指定的集合是否为空:

empty('')
empty('abc')

并返回以下结果:

  • 第一个示例:传递空字符串,因此函数返回 true
  • 第二个示例:传递字符串“abc”,因此函数返回 false

以……结束

检查字符串是否以特定的子字符串结尾。 找到子字符串时返回 true,如果未找到,则返回 false。 此函数不区分大小写。

endsWith('<text>', '<searchText>')
参数 必选 类型 Description
< 发短信> 是的 String 要检查的字符串
< searchText> 是的 String 要查找的结束子字符串
返回值 类型 Description
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>')
参数 必选 类型 Description
< object1>、 <object2> 是的 各种 要比较的值、表达式或对象
返回值 类型 Description
True 或 False 布尔 当两者等效时返回 true。 如果不是等效项,则返回 false。

示例

这些示例检查指定的输入是否等效。

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

并返回以下结果:

  • 第一个示例:这两个值都是等效的,因此函数返回 true
  • 第二个示例:两个值都不等效,因此函数返回 false

第一

从字符串或数组返回第一项。

first('<collection>')
first([<collection>])
参数 必选 类型 Description
< 收集> 是的 字符串或数组 要在其中查找第一项的集合
返回值 类型 Description
< first-collection-item> 任意 集合中的第一项

示例

这些示例查找这些集合中的第一项:

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

并返回以下结果:

  • 第一个示例: "h"
  • 第二个示例: 0

float

将浮点数的字符串版本转换为实际的浮点数。

float('<value>')
参数 必选 类型 Description
< 价值> 是的 String 具有要转换的有效浮点数的字符串
返回值 类型 Description
< float-value> 漂浮 指定字符串的浮点数

示例

此示例为此浮点数创建字符串版本:

float('10.333')

并返回以下结果: 10.333

formatDateTime

以指定格式返回时间戳。

formatDateTime('<timestamp>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>?)
参数 必选 类型 Description
< 间隔> 是的 整数 要添加的指定时间单位数
< timeUnit> 是的 String 间隔一起使用的时间单位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”、“Year”
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>?)
参数 必选 类型 Description
< 间隔> 是的 整数 要减去的指定时间单位数
< timeUnit> 是的 String 间隔一起使用的时间单位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”、“Year”
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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”。 此示例减去 5 天,并将结果转换为“D”格式:

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

并返回以下结果: "Saturday, January 27, 2018"

检查第一个值是否大于第二个值。 当第一个值更多时返回 true,或返回 false(如果更少)。

greater(<value>, <compareTo>)
greater('<value>', '<compareTo>')
参数 必选 类型 Description
< 价值> 是的 整数、浮点数或字符串 检查是否大于第二个值的第一个值
< compareTo> 是的 整数、浮点数或字符串分别 比较值
返回值 类型 Description
True 或 False 布尔 当第一个值大于第二个值时返回 true。 当第一个值等于或小于第二个值时返回 false。

示例

这些示例检查第一个值是否大于第二个值:

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

并返回以下结果:

  • 第一个示例: true
  • 第二个示例: false

greaterOrEquals

检查第一个值是否大于或等于第二个值。 当第一个值大于或等于时返回 true,或者在第一个值小于时返回 false。

greaterOrEquals(<value>, <compareTo>)
greaterOrEquals('<value>', '<compareTo>')
参数 必选 类型 Description
< 价值> 是的 整数、浮点数或字符串 检查是否大于或等于第二个值的第一个值
< compareTo> 是的 整数、浮点数或字符串分别 比较值
返回值 类型 Description
True 或 False 布尔 当第一个值大于或等于第二个值时返回 true。 当第一个值小于第二个值时返回 false。

示例

这些示例检查第一个值是大于还是等于第二个值:

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

并返回以下结果:

  • 第一个示例: true
  • 第二个示例: false

guid

以字符串的形式生成全局唯一标识符(GUID),例如“c2ecc88d-88c8-4096-912c-d6f2e2b138ce”:

guid()

此外,可以为 GUID 指定不同于默认格式“D”的格式,即用连字符分隔的 32 位数字。

guid('<format>')
参数 必选 类型 Description
< 格式> String 返回的 GUID 的单个 格式说明符 。 默认情况下,格式为“D”,但可以使用“N”、“D”、“B”、“P”或“X”。
返回值 类型 Description
< GUID-value> String 随机生成的 GUID

示例

此示例生成相同的 GUID,但与 32 位数字相同,用连字符分隔,并括在括号中:

guid('P')

并返回以下结果: "(c2ecc88d-88c8-4096-912c-d6f2e2b138ce)"

if

检查表达式是 true 还是 false。 根据结果返回指定的值。

if(<expression>, <valueIfTrue>, <valueIfFalse>)
参数 必选 类型 Description
< 表达> 是的 布尔 要检查的表达式
< valueIfTrue> 是的 任意 表达式为 true 时要返回的值
< valueIfFalse> 是的 任意 表达式为 false 时要返回的值
返回值 类型 Description
< specified-return-value> 任意 根据表达式是 true 还是 false 返回的指定值

示例

此示例返回 "yes" 是因为指定的表达式返回 true。 否则,该示例返回 "no"

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

indexOf

返回子字符串的起始位置或索引值。 此函数不区分大小写,索引以数字 0 开头。

indexOf('<text>', '<searchText>')
参数 必选 类型 Description
< 发短信> 是的 String 包含要查找的子字符串的字符串
< searchText> 是的 String 要查找的子字符串
返回值 类型 Description
< index-value> 整数 指定子字符串的起始位置或索引值。
如果未找到字符串,则返回数字 -1。

示例

本示例在“hello world”字符串中查找“world”子字符串的起始索引值:

indexOf('hello world', 'world')

并返回以下结果: 6

int

返回字符串的整数版本。

int('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的字符串
返回值 类型 Description
< integer-result> 整数 指定字符串的整数版本

示例

此示例为字符串“10”创建整数版本:

int('10')

并返回以下结果: 10

json

返回字符串或 XML 的 JavaScript 对象表示法(JSON)类型值或对象。

json('<value>')
参数 必选 类型 Description
< 价值> 是的 字符串或 XML 要转换的字符串或 XML
返回值 类型 Description
< 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([<collection1>], [<collection2>], ...)
intersection('<collection1>', '<collection2>', ...)
参数 必选 类型 Description
< collection1>, <collection2>, ... 是的 数组或对象,但不是两者 需要常用项的集合
返回值 类型 Description
< common-items> 数组或对象,分别 一个集合,该集合中只有指定集合中的通用项

示例

此示例查找这些数组中的常见项:

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

返回 包含以下项的数组: [1, 2]

加入

返回一个字符串,其中包含数组中的所有项,并且每个字符由 分隔符分隔。

join([<collection>], '<delimiter>')
参数 必选 类型 Description
< 收集> 是的 Array 具有要联接的项的数组
< 定界符> 是的 String 在生成的字符串中的每个字符之间显示的分隔符
返回值 类型 Description
< char1><定界符><char2><定界符>... String 从指定数组中的所有项创建的生成的字符串

示例

此示例使用指定字符作为分隔符从此数组中的所有项创建字符串:

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

并返回以下结果: "a.b.c"

最后

从集合中返回最后一项。

last('<collection>')
last([<collection>])
参数 必选 类型 Description
< 收集> 是的 字符串或数组 要在其中查找最后一项的集合
返回值 类型 Description
< last-collection-item> 字符串或数组,分别 集合中的最后一项

示例

这些示例查找这些集合中的最后一项:

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

并返回以下结果:

  • 第一个示例: "d"
  • 第二个示例: 3

lastIndexOf

返回子字符串的最后一个匹配项的起始位置或索引值。 此函数不区分大小写,索引以数字 0 开头。

lastIndexOf('<text>', '<searchText>')
参数 必选 类型 Description
< 发短信> 是的 String 包含要查找的子字符串的字符串
< searchText> 是的 String 要查找的子字符串
返回值 类型 Description
< ending-index-value> 整数 指定子字符串的最后一个匹配项的起始位置或索引值。
如果未找到字符串,则返回数字 -1。

示例

本示例查找“hello world”字符串中“world”子字符串的最后一个匹配项的起始索引值:

lastIndexOf('hello world', 'world')

并返回以下结果: 6

length

返回集合中的项数。

length('<collection>')
length([<collection>])
参数 必选 类型 Description
< 收集> 是的 字符串或数组 包含要计数的项的集合
返回值 类型 Description
< length-or-count> 整数 集合中的项数

示例

这些示例计算这些集合中的项数:

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

并返回以下结果: 4

检查第一个值是否小于第二个值。 当第一个值较少时返回 true,或者在第一个值更多时返回 false。

less(<value>, <compareTo>)
less('<value>', '<compareTo>')
参数 必选 类型 Description
< 价值> 是的 整数、浮点数或字符串 检查是否小于第二个值的第一个值
< compareTo> 是的 整数、浮点数或字符串分别 比较项
返回值 类型 Description
True 或 False 布尔 当第一个值小于第二个值时返回 true。 当第一个值等于或大于第二个值时返回 false。

示例

这些示例检查第一个值是否小于第二个值。

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

并返回以下结果:

  • 第一个示例: true
  • 第二个示例: false

lessOrEquals

检查第一个值是否小于或等于第二个值。 当第一个值小于或等于时返回 true,或者在第一个值更多时返回 false。

lessOrEquals(<value>, <compareTo>)
lessOrEquals('<value>', '<compareTo>')
参数 必选 类型 Description
< 价值> 是的 整数、浮点数或字符串 检查第一个值是否小于或等于第二个值
< compareTo> 是的 整数、浮点数或字符串分别 比较项
返回值 类型 Description
True 或 False 布尔 当第一个值小于或等于第二个值时返回 true。 当第一个值大于第二个值时返回 false。

示例

这些示例检查第一个值是否小于或等于第二个值。

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

并返回以下结果:

  • 第一个示例: true
  • 第二个示例: false

最大值

返回列表或数组中的最大值,其中包含两端包含的数字。

max(<number1>, <number2>, ...)
max([<number1>, <number2>, ...])
参数 必选 类型 Description
< number1>、 <number2>、... 是的 整数、浮点数或两者 要从中获取最大值的数字集
[<number1>, <number2>, ...] 是的 数组 - 整数、浮点数或两者 要从中获取最大值的数字数组
返回值 类型 Description
< max-value> 整数或浮点数 指定数组或数字集中的最高值

示例

这些示例从数字集和数组中获取最高值:

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

并返回以下结果: 3

分钟

从一组数字或数组中返回最小值。

min(<number1>, <number2>, ...)
min([<number1>, <number2>, ...])
参数 必选 类型 Description
< number1>、 <number2>、... 是的 整数、浮点数或两者 要从中获取最小值的数字集
[<number1>, <number2>, ...] 是的 数组 - 整数、浮点数或两者 要从中获取最小值的数字数组
返回值 类型 Description
< min-value> 整数或浮点数 指定数字集或指定数组中的最小值

示例

这些示例获取数字集和数组中的最小值:

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

并返回以下结果: 1

mod

返回除以两个数字的余数。 若要获取整数结果,请参阅 div()。

mod(<dividend>, <divisor>)
参数 必选 类型 Description
< 股利> 是的 整数或浮点数 要除以除的数字
< 除数> 是的 整数或浮点数 分红的数字,但不能为 0。
返回值 类型 Description
< modulo-result> 整数或浮点数 将第一个数字除以第二个数字的余数

示例

此示例将第一个数字除以第二个数字:

mod(3, 2)

并返回以下结果: 1

mul

返回乘以两个数字的产品。

mul(<multiplicand1>, <multiplicand2>)
参数 必选 类型 Description
< multiplicand1> 是的 整数或浮点数 乘以 multiplicand2 的数字
< multiplicand2> 是的 整数或浮点数 倍数乘数 1 的数字
返回值 类型 Description
< product-result> 整数或浮点数 将第一个数字乘以第二个数字的产品

示例

这些示例将第一个数字乘以第二个数字:

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

并返回以下结果:

  • 第一个示例: 2
  • 第二个示例 3

检查表达式是否为 false。 如果表达式为 false,则返回 true;如果为 true,则返回 false。

not(<expression>)
参数 必选 类型 Description
< 表达> 是的 布尔 要检查的表达式
返回值 类型 Description
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>)
参数 必选 类型 Description
< expression1,expression2><> 是的 布尔 要检查的表达式
返回值 类型 Description
True 或 False 布尔 如果至少有一个表达式为 true,则返回 true。 当两个表达式均为 false 时返回 false。

示例 1

这些示例检查至少一个表达式是否为 true:

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

并返回以下结果:

  • 第一个示例:至少有一个表达式为 true,因此函数返回 true
  • 第二个示例:两个表达式均为 false,因此函数返回 false

示例 2

这些示例检查至少一个表达式是否为 true:

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

并返回以下结果:

  • 第一个示例:至少有一个表达式为 true,因此函数返回 true
  • 第二个示例:两个表达式均为 false,因此函数返回 false

兰特

从指定范围返回一个随机整数,该整数仅在起始端包含。

rand(<minValue>, <maxValue>)
参数 必选 类型 Description
< minValue> 是的 整数 范围中最低的整数
< maxValue> 是的 整数 函数可以返回的范围中最高整数后面的整数
返回值 类型 Description
< random-result> 整数 从指定范围返回的随机整数

示例

此示例从指定范围中获取一个随机整数,不包括最大值:

rand(1, 5)

并返回以下数字之一:1、、234

范围

返回从指定整数开始的整数数组。

range(<startIndex>, <count>)
参数 必选 类型 Description
< startIndex> 是的 整数 将数组作为第一项启动的整数值
< 计数> 是的 整数 数组中的整数数
返回值 类型 Description
[<range-result>] Array 包含从指定索引开始的整数的数组

示例

此示例创建一个整数数组,该数组从指定的索引开始,并具有指定的整数数:

range(1, 4)

并返回以下结果: [1, 2, 3, 4]

替换

将子字符串替换为指定的字符串,并返回结果字符串。 此函数区分大小写。

replace('<text>', '<oldText>', '<newText>')
参数 必选 类型 Description
< 发短信> 是的 String 包含要替换的子字符串的字符串
< oldText> 是的 String 要替换的子字符串
< newText> 是的 String 替换字符串
返回值 类型 Description
< updated-text> String 替换子字符串后更新的字符串
如果未找到子字符串,则返回原始字符串。

示例

本示例在“旧字符串”中找到“old”子字符串,并将“old”替换为“new”:

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

并返回以下结果: "the new string"

跳过

从集合的前面删除项,并返回 所有其他 项。

skip([<collection>], <count>)
参数 必选 类型 Description
< 收集> 是的 Array 要删除其项的集合
< 计数> 是的 整数 前方要移除的项数的正整数
返回值 类型 Description
[<updated-collection>] Array 删除指定项后更新的集合

示例

此示例从指定数组的前面删除一个项,即数字 0:

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

并返回包含剩余项的此数组: [1,2,3]

拆分

返回一个数组,该数组包含子字符串,用逗号分隔,基于原始字符串中的指定分隔符字符。

split('<text>', '<delimiter>')
参数 必选 类型 Description
< 发短信> 是的 String 要根据原始字符串中的指定分隔符分隔为子字符串的字符串
< 定界符> 是的 String 要用作分隔符的原始字符串中的字符
返回值 类型 Description
[<substring1,substring2><>,...] Array 包含原始字符串中的子字符串的数组,用逗号分隔

示例

此示例基于指定字符创建一个数组,该数组基于指定字符作为分隔符从指定字符串创建子字符串:

split('a_b_c', '_')

并返回此数组作为结果: ["a","b","c"]

startOfDay

返回时间戳的当天开始时间。

startOfDay('<timestamp>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< updated-timestamp> String 指定的时间戳,但从当天的零小时标记开始

示例

此示例查找此时间戳的开始时间:

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

并返回以下结果: "2018-03-15T00:00:00.0000000Z"

startOfHour

返回时间戳的小时开始时间。

startOfHour('<timestamp>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< updated-timestamp> String 指定的时间戳,但从小时零分钟标记开始

示例

此示例查找此时间戳的小时开始时间:

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

并返回以下结果: "2018-03-15T13:00:00.0000000Z"

startOfMonth

返回时间戳的月份开始。

startOfMonth('<timestamp>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< updated-timestamp> String 指定的时间戳,但从月份的第一天开始,以零小时标记开始

示例

此示例返回此时间戳的月份开始:

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

并返回以下结果: "2018-03-01T00:00:00.0000000Z"

以...开始

检查字符串是否以特定的子字符串开头。 找到子字符串时返回 true,如果未找到,则返回 false。 此函数不区分大小写。

startsWith('<text>', '<searchText>')
参数 必选 类型 Description
< 发短信> 是的 String 要检查的字符串
< searchText> 是的 String 要查找的起始字符串
返回值 类型 Description
True 或 False 布尔 找到起始子字符串时返回 true。 如果未找到,则返回 false。

示例 1

此示例检查“hello world”字符串是否以“hello”子字符串开头:

startsWith('hello world', 'hello')

并返回以下结果: true

示例 2

此示例检查“hello world”字符串是否以“greetings”子字符串开头:

startsWith('hello world', 'greetings')

并返回以下结果: false

字符串

返回值的字符串版本。

string(<value>)
参数 必选 类型 Description
< 价值> 是的 任意 要转换的值
返回值 类型 Description
< string-value> String 指定值的字符串版本

示例 1

此示例为此数字创建字符串版本:

string(10)

并返回以下结果: "10"

示例 2

此示例为指定的 JSON 对象创建一个字符串,并使用反斜杠字符 (\) 作为双引号 () 的转义字符。

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

并返回以下结果: "{ \\"name\\": \\"Sophie Owen\\" }"

子项

返回从第一个数字中减去第二个数字的结果。

sub(<minuend>, <subtrahend>)
参数 必选 类型 Description
< 被减数> 是的 整数或浮点数 从中减去减的数值
< 减数> 是的 整数或浮点数 要从 minuend 中减去的数字
返回值 类型 Description
< 结果> 整数或浮点数 从第一个数字中减去第二个数字的结果

示例

此示例从第一个数字中减去第二个数字:

sub(10.3, .3)

并返回以下结果: 10

substring

从指定位置或索引开始返回字符串中的字符。 索引值以数字 0 开头。

substring('<text>', <startIndex>, <length>)
参数 必选 类型 Description
< 发短信> 是的 String 所需字符的字符串
< startIndex> 是的 整数 正数等于或大于 0,用作起始位置或索引值
< 长度> 是的 整数 子字符串中所需的正数字符数
返回值 类型 Description
< substring-result> String 具有指定字符数的子字符串,从源字符串中的指定索引位置开始

示例

此示例从指定的字符串创建五个字符的子字符串,从索引值 6 开始:

substring('hello world', 6, 5)

并返回以下结果: "world"

subtractFromTime

从时间戳中减去一些时间单位。 另请参阅 getPastTime

subtractFromTime('<timestamp>', <interval>, '<timeUnit>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 间隔> 是的 整数 要减去的指定时间单位数
< timeUnit> 是的 String 间隔一起使用的时间单位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”、“Year”
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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('<collection>', <count>)
take([<collection>], <count>)
参数 必选 类型 Description
< 收集> 是的 字符串或数组 所需项的集合
< 计数> 是的 整数 要从前面获取的项数的正整数
返回值 类型 Description
< 子集> 或 [<子集>] 字符串或数组,分别 一个字符串或数组,其中包含从原始集合前面获取的指定数量的项

示例

这些示例从这些集合的前面获取指定的项数:

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

并返回以下结果:

  • 第一个示例: "abc"
  • 第二个示例: [0, 1, 2]

返回 ticks 指定时间戳的属性值。 刻度是 100 纳秒间隔。

ticks('<timestamp>')
参数 必选 类型 Description
< 时间戳> 是的 String 时间戳的字符串
返回值 类型 Description
< ticks-number> 整数 自输入时间戳以来,公历中自 12:00:00:00 午夜起经过的刻度数

toLower

以小写格式返回字符串。 如果字符串中的字符没有小写版本,则返回的字符串中该字符保持不变。

toLower('<text>')
参数 必选 类型 Description
< 发短信> 是的 String 要以小写格式返回的字符串
返回值 类型 Description
< lowercase-text> String 采用小写格式的原始字符串

示例

此示例将此字符串转换为小写:

toLower('Hello World')

并返回以下结果: "hello world"

toUpper

以大写格式返回字符串。 如果字符串中的字符没有大写版本,该字符在返回的字符串中保持不变。

toUpper('<text>')
参数 必选 类型 Description
< 发短信> 是的 String 要以大写格式返回的字符串
返回值 类型 Description
< uppercase-text> String 采用大写格式的原始字符串

示例

此示例将此字符串转换为大写:

toUpper('Hello World')

并返回以下结果: "HELLO WORLD"

剪裁

从字符串中删除前导空格和尾随空格,并返回更新后的字符串。

trim('<text>')
参数 必选 类型 Description
< 发短信> 是的 String 包含要删除的前导空格和尾随空格的字符串
返回值 类型 Description
< updatedText> String 原始字符串的更新版本,不带前导或尾随空格

示例

本示例从字符串“Hello World”中删除前导空格和尾随空格:

trim(' Hello World  ')

并返回以下结果: "Hello World"

返回包含指定集合 中的所有 项的集合。 若要出现在结果中,项可以出现在传递给此函数的任何集合中。 如果一个或多个项具有相同的名称,则结果中会显示具有该名称的最后一项。

union('<collection1>', '<collection2>', ...)
union([<collection1>], [<collection2>], ...)
参数 必选 类型 Description
< collection1>, <collection2>, ... 是的 数组或对象,但不是两者 要从中获取 所有 项的集合
返回值 类型 Description
< updatedCollection> 数组或对象,分别 包含指定集合中所有项的集合 - 无重复项

示例

此示例从这些集合中获取 所有 项:

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

并返回以下结果: [1, 2, 3, 10, 101]

uriComponent

通过将 URL 不安全字符替换为转义字符来返回字符串的统一资源标识符(URI)编码版本。 使用此函数,而不是 encodeUriComponent()。 尽管这两个函数的工作方式相同, uriComponent() 但首选。

uriComponent('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换为 URI 编码格式的字符串
返回值 类型 Description
< encoded-uri> String 包含转义字符的 URI 编码字符串

示例

此示例为此字符串创建 URI 编码版本:

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

并返回以下结果: "http%3A%2F%2Fcontoso.com"

uriComponentToBinary

返回统一资源标识符(URI)组件的二进制版本。

uriComponentToBinary('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要转换的 URI 编码字符串
返回值 类型 Description
< binary-for-encoded-uri> String URI 编码字符串的二进制版本。 二进制内容是 base64 编码的,由 < a0/> 表示。

示例

此示例为此 URI 编码字符串创建二进制版本:

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

并返回以下结果:

"001000100110100001110100011101000111000000100101001100 11010000010010010100110010010001100010010100110010010001 10011000110110111101101110011101000110111101110011011011 110010111001100011011011110110110100100010"

uriComponentToString

返回统一资源标识符(URI)编码字符串的字符串版本,有效解码 URI 编码的字符串。

uriComponentToString('<value>')
参数 必选 类型 Description
< 价值> 是的 String 要解码的 URI 编码字符串
返回值 类型 Description
< decoded-uri> String URI 编码字符串的解码版本

示例

此示例为此 URI 编码的字符串创建解码的字符串版本:

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

并返回以下结果: "https://contoso.com"

utcNow

返回当前时间戳。

utcNow('<format>')

(可选)可以使用格式参数指定不同的<>。

参数 必选 类型 Description
< 格式> String 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
返回值 类型 Description
< 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>')
参数 必选 类型 Description
< 价值> 是的 String 包含要转换的 JSON 对象的字符串
JSON 对象必须只有一个根属性,不能是数组。
将反斜杠字符 (\) 用作双引号 () 的转义字符。
返回值 类型 Description
< xml-version> 物体 指定字符串或 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>')
参数 必选 类型 Description
< xml> 是的 任意 要搜索与 XPath 表达式值匹配的节点或值的 XML 字符串
< xpath> 是的 任意 用于查找匹配的 XML 节点或值的 XPath 表达式
返回值 类型 Description
< xml-node> XML 仅当单个节点与指定的 XPath 表达式匹配时,XML 节点
< 价值> 任意 仅当单个值与指定的 XPath 表达式匹配时,来自 XML 节点的值
[<xml-node1>, <xml-node2>, ...]
-or-
[<value1>, <value2>, ...]
Array 具有与指定 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\"]')

  • 表达式 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"

注释

可以向数据流表达式添加注释,但不能在管道表达式中添加注释。

有关常规参数用法的说明,请参阅 Fabric 中的数据工厂的参数