Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
适用于: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_each , Until 和 Scope 。 |
触发 | 在运行时或从其他 JSON 名称和值对返回触发器的输出。 另请参阅 triggerOutputs 和 triggerBody。 |
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 | 作对象的属性的名称,其值如下:name、startTime、endTime、inputs、outputs、status、code、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 | 作对象的属性的名称,其值如下:name、startTime、endTime、inputs、outputs、status、code、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。 该对象已包含 firstName
和 surName
属性。 该函数将指定值分配给新属性并返回更新的对象:
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 |
---|---|---|
true 或 false |
布尔 | 指定值的布尔版本。 |
输出
这些示例显示了以下不同支持的输入 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
以时间跨度的形式返回两个时间戳之间的差异。 此函数从startDate
endDate
中减去,并将结果以字符串格式返回为时间戳。
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 | 指定数字作为指定格式的字符串。 可以将此返回值强制转换为 int 或 float 。 |
示例 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”。 此函数仅适用于 HttpWebhook 和 ApiConnectionWebhook 连接器类型的触发器和作,但不适用于 手动、 定期、 HTTP 和 APIConnection 类型。
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
、、2
或 3
4
范围
返回从指定整数开始的整数数组。
range(<startIndex>, <count>)
参数 | 必选 | 类型 | Description |
---|---|---|---|
< startIndex> | 是的 | 整数 | 将数组作为第一项启动的整数值 |
< 计数> | 是的 | 整数 | 数组中的整数个数。 参数 count 值必须是不超过 100,000 的正整数。 注意:和值的总和 startIndex count 不得超过 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_each
, Until
或 Scope
作。 该 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,用作起始位置或索引值 |
< 长度> | 否 | 整数 | 子字符串中所需的正数字符数 |
注释
确保添加 startIndex 和 length 参数值的总和小于为 文本 参数提供的字符串的长度。 否则,会收到错误,与其他语言中的类似函数不同,其中结果是从 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 编码的,由 |
示例
此示例为此 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 path 和 query 值 |
返回值 | 类型 | Description |
---|---|---|
< path-query-value> | String |
path 指定 URI 的和query 值。 如果未 path 指定值,则返回“/”字符。 |
示例
此示例查找此 URI 的 path
和 query
值:
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 、、type 、id location 、、 run 和tags 。 - 属性值 run 是包含以下属性的 JSON 对象: name 、 type 和 id 。 - 该 tags 属性是一个 JSON 对象,其中包括与 Azure 逻辑应用中的逻辑应用关联的标记,或 Power Automate 中的流 以及这些标记的值。 有关 Azure 资源中的标记的详细信息,请查看 Azure 中逻辑组织的标记资源、资源组和订阅。 注意:默认情况下,逻辑应用没有标记,但 Power Automate 流具有 flowDisplayName 标记和 environmentName 标记。 |
示例 1
此示例返回工作流当前运行的名称:
workflow().run.name
示例 2
如果使用 Power Automate,则可以创建一个 @workflow()
表达式,该表达式使用 tags
输出属性从流 flowDisplayName
或 environmentName
属性获取值。
例如,可以从链接到流的流本身发送自定义电子邮件通知。 这些通知可以包括一个 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
后续步骤
了解 工作流定义语言