Compartir a través de

有关 Azure 逻辑应用和 Power Automate 中工作流的表达式中的函数的参考指南

适用于:Azure 逻辑应用(消耗型 + 标准型)

对于 Azure 逻辑应用Power Automate 中的工作流定义,某些 表达式 从工作流开始运行时运行时作中获取其值,这些作可能尚不存在。 若要引用或处理这些表达式中的值,可以使用工作流定义语言提供的表达式函数

注释

本参考指南适用于 Azure 逻辑应用和 Power Automate,但存在于 Azure 逻辑应用文档中。 尽管本指南特别提到逻辑应用工作流,但这些函数适用于 Power Automate 中的流和 Azure 逻辑应用中的工作流。 有关 Power Automate 中的函数和表达式的详细信息,请参阅 在条件中使用表达式

例如,当需要整数或浮点数求和时,可以使用数学函数(如 add() 函数)来计算值。 下面是可以使用函数执行的其他示例任务:

任务 函数语法 结果
以小写格式返回字符串。 toLower('<text>')

例如:toLower('Hello')
“hello”
返回全局唯一标识符(GUID)。 guid() “c2ecc88d-88c8-4096-912c-d6f2e2b138ce”

若要 根据函数的常规用途查找函数,请查看下表。 或者,有关每个函数的详细信息,请参阅 字母顺序列表

表达式中的函数

为了演示如何在表达式中使用函数,此示例演示如何从customerName参数获取值,并在表达式中使用 parameters() 函数将该accountName值分配给属性:

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

下面是在表达式中使用函数的其他一些常规方法:

任务 表达式中的函数语法
通过将该项传递给函数,对项执行工作。 “@<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() 函数可以将两个或多个字符串值作为参数。 此函数将这些字符串合并为一个字符串。 可以传入字符串文本,例如“索菲亚”和“Owen”,以便获得组合字符串“索菲亚”:

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

或者,可以从参数获取字符串值。 此示例在每个参数和firstName参数lastName中使用parameters()concat()函数。 然后,将生成的字符串传递给 concat() 函数,以便获得组合字符串,例如“索菲亚奥文”:

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

无论哪种方式,这两个示例都向属性分配结果 customerName

使用函数的注意事项

  • 设计器不会计算在设计时用作函数参数的运行时表达式。 设计器要求在设计时完全计算所有表达式。

  • 函数参数从左到右计算。

  • 在参数定义的语法中,参数后出现的问号(?)意味着参数是可选的。 例如,请参阅 getFutureTime()。

  • 使用纯文本内联显示的函数表达式需要使用大括号({})来改用表达式的内插格式。 此格式有助于避免分析问题。 如果函数表达式没有与纯文本内联显示,则不需要大括号。

    以下示例显示了正确和不正确的语法:

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

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

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

以下各节根据函数的常规用途组织函数,也可以按 字母顺序浏览这些函数。

字符串函数

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

字符串函数 任务
将字符串或集合拆分为长度相等的区块。
concat 合并两个或多个字符串,并返回组合字符串。
endsWith 检查字符串是否以指定的子字符串结尾。
formatNumber 根据指定的格式返回数字作为字符串
guid 以字符串的形式生成全局唯一标识符(GUID)。
indexOf 返回子字符串的起始位置。
isFloat 返回一个布尔值,该值指示字符串是否为浮点数。
isInt 返回一个布尔值,该值指示字符串是否为整数。
lastIndexOf 返回子字符串的最后一个匹配项的起始位置。
长度 返回字符串或数组中的项数。
nthIndexOf 返回字符串中出现 第 n个子字符串的起始位置或索引值。
替换 将子字符串替换为指定的字符串,并返回更新后的字符串。
通过指定起始和结束位置或值返回子字符串。 另请参阅 子字符串
拆分 返回一个数组,该数组包含子字符串(用逗号分隔)与基于原始字符串中的指定分隔符字符的较大字符串。
startsWith 检查字符串是否以特定的子字符串开头。
子字符串 从指定位置开始返回字符串中的字符。 另请参阅 切片
toLower 以小写格式返回字符串。
toUpper 以大写格式返回字符串。
修剪 从字符串中删除前导空格和尾随空格,并返回更新后的字符串。

集合函数

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

集合函数 任务
将字符串或集合拆分为长度相等的区块。
包含 检查集合是否具有特定项。
检查集合是否为空。
第一 从集合中返回第一项。
intersection 返回一个集合, 该集合中只有 指定集合中的常用项。
项目 如果此函数出现在数组上的重复作中,则在作的当前迭代期间返回数组中的当前项。
加入 返回一个字符串,其中包含数组 中的所有 项,用指定字符分隔。
最后 从集合中返回最后一项。
长度 返回字符串或数组中的项数。
反向 反转数组中项的顺序。
跳过 从集合的前面删除项,并返回 所有其他 项。
排序 对集合中的项进行排序。
从集合的前面返回项。
union 返回包含指定集合 中的所有 项的集合。

逻辑比较函数

若要处理条件、比较值和表达式结果或计算各种逻辑,可以使用这些逻辑比较函数。 有关每个函数的完整参考,请参阅 字母顺序列表

注释

如果使用逻辑函数或条件来比较值,null 值将转换为空字符串 ("") 值。 与空字符串而不是 null 值进行比较时,条件的行为有所不同。 有关详细信息,请参阅 string() 函数

逻辑比较函数 任务
检查所有表达式是否均为 true。
等于 检查这两个值是否等效。
检查第一个值是否大于第二个值。
大于或等于 检查第一个值是否大于或等于第二个值。
如果 检查表达式是 true 还是 false。 根据结果返回指定的值。
isFloat 返回一个布尔值,该值指示字符串是否为浮点数。
isInt 返回一个布尔值,该值指示字符串是否为整数。
更少 检查第一个值是否小于第二个值。
小于或等于 检查第一个值是否小于或等于第二个值。
检查表达式是否为 false。
检查至少一个表达式是否为 true。

转换函数

若要更改值的类型或格式,可以使用这些转换函数。 例如,可以将值从布尔值更改为整数。 有关 Azure 逻辑应用在转换过程中如何处理内容类型的详细信息,请参阅 “处理内容类型”。 有关每个函数的完整参考,请参阅 字母顺序列表

注释

Azure 逻辑应用自动或隐式执行 base64 编码和解码,因此无需使用编码和解码函数手动执行这些转换。 但是,如果在设计器中仍然使用这些函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不会影响其效果,除非编辑函数的参数值,这将从代码中删除函数及其效果。 有关详细信息,请参阅 隐式数据类型转换

转换函数 任务
array 从单个指定输入返回数组。 有关多个输入,请参阅 createArray
base64 返回字符串的 base64 编码版本。
base64ToBinary 返回 base64 编码字符串的二进制版本。
base64ToString 返回 base64 编码字符串的字符串版本。
二元的 返回输入值的二进制版本。
bool 返回输入值的布尔版本。
createArray 从多个输入返回数组。
dataUri 返回输入值的数据 URI。
dataUriToBinary 返回数据 URI 的二进制版本。
dataUriToString 返回数据 URI 的字符串版本。
decimal 返回十进制字符串的十进制数。
decodeBase64 返回 base64 编码字符串的字符串版本。
decodeDataUri 返回数据 URI 的二进制版本。
decodeUriComponent 返回一个字符串,该字符串将转义字符替换为解码的版本。
encodeUriComponent 返回一个字符串,该字符串将 URL 不安全字符替换为转义字符。
漂浮 返回输入值的浮点数。
int 返回字符串的整数版本。
json 返回字符串或 XML 的 JavaScript 对象表示法(JSON)类型值或对象。
字符串 返回输入值的字符串版本。
uriComponent 通过将 URL 不安全字符替换为转义字符,返回输入值的 URI 编码版本。
uriComponentToBinary 返回 URI 编码字符串的二进制版本。
uriComponentToString 返回 URI 编码字符串的字符串版本。
xml 返回字符串的 XML 版本。

隐式数据类型转换

Azure 逻辑应用自动或隐式转换某些数据类型,因此无需手动执行这些转换。 例如,如果使用预期字符串作为输入的非字符串值,Azure 逻辑应用会自动将非字符串值转换为字符串。

例如,假设触发器将数值作为输出返回:

triggerBody()?['123']

如果使用需要字符串输入的此数字输出(例如 URL),Azure 逻辑应用将使用大括号({}) 表示法自动将值转换为字符串:

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

Base64 编码和解码

Azure 逻辑应用自动或隐式执行 base64 编码或解码,因此无需使用相应的函数手动执行这些转换:

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

注释

如果在使用设计器时手动添加这些函数中的任何一个,可以直接添加到触发器或作,或者通过使用表达式编辑器,导航离开设计器,然后返回设计器,函数会从设计器中消失,只留下参数值。 如果选择使用此函数的触发器或作而不编辑函数的参数值,则也会发生此行为。 此结果仅影响函数的可见性,而不会影响效果。 在代码视图中,函数不受影响。 但是,如果编辑函数的参数值,函数及其效果都将从代码视图中删除,只留下函数的参数值。

数学函数

若要使用整数和浮点数,可以使用这些数学函数。 有关每个函数的完整参考,请参阅 字母顺序列表

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

日期和时间函数

若要处理日期和时间,可以使用这些日期和时间函数。 有关每个函数的完整参考,请参阅 字母顺序列表

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

工作流函数

这些工作流函数可帮助你:

  • 获取有关运行时工作流实例的详细信息。
  • 使用用于实例化逻辑应用或流的输入。
  • 引用触发器和作的输出。

例如,可以引用一个作的输出,并在后续作中使用该数据。 有关每个函数的完整参考,请参阅 字母顺序列表

工作流函数 任务
行动 在运行时返回当前作的输出,或来自其他 JSON 名称和值对的值。 另请参阅
行动 在运行时返回作的输出,或来自其他 JSON 名称和值对的值。 另请参阅
body 在运行时返回作的 body 输出。
formDataMultiValues 使用 与表单数据表单编码 作输出中的键名称匹配的值创建数组。
formDataValue 返回与作的 表单数据表单编码输出中的键名称匹配的单个值。
项目 如果此函数出现在数组上的重复作中,则在作的当前迭代期间返回数组中的当前项。
items 如果此函数出现在 Foreach 或 Until 循环中,则返回指定循环中的当前项。
iterationIndexes 如果此函数出现在 Until 循环中,则返回当前迭代的索引值。 可以在嵌套 Until 循环内使用此函数。
listCallbackUrl 返回调用触发器或作的“回调 URL”。
multipartBody 返回作输出中具有多个部分的特定部件的正文。
输出 在运行时返回作的输出。
参数 返回工作流定义中介绍的参数的值。
结果 返回指定作用域内顶级作的输入和输出,例如 For_eachUntilScope
触发 在运行时或从其他 JSON 名称和值对返回触发器的输出。 另请参阅 triggerOutputstriggerBody
triggerBody 在运行时返回触发器的 body 输出。 请参阅 触发器
triggerFormDataValue 返回与 表单数据表单编码 触发器输出中的键名称匹配的单个值。
triggerMultipartBody 返回触发器多部分输出中特定部件的正文。
triggerFormDataMultiValues 创建一个数组,其值与 表单数据表单编码 触发器输出中的键名称匹配。
triggerOutputs 在运行时返回触发器的输出,或来自其他 JSON 名称和值对的值。 请参阅 触发器
变量 返回指定变量的值。
工作流 返回有关运行时工作流本身的所有详细信息。

URI 分析函数

若要使用统一资源标识符(URI),并获取这些 URI 的各种属性值,可以使用这些 URI 分析函数。 有关每个函数的完整参考,请参阅 字母顺序列表

URI 分析函数 任务
uriHost 返回 host 统一资源标识符(URI)的值。
uriPath 返回 path 统一资源标识符(URI)的值。
uriPathAndQuery path返回统一资源标识符(URI)的和query值。
uriPort 返回 port 统一资源标识符(URI)的值。
uriQuery 返回 query 统一资源标识符(URI)的值。
uriScheme 返回 scheme 统一资源标识符(URI)的值。

作函数:JSON 和 XML

若要使用 JSON 对象和 XML 节点,可以使用这些作函数。 有关每个函数的完整参考,请参阅 字母顺序列表

作函数 任务
addProperty 将属性及其值或名称值对添加到 JSON 对象,并返回更新的对象。
合并 从一个或多个参数返回第一个非 null 值。
removeProperty 从 JSON 对象中删除属性并返回更新的对象。
setProperty 设置 JSON 对象的属性的值并返回更新的对象。
xpath 检查 XML 中是否存在与 XPath(XML 路径语言)表达式匹配的节点或值,并返回匹配的节点或值。

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

所有函数 - 按字母顺序排列的列表

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

A

操作

在运行时返回 当前 作的输出,或其他 JSON 名称和值对中的值,你可以将其分配给表达式。 默认情况下,此函数引用整个作对象,但可以选择指定所需的属性。 另请参阅作()。

只能在以下位置使用 action() 函数:

  • unsubscribe Webhook作的属性,以便可以从原始subscribe请求访问结果
  • trackedProperties作的属性
  • 作的 do-until 循环条件
action()
action().outputs.body.<property>
参数 必选 类型 Description
< 财产> String 作对象的属性的名称,其值如下:namestartTime、endTimeinputsoutputsstatuscode、trackingId 和 clientTrackingId 在 Azure 门户中,可以通过查看特定运行历史记录的详细信息来查找这些属性。 有关详细信息,请参阅 REST API - 工作流运行作
返回值 类型 Description
< action-output> String 当前作或属性的输出

行动

在运行时返回作的输出,或其他 JSON 名称和值对中的值,你可以将其分配给表达式。 默认情况下,该函数引用整个作对象,但可以选择指定所需的属性。 有关速记版本,请参阅正文()。 有关当前作,请参阅 action()。

小窍门

actions() 函数以字符串的形式返回输出。 如果需要将返回的值用作 JSON 对象,首先需要转换字符串值。 可以使用 Parse JSON作将字符串值转换为 JSON 对象。

注释

以前,可以在指定基于另一个作的输出运行的作时使用该 actions() 函数或 conditions 元素。 但是,若要在作之间显式声明依赖关系,现在必须使用依赖作的属性 runAfter 。 若要了解有关该 runAfter 属性的详细信息,请参阅 Catch 并使用 runAfter 属性处理失败

actions('<actionName>')
actions('<actionName>').outputs.body.<property>
参数 必选 类型 Description
< actionName> 是的 String 所需输出的作对象的名称
< 财产> String 作对象的属性的名称,其值如下:namestartTime、endTimeinputsoutputsstatuscode、trackingId 和 clientTrackingId 在 Azure 门户中,可以通过查看特定运行历史记录的详细信息来查找这些属性。 有关详细信息,请参阅 REST API - 工作流运行作
返回值 类型 Description
< action-output> String 指定作或属性的输出

示例

此示例从运行时的 X作Get user获取status属性值:

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

并返回以下结果: "Succeeded"

添加

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

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-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>'?)
参数 必选 类型 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:00.0000000Z"

示例 2

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

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

并返回以下结果: "2018-03-15T10:00: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"

addProperty

将属性及其值或名称值对添加到 JSON 对象,并返回更新的对象。 如果该属性已在运行时存在,则函数将失败并引发错误。

addProperty(<object>, '<property>', <value>)
参数 必选 类型 Description
< 对象> 是的 物体 要在其中添加属性的 JSON 对象
< 财产> 是的 String 要添加的属性的名称
< 价值> 是的 任意 属性的值
返回值 类型 Description
< updated-object> 物体 具有指定属性的已更新 JSON 对象

若要将父属性添加到现有属性,请使用该 setProperty() 函数,而不是 addProperty() 函数。 否则,该函数仅返回作为输出的子对象。

setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>)
参数 必选 类型 Description
< 对象> 是的 物体 要在其中添加属性的 JSON 对象
< parent-property> 是的 String 要在其中添加子属性的父属性的名称
< child-property> 是的 String 要添加的子属性的名称
< 价值> 是的 任意 要为指定属性设置的值
返回值 类型 Description
< updated-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>'?)
参数 必选 类型 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"]

B

base64

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

注释

Azure 逻辑应用自动或隐式执行 base64 编码和解码,因此无需使用编码和解码函数手动执行这些转换。 但是,如果仍使用这些函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不会影响其效果,除非编辑函数的参数值,这将从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码

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

示例

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

base64('hello')

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

base64ToBinary

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

注释

Azure 逻辑应用自动或隐式执行 base64 编码和解码,因此无需使用编码和解码函数手动执行这些转换。 但是,如果在设计器中仍然使用这些函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不会影响其效果,除非编辑函数的参数值,这将从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码

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

示例

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

base64ToBinary('aGVsbG8=')

例如,假设你正在使用 HTTP作发送请求。 可用于 base64ToBinary() 将 base64 编码的字符串转换为二进制数据,并使用请求中的内容类型发送该数据 application/octet-stream

base64ToString

返回 base64 编码字符串的字符串版本,有效解码 base64 字符串。 使用此函数,而不是解码已弃用的Base64()。

注释

Azure 逻辑应用自动或隐式执行 base64 编码和解码,因此无需使用编码和解码函数手动执行这些转换。 但是,如果在设计器中仍然使用这些函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不会影响其效果,除非编辑函数的参数值,这将从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码

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

示例

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

base64ToString('aGVsbG8=')

并返回以下结果: "hello"

二进制

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

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

示例

例如,你正在使用返回图像或视频文件的 HTTP作。 可用于 binary() 将值转换为 base-64 编码的内容信封模型。 然后,可以在其他作(例如 Compose)中重复使用内容信封。 可以使用此函数表达式将字符串字节与请求中的内容类型一起 application/octet-stream 发送。

身体

在运行时返回作的 body 输出。 速记 。actions('<actionName>').outputs.body 请参阅作()。

body('<actionName>')
参数 必选 类型 Description
< actionName> 是的 String 所需作 body 输出的名称
返回值 类型 Description
< action-body-output> String body指定作的输出

示例

此示例从 Get user X作获取body输出:

body('Get_user')

并返回以下结果:

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

布尔

返回值的布尔版本。

bool(<value>)
参数 必选 类型 Description
< 价值> 是的 任意 要转换为布尔值的值。

如果 bool() 与对象一起使用,则对象的值必须是可以转换为布尔值的字符串或整数。

返回值 类型 Description
truefalse 布尔 指定值的布尔版本。

输出

这些示例显示了以下不同支持的输入 bool()类型:

输入值 类型 返回值
bool(1) 整数 true
bool(0) 整数 false
bool(-1) 整数 true
bool('true') String true
bool('false') String false

C

片段

将字符串或数组拆分为长度相等的区块。

chunk('<collection>', '<length>')
chunk([<collection>], '<length>')
参数 必选 类型 Description
< 收集> 是的 字符串或数组 要拆分的集合
< 长度> 是的 每个区块的长度
返回值 类型 Description
< 收集> Array 具有指定长度的区块数组

示例 1

此示例将字符串拆分为长度为 10 的区块:

chunk('abcdefghijklmnopqrstuvwxyz', 10)

并返回以下结果: ['abcdefghij', 'klmnopqrst', 'uvwxyz']

示例 2

此示例将数组拆分为长度为 5 的区块。

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

并返回以下结果: [ [1,2,3,4,5], [6,7,8,9,10], [11,12] ]

联合

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

coalesce(<object_1>, <object_2>, ...)
参数 必选 类型 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 从组合输入字符串创建的字符串。



注意:结果长度不得超过 104,857,600 个字符。

注释

Azure 逻辑应用自动或隐式执行 base64 编码和解码,因此在将 concat() 函数用于需要编码或解码的数据时,无需手动执行这些转换:

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

但是,如果在设计器中仍使用此函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不是影响效果,除非编辑函数的参数值,这将从代码中删除函数和效果。 有关详细信息,请查看 Base64 编码和解码

示例

此示例合并字符串“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 Windows 默认时区
< 格式> String 一个数字格式字符串,它是 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。

如果格式不是有效值,则会生成错误。
返回值 类型 Description
< 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>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< sourceTimeZone> 是的 String 源时区的名称。 有关时区名称,请参阅 Microsoft Windows 默认时区,但可能需要从时区名称中删除任何标点符号。
< destinationTimeZone> 是的 String 目标时区的名称。 有关时区名称,请参阅 Microsoft Windows 默认时区,但可能需要从时区名称中删除任何标点符号。
< 格式> 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-01T80:00:00.0000000Z', 'UTC', 'Pacific Standard Time', 'D')

并返回以下结果: "Monday, January 1, 2018"

convertToUtc

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

convertToUtc('<timestamp>', '<sourceTimeZone>', '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< sourceTimeZone> 是的 String 源时区的名称。 有关时区名称,请参阅 Microsoft Windows 默认时区,但可能需要从时区名称中删除任何标点符号。
< 格式> 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"]

D

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"

dateDifference

以时间跨度的形式返回两个时间戳之间的差异。 此函数从startDateendDate中减去,并将结果以字符串格式返回为时间戳。

dateDifference('<startDate>', '<endDate>')
参数 必选 类型 Description
< startDate> 是的 String 包含时间戳的字符串
< endDate> 是的 String 包含时间戳的字符串
返回值 类型 Description
< timespan> String 两个时间戳之间的差异,即字符串格式的时间戳。 如果 startDate 比最近 endDate更新,则结果为负值。

示例

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

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

并返回以下结果: "1268.00:00:00"

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

并返回以下结果: 4

dayOfYear

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

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

示例

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

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

并返回以下结果: 74

十进制

以十进制数字的形式返回字符串中的十进制数。 在处理需要十进制精度的数据以及逻辑 比较函数数学函数的输入时,可以使用此函数。 若要在使用 decimal() 函数的结果时捕获并保留精度,请使用 字符串函数包装任何十进制输出。 以下示例中显示了此用法,如果使用小数结果作为数字,则可能会丢失精度。

注释

此函数的上下文中讨论的十进制精度与 .NET 小数精度相同。

decimal('<value>')
参数 必选 类型 Description
< 价值> 是的 String 字符串中的十进制数
返回值 类型 Description
< 十进制> 十进制数 输入字符串的十进制数

示例 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 逻辑应用自动或隐式执行 base64 编码和解码,因此无需使用编码和解码函数手动执行这些转换。 但是,如果在设计器中仍然使用这些函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不会影响其效果,除非编辑函数的参数值,这将从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码

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

示例

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

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

并返回以下结果: "hello"

decodeUriComponent

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

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

示例

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

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

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

div

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

div(<dividend>, <divisor>)
参数 必选 类型 Description
< 股利> 是的 整数或浮点数 要除以除的数字
< 除数> 是的 整数或浮点数 除股息但不能为零的数字
返回值 类型 Description
< quotient-result> 整数或浮点数 将第一个数字除以第二个数字的结果。 如果分红或除数具有 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 逻辑应用自动或隐式执行 base64 编码和解码,因此无需使用编码和解码函数手动执行这些转换。 但是,如果在设计器中仍然使用这些函数,则可能在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不会影响其效果,除非编辑函数的参数值,这将从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码

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

示例

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

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

并返回以下结果: "https%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

F

第一

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

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

示例

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

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

并返回以下结果:

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

float

将浮点数的字符串版本转换为实际的浮点数。 仅当将自定义参数传递给应用(例如逻辑应用工作流或 Power Automate 流)时,才能使用此函数。 若要转换以区域设置特定的格式表示的浮点字符串,可以选择指定 RFC 4646 区域设置代码。

float('<value>', '<locale>'?)
参数 必选 类型 Description
< 价值> 是的 String 具有要转换的有效浮点数的字符串。 最小值和最大值与浮点数据类型的限制相同。
< 现场> String 要使用的 RFC 4646 区域设置代码。

如果未指定,则使用默认区域设置。

如果 区域设置 不是有效值,则会生成错误,指出提供的区域设置无效或没有关联的区域设置。
返回值 类型 Description
< float-value> 漂浮 指定字符串的浮点数。 最小值和最大值与浮点数据类型的限制相同。

示例 1

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

float('10,000.333')

并返回以下结果: 10000.333

示例 2

此示例为此德语样式浮点数创建字符串版本:

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

并返回以下结果: 10000.333

formatDateTime

以指定格式返回时间戳。

formatDateTime('<timestamp>', '<format>'?, '<locale>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 格式> String 一个数字格式字符串,它是 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。
< 现场> String 要使用的区域设置。 如果未指定,则值为 en-us. 如果 区域设置 不是有效值,则会生成错误。
返回值 类型 Description
< reformatted-timestamp> String 指定格式和区域设置的更新时间戳(如果指定)。

Examples

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>')
参数 必选 类型 Description
< actionName> 是的 String 其输出具有所需的键值的作
< 钥匙> 是的 String 所需值的键的名称
返回值 类型 Description
[<array-with-key-values>] Array 包含与指定键匹配的所有值的数组

示例

此示例从指定作的表单数据或表单编码输出中的“Subject”键值创建数组:

formDataMultiValues('Send_an_email', 'Subject')

并返回数组中的主题文本,例如: ["Hello world"]

formDataValue

返回与作的 表单数据表单编码 输出中的键名称匹配的单个值。 如果函数找到多个匹配项,该函数将引发错误。

formDataValue('<actionName>', '<key>')
参数 必选 类型 Description
< actionName> 是的 String 其输出具有所需的键值的作
< 钥匙> 是的 String 所需值的键的名称
返回值 类型 Description
< key-value> String 指定键中的值

示例

此示例从指定作的表单数据或表单编码输出中的“Subject”键值创建字符串:

formDataValue('Send_an_email', 'Subject')

并返回主题文本作为字符串,例如: "Hello world"

formatNumber

以基于指定格式的字符串形式返回数字。

formatNumber(<number>, <format>, <locale>?)
参数 必选 类型 Description
< > 是的 整数或双精度 要设置格式的值。
< 格式> 是的 String 一个复合格式字符串,指定要使用的格式。 有关支持的数值格式字符串,请参阅 标准数字格式字符串,这些字符串受 number.ToString(<format>, <locale>)支持。
< 现场> String 要用作受 number.ToString(<format>, <locale>)支持的区域设置。 如果未指定,则值为 en-us. 如果 区域设置 不是有效值,则会生成错误。
返回值 类型 Description
< formatted-number> String 指定数字作为指定格式的字符串。 可以将此返回值强制转换为 intfloat

示例 1

假设你想要设置数字的格式 1234567890。 本示例将数字的格式设置为字符串“1,234,567,890.00”。

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

*示例 2”

假设你想要设置数字的格式 1234567890。 本示例将数字的格式设置为字符串“1.234.567.890,00”。

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

示例 3

假设你想要设置数字的格式 17.35。 本示例将数字的格式设置为字符串“$17.35”。

formatNumber(17.35, 'C2')

示例 4

假设你想要设置数字的格式 17.35。 本示例将数字的格式设置为字符串“17,35 kr”。

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

G

getFutureTime

返回当前时间戳加上指定的时间单位。

getFutureTime(<interval>, <timeUnit>, <format>?)
参数 必选 类型 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)"

I

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

isFloat

返回一个布尔值,该值指示字符串是否为浮点数。 默认情况下,此函数使用浮点格式的固定区域性。 若要识别以其他区域设置特定格式表示的浮点数,可以选择指定 RFC 4646 区域设置代码。

isFloat('<string>', '<locale>'?)
参数 必选 类型 Description
< 价值> 是的 String 要检查的字符串
< 现场> String 要使用的 RFC 4646 区域设置代码
返回值 类型 Description
< boolean-result> 布尔 一个布尔值,指示字符串是否为浮点数

示例 1

此示例检查字符串是否为固定区域性中的浮点数:

isFloat('10,000.00')

并返回以下结果: true

示例 2

此示例检查字符串是否为德语区域设置中的浮点数:

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

并返回以下结果: true

isInt

返回一个布尔值,该值指示字符串是否为整数。

isInt('<string>')
参数 必选 类型 Description
< 字符串> 是的 String 要检查的字符串
返回值 类型 Description
< boolean-result> 布尔 一个布尔值,指示字符串是否为整数

示例

此示例检查字符串是否为整数:

isInt('10')

并返回以下结果: true

在对数组执行重复作时,在作的当前迭代期间返回数组中的当前项。 还可以从该项的属性获取值。

item()
返回值 类型 Description
< current-array-item> 任意 作的当前迭代数组中的当前项

示例

此示例从 for-each 循环的当前迭代中的“Send_an_email”作的当前消息中获取 body 元素:

item().body

items

返回 for-each 循环中每个周期中的当前项。 在 for-each 循环内使用此函数。

items('<loopName>')
参数 必选 类型 Description
< loopName> 是的 String for-each 循环的名称
返回值 类型 Description
< 项目> 任意 指定 for-each 循环中当前周期中的项

示例

此示例从指定的 for-each 循环中获取当前项:

items('myForEachLoopName')

iterationIndexes

返回 Until 循环中当前迭代的索引值。 可以在嵌套 Until 循环内使用此函数。

iterationIndexes('<loopName>')
参数 必选 类型 Description
< loopName> 是的 String Until 循环的名称
返回值 类型 Description
< 指数> 整数 指定 Until 循环中当前迭代的索引值

示例

本示例创建一个计数器变量,并在 Until 循环中每次迭代期间逐个递增该变量,直到计数器值达到 5。 该示例还创建一个变量,用于跟踪每个迭代的当前索引。 在 Until 循环中的每个迭代期间,该示例递增计数器值,然后将计数器值分配给当前索引值,然后递增计数器值。 在循环中,此示例使用 iterationIndexes 函数引用当前迭代索引:

iterationIndexes('Until_Max_Increment')

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

J

json

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

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

重要

如果没有定义输出结构的 XML 架构,该函数可能会返回结构与预期格式有很大差异的结果,具体取决于输入。

此行为使此函数不适用于输出必须符合定义完善的协定的方案,例如,在关键业务系统或解决方案中。

参数 必选 类型 Description
< 价值> 是的 字符串或 XML 要转换的字符串或 XML
返回值 类型 Description
< 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>', ...)
参数 必选 类型 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 从指定数组中的所有项创建的生成的字符串。



注意:结果长度不得超过 104,857,600 个字符。

示例

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

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

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

L

最后

从集合中返回最后一项。

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

  • 如果字符串和子字符串值均为空,则函数返回 0

  • 如果只有子字符串值为空,该函数将返回字符串长度减 1。

Examples

本示例查找字符串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>])
参数 必选 类型 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

listCallbackUrl

返回调用触发器或作的“回调 URL”。 此函数仅适用于 HttpWebhookApiConnectionWebhook 连接器类型的触发器和作,但不适用于 手动定期HTTPAPIConnection 类型。

listCallbackUrl()
返回值 类型 Description
< callback-URL> String 触发器或作的回调 URL

示例

此示例显示了此函数可能返回的示例回调 URL:

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

M

最大值

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

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
< 股利> 是的 整数或浮点数 要除以除的数字
< 除数> 是的 整数或浮点数 除股息但不能为零的数字
返回值 类型 Description
< modulo-result> 整数或浮点数 将第一个数字除以第二个数字的余数

示例 1

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

mod(3, 2)

并返回以下结果: 1

示例 2

此示例显示,如果一个或两个值均为负值,则结果与股息的符号匹配:

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

该示例返回以下结果:

  • 第一个示例: -1
  • 第二个示例: 1

mul

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

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

示例

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

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

并返回以下结果:

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

multipartBody

返回作输出中具有多个部分的特定部件的正文。

multipartBody('<actionName>', <index>)
参数 必选 类型 Description
< actionName> 是的 String 具有多个部件的输出的作的名称
< 指数> 是的 整数 所需部件的索引值
返回值 类型 Description
< 身体> String 指定部件的正文

N

检查表达式是否为 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

nthIndexOf

返回字符串中出现 第 n个子字符串的起始位置或索引值。

nthIndexOf('<text>', '<searchText>', <occurrence>)
参数 必选 类型 Description
< 发短信> 是的 String 包含要查找的子字符串的字符串
< searchText> 是的 String 要查找的子字符串
< 发生> 是的 整数 一个数字,指定要查找的子字符串的第 n个匹配项。 如果 出现次数 为负值,请从末尾开始搜索。
返回值 类型 Description
< index-value> 整数 指定子字符串第 n个匹配项的起始位置或索引值。 如果未找到子字符串或小于 n 个子字符串出现,则返回 -1

Examples

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>, ...)
参数 必选 类型 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

输出

在运行时返回作的输出。

outputs('<actionName>')
参数 必选 类型 Description
< actionName> 是的 String 所需作输出的名称
返回值 类型 Description
< 输出> String 指定作的输出

示例

此示例从 X作 Get user获取输出:

outputs('Get_user')

并返回以下结果:

{
  "statusCode": 200,
  "headers": {
    "Pragma": "no-cache",
    "Vary": "Accept-Encoding",
    "x-ms-request-id": "a916ec8f52211265d98159adde2efe0b",
    "X-Content-Type-Options": "nosniff",
    "Timing-Allow-Origin": "*",
    "Cache-Control": "no-cache",
    "Date": "Mon, 09 Apr 2018 18:47:12 GMT",
    "Set-Cookie": "ARRAffinity=b9400932367ab5e3b6802e3d6158afffb12fcde8666715f5a5fbd4142d0f0b7d;Path=/;HttpOnly;Domain=twitter-wus.azconn-wus.p.chinacloudsites.cn",
    "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>')
参数 必选 类型 Description
< parameterName> 是的 String 所需值的参数的名称
返回值 类型 Description
< parameter-value> 任意 指定参数的值

示例

假设你具有以下 JSON 值:

{
  "fullName": "Sophia Owen"
}

此示例获取指定参数的值:

parameters('fullName')

并返回以下结果: "Sophia Owen"

parseDateTime

从包含时间戳的字符串中返回时间戳。

parseDateTime('<timestamp>', '<locale>'?, '<format>'?)
参数 必选 类型 Description
< 时间戳> 是的 String 包含时间戳的字符串
< 现场> String 要使用的区域设置。

如果未指定,则默认区域设置为 en-us

如果 区域设置 不是有效值,则会生成错误。
< 格式> String 一个数字格式字符串,它是 单个格式说明符自定义格式模式。 时间戳的默认格式为 “o” (yyyy-MM-ddTHH:mm:ss.fffffffK),符合 ISO 8601 并保留时区信息。 如果未指定格式,请尝试使用与提供的区域设置兼容的多种格式进行分析。 如果格式不是有效值,则会生成错误。
返回值 类型 Description
< parsed-timestamp> String “o”(yyyy-MM-ddTHH:mm:ss.fffffffK)格式的已分析时间戳,符合 ISO 8601 并保留时区信息。

Examples

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

R

兰特

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

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

示例

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

rand(1, 5)

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

范围

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

range(<startIndex>, <count>)
参数 必选 类型 Description
< startIndex> 是的 整数 将数组作为第一项启动的整数值
< 计数> 是的 整数 数组中的整数个数。 参数 count 值必须是不超过 100,000 的正整数。



注意:和值的总和startIndexcount不得超过 2,147,483,647。
返回值 类型 Description
[<range-result>] Array 包含从指定索引开始的整数的数组

示例

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

range(1, 4)

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

removeProperty

从对象中删除属性并返回更新的对象。 如果尝试删除的属性不存在,该函数将返回原始对象。

removeProperty(<object>, '<property>')
参数 必选 类型 Description
< 对象> 是的 物体 要从中删除属性的 JSON 对象
< 财产> 是的 String 要删除的属性的名称
返回值 类型 Description
< updated-object> 物体 未指定属性的已更新 JSON 对象

若要从现有属性中删除子属性,请使用以下语法:

removeProperty(<object>['<parent-property>'], '<child-property>')
参数 必选 类型 Description
< 对象> 是的 物体 要删除其属性的 JSON 对象
< parent-property> 是的 String 要删除的子属性的父属性的名称
< child-property> 是的 String 要删除的子属性的名称
返回值 类型 Description
< updated-object> 物体 已更新的 JSON 对象,其子属性已删除

示例 1

此示例从 JSON 对象中删除 middleName 属性,该对象通过使用 JSON() 函数从字符串转换为 JSON,并返回更新的对象:

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

下面是当前的 JSON 对象:

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

下面是更新的 JSON 对象:

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

示例 2

此示例从 customerName JSON 对象的父属性中删除middleName子属性,该属性通过使用 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('<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"

结果

返回指定作用域作中顶级作的结果,例如 For_eachUntilScope 作。 该 result() 函数接受单个参数,该参数是作用域的名称,并返回一个数组,其中包含该作用域中第一级作中的信息。 这些作对象包括与函数返回 actions() 的属性相同的属性,例如作的开始时间、结束时间、状态、输入、相关 ID 和输出。

注释

此函数 从作用域作中的第一级作返回信息,而不是从更深入的嵌套作(如切换或条件作)返回信息。

例如,可以使用此函数从失败的作中获取结果,以便诊断和处理异常。 有关详细信息,请参阅 获取失败的上下文和结果

result('<scopedActionName>')
参数 必选 类型 Description
< scopedActionName> 是的 String 希望从该作用域内的顶级作的输入和输出的作用域作的名称
返回值 类型 Description
< array-object> Array 对象 一个数组,其中包含指定作用域内每个顶级作的输入和输出数组

示例

此示例通过使用result()作中的Compose函数返回循环中 For_each 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"
            }
         }
      ]
   }
]

反向

反转集合中项的顺序。 将此函数用于 sort()时,可以按降序对集合进行排序。

reverse([<collection>])
参数 必选 类型 Description
< 收集> 是的 Array 要反向的集合
返回值 类型 Description
[<updated-collection>] Array 反向集合

示例

此示例反转整数数组:

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

并返回以下数组: [3,2,1,0]

S

setProperty

设置 JSON 对象的属性的值并返回更新的对象。 如果尝试设置的属性不存在,该属性将添加到对象中。 若要添加新属性,请使用 addProperty() 函数。

setProperty(<object>, '<property>', <value>)
参数 必选 类型 Description
< 对象> 是的 物体 要设置其属性的 JSON 对象
< 财产> 是的 String 要设置的现有或新属性的名称
< 价值> 是的 任意 要为指定属性设置的值

若要在子对象中设置子属性,请改用嵌套 setProperty() 调用。 否则,该函数仅返回作为输出的子对象。

setProperty(<object>, '<parent-property>', setProperty(<object>['parentProperty'], '<child-property>', <value>))
参数 必选 类型 Description
< 对象> 是的 物体 要设置其属性的 JSON 对象
< parent-property> 是的 String 要设置的子属性的父属性的名称
< child-property> 是的 String 要设置的子属性的名称
< 价值> 是的 任意 要为指定属性设置的值
返回值 类型 Description
< updated-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 对象中父属性的 customerName 子属性,该属性使用 JSON() 函数从字符串转换为 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([<collection>], <count>)
参数 必选 类型 Description
< 收集> 是的 Array 要删除其项的集合
< 计数> 是的 整数 前方要移除的项数的正整数
返回值 类型 Description
[<updated-collection>] Array 删除指定项后更新的集合

示例

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

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

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

切分

通过指定起始和结束位置或值返回子字符串。 另请参阅子字符串()。

slice('<text>', <startIndex>, <endIndex>?)
参数 必选 类型 Description
< 发短信> 是的 String 包含要查找的子字符串的字符串
< startIndex> 是的 整数 从零开始的位置或值,用于开始搜索子字符串的位置

- 如果 startIndex 大于字符串长度,则返回空字符串。

- 如果 startIndex 为负数,请开始搜索字符串长度和 startIndex 的总和的索引值。
< endIndex> 整数 从零开始的结束位置或值,用于结束搜索子字符串的位置。 位于结束索引值的字符不包括在搜索中。

- 如果未指定 endIndex 或大于字符串长度,则搜索到字符串的末尾。

- 如果 endIndex 为负数,则结束搜索字符串长度和 endIndex 的总和的索引值。
返回值 类型 Description
< slice-result> String 包含找到的子字符串的新字符串

Examples

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([<collection>], <sortBy>?)
参数 必选 类型 Description
< 收集> 是的 Array 包含要排序的项的集合
< sortBy> String 用于对集合对象进行排序的键
返回值 类型 Description
[<updated-collection>] Array 已排序的集合

示例 1

此示例对整数数组进行排序:

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

并返回以下数组: [0,1,2,3]

示例 2

此示例按键对对象数组进行排序:

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

并返回以下数组: [{ "first": "Elise", "last": "Renee" }, {"first": "Amalie", "last": "Rose" }')]

拆分

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

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

示例 1

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

split('a_b_c', '_')

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

示例 2

此示例在字符串中不存在分隔符时,创建具有单个元素的数组:

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 指定的时间戳,但从月份的第一天开始,以零小时标记开始

示例 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"

以...开始

检查字符串是否以特定的子字符串开头。 找到子字符串时返回 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
< 价值> 是的 任意 要转换的值。 如果此值为 null 或计算结果为 null,则该值将转换为空字符串 ("") 值。



例如,如果将字符串变量分配给不存在的属性,可以使用运算符访问 ? 该属性,则 null 值将转换为空字符串。 但是,比较 null 值与比较空字符串不同。
返回值 类型 Description
< string-value> String 指定值的字符串版本。 如果 参数为 null 或计算结果为 null,则此值将作为空字符串 ("") 值返回。

示例 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,用作起始位置或索引值
< 长度> 整数 子字符串中所需的正数字符数

注释

确保添加 startIndexlength 参数值的总和小于为 文本 参数提供的字符串的长度。 否则,会收到错误,与其他语言中的类似函数不同,其中结果是从 startIndex 到字符串末尾的子字符串。 长度参数是可选的,如果未提供,子字符串()函数会将从 startIndex 开始到字符串末尾的所有字符。

返回值 类型 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"

T

从集合的前面返回项。

take('<collection>', <count>)
take([<collection>], <count>)
参数 必选 类型 Description
< 收集> 是的 字符串或数组 所需项的集合
< 计数> 是的 整数 要从前面获取的项数的正整数
返回值 类型 Description
< 子集> 或 [<子集>] 字符串或数组,分别 一个字符串或数组,其中包含从原始集合前面获取的指定数量的项

示例

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

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

并返回以下结果:

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

返回自 0001 年 1 月 1 日 12:00:00:00 午夜(或 C# 中的 DateTime.Ticks)以来的 100 纳秒间隔的时钟周期数(或 C# 中的 DateTime.Ticks)。 有关详细信息,请参阅本主题:DateTime.Ticks 属性(System)。

ticks('<timestamp>')
参数 必选 类型 Description
< 时间戳> 是的 String 时间戳的字符串
返回值 类型 Description
< ticks-number> 整数 自指定时间戳以来的刻度数

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"

触发

在运行时返回触发器的输出,或其他 JSON 名称和值对中的值,你可以将其分配给表达式。

  • 在触发器的输入中,此函数返回上一次执行的输出。

  • 在触发器的条件内,此函数返回当前执行的输出。

默认情况下,该函数引用整个触发器对象,但可以选择指定所需的属性。 此外,此函数具有可用的速记版本,请参阅 triggerOutputs()triggerBody()。

trigger()
返回值 类型 Description
< trigger-output> String 运行时触发器的输出

triggerBody

在运行时返回触发器的 body 输出。 速记 。trigger().outputs.body 请参阅触发器()。

triggerBody()
返回值 类型 Description
< trigger-body-output> String body触发器的输出

triggerFormDataMultiValues

返回一个数组,其值与触发器的 表单数据表单编码 输出中的键名称匹配。

triggerFormDataMultiValues('<key>')
参数 必选 类型 Description
< 钥匙> 是的 String 所需值的键的名称
返回值 类型 Description
[<array-with-key-values>] Array 包含与指定键匹配的所有值的数组

示例

此示例从 RSS 触发器的表单数据或表单编码输出中的“feedUrl”键值创建数组:

triggerFormDataMultiValues('feedUrl')

并返回此数组作为示例结果: ["https://feeds.a.dj.com/rss/RSSMarketsMain.xml"]

triggerFormDataValue

返回一个字符串,该值与触发器的 表单数据表单编码 输出中的键名称匹配。 如果函数找到多个匹配项,该函数将引发错误。

triggerFormDataValue('<key>')
参数 必选 类型 Description
< 钥匙> 是的 String 所需值的键的名称
返回值 类型 Description
< key-value> String 指定键中的值

示例

此示例从 RSS 触发器的表单数据或表单编码输出中的“feedUrl”键值创建字符串:

triggerFormDataValue('feedUrl')

并返回此字符串作为示例结果: "https://feeds.a.dj.com/rss/RSSMarketsMain.xml"

triggerMultipartBody

返回触发器输出中具有多个部分的特定部件的正文。

triggerMultipartBody(<index>)
参数 必选 类型 Description
< 指数> 是的 整数 所需部件的索引值
返回值 类型 Description
< 身体> String 触发器多部分输出中指定部件的正文

triggerOutputs

在运行时返回触发器的输出,或来自其他 JSON 名称和值对的值。 速记 。trigger().outputs 请参阅触发器()。

triggerOutputs()
返回值 类型 Description
< trigger-output> String 运行时触发器的输出

剪裁

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

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

示例

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

trim(' Hello World  ')

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

U

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

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

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

uriComponentToBinary

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

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

示例

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

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

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

uriComponentToString

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

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

示例

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

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

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

uriHost

返回 host 统一资源标识符(URI)的值。

uriHost('<uri>')
参数 必选 类型 Description
< uri> 是的 String 所需值的 URI host
返回值 类型 Description
< host-value> String host指定 URI 的值

示例

此示例查找 host 此 URI 的值:

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

并返回以下结果: "www.localhost.com"

uriPath

返回 path 统一资源标识符(URI)的值。

uriPath('<uri>')
参数 必选 类型 Description
< uri> 是的 String 所需值的 URI path
返回值 类型 Description
< 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>')
参数 必选 类型 Description
< uri> 是的 String 所需 URI pathquery
返回值 类型 Description
< 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>')
参数 必选 类型 Description
< uri> 是的 String 所需值的 URI port
返回值 类型 Description
< port-value> 整数 port指定 URI 的值。 如果未 port 指定值,则返回协议的默认端口。

示例

此示例返回 port 此 URI 的值:

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

并返回以下结果: 8080

uriQuery

返回 query 统一资源标识符(URI)的值。

uriQuery('<uri>')
参数 必选 类型 Description
< uri> 是的 String 所需值的 URI query
返回值 类型 Description
< query-value> String query指定 URI 的值

示例

此示例返回 query 此 URI 的值:

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

并返回以下结果: "?date=today"

uriScheme

返回 scheme 统一资源标识符(URI)的值。

uriScheme('<uri>')
参数 必选 类型 Description
< uri> 是的 String 所需值的 URI scheme
返回值 类型 Description
< scheme-value> String scheme指定 URI 的值

示例

此示例返回 scheme 此 URI 的值:

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

并返回以下结果: "http"

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"

V

变量

返回指定变量的值。

variables('<variableName>')
参数 必选 类型 Description
< variableName> 是的 String 所需值的变量的名称
返回值 类型 Description
< variable-value> 任意 指定变量的值

示例

假设“numItems”变量的当前值为 20。 此示例获取此变量的整数值:

variables('numItems')

并返回以下结果: 20

W

工作流

返回有关运行时工作流本身的所有详细信息。

workflow().<property>
参数 必选 类型 Description
< 财产> String 所需值的工作流属性的名称



默认情况下,工作流对象具有以下属性:name、、typeidlocation、、 runtags



- 属性值 run 是包含以下属性的 JSON 对象: nametypeid



- 该 tags 属性是一个 JSON 对象,其中包括与 Azure 逻辑应用中的逻辑应用关联的标记,或 Power Automate 中的流 以及这些标记的值。 有关 Azure 资源中的标记的详细信息,请查看 Azure 中逻辑组织的标记资源、资源组和订阅



注意:默认情况下,逻辑应用没有标记,但 Power Automate 流具有 flowDisplayName 标记和 environmentName 标记。

示例 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>')
参数 必选 类型 Description
< 价值> 是的 String 包含要转换的 JSON 对象的字符串

JSON 对象必须只有一个根属性,不能是数组。
将反斜杠字符 (\) 用作双引号 () 的转义字符。
返回值 类型 Description
< xml-version> 物体 指定字符串或 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>')
参数 必选 类型 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

假设你有以下 '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()',查找与 XML 字符串中的节点匹配 <name></name>'items' 节点,并返回包含这些节点值的数组:

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

该示例还使用 parameters() 函数从 'items' 中获取 XML 字符串,并使用 xml() 函数将字符串转换为 XML 格式。

下面是使用匹配 <name></name>的节点值填充的结果数组:

[ Gala, Honeycrisp ]

示例 2

在示例 1 上,此示例传入 XPath 表达式, '/produce/item/name[1]'查找第一个 name 元素是该元素的 item 子元素。

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

下面是结果: Gala

示例 3

在示例 1 上,此示例传入 XPath 表达式, '/produce/item/name[last()]'查找 name 最后一个元素是元素的 item 子元素。

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

下面是结果: Honeycrisp

示例 4

在此示例中,假设 items XML 字符串还包含属性, expired='true' 以及 expired='false'

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

此示例传入 XPath 表达式'//name[@expired]',查找具有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

在此示例中,假设 XML items 字符串与示例 1 中相同:

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

此示例查找与节点匹配的 <count></count> 节点,并使用 sum() 函数添加这些节点值:

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

下面是结果: 30

示例 8

在此示例中,假设你有此 XML 字符串,其中包括 XML 文档命名空间: xmlns="https://contoso.com"

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

这些表达式使用 XPath 表达式, /*[name()="file"]/*[name()="location"]/*[local-name()="file" and namespace-uri()="https://contoso.com"]/*[local-name()="location"]查找与节点匹配的 <location></location> 节点。 这些示例演示在设计器或表达式编辑器中使用的语法:

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

下面是与节点匹配 <location></location> 的结果节点:

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

重要

如果在代码视图中工作,请使用反斜杠字符(\)转义双引号(“)。 例如,将表达式序列化为 JSON 字符串时,需要使用转义字符。 但是,如果在设计器或表达式编辑器中工作,则无需转义双引号,因为反斜杠字符会自动添加到基础定义,例如:

  • 代码视图: xpath(xml(body('Http')), '/*[name()=\"file\"]/*[name()=\"location\"]')

  • 表达式编辑器: xpath(xml(body('Http')), '/*[name()="file"]/*[name()="location"]')

示例 9

在示例 8 上,此示例使用 XPath 表达式 'string(/*[name()="file"]/*[name()="location"])'查找节点中的 <location></location> 值:

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

下面是结果: Paris

后续步骤

了解 工作流定义语言