你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:Azure 逻辑应用(消耗型 + 标准型)
对于 Azure 逻辑应用和 Power Automate 中的工作流定义,某些表达式获取的值来自运行时操作,而这些运行时操作在工作流开始运行时可能尚不存在。 To reference or process the values in these expressions, you can use expression functions provided by the Workflow Definition Language.
Note
本参考指南适用于 Azure 逻辑应用和 Power Automate,但存在于 Azure 逻辑应用文档中。 尽管本指南特别提到逻辑应用工作流,但这些函数适用于 Power Automate 中的流和 Azure 逻辑应用中的工作流。 有关 Power Automate 中的函数和表达式的详细信息,请参阅 在条件中使用表达式。
For example, you can calculate values by using math functions, such as the add() function, when you want the sum from integers or floats. 下面是可以使用函数执行的一些其他示例任务:
Task | Function syntax | Result |
---|---|---|
返回小写格式的字符串。 | toLower('<text>') 例如:toLower('Hello') |
"hello" |
返回全局唯一标识符 (GUID)。 | guid() | "c2ecc88d-88c8-4096-912c-d6f2e2b138ce" |
若要基于函数的常规用途查找函数,请查看以下各表。 Or, for detailed information about each function, see the alphabetical list.
表达式中的函数
To show how to use a function in an expression, this example shows how you can get the value from the customerName
parameter and assign that value to the accountName
property by using the parameters() function in an expression:
"accountName": "@parameters('customerName')"
下面是表达式中的函数的其他一般使用方法:
Task | 表达式中的函数语法 |
---|---|
通过将某个项传递给函数,对该项执行操作。 | "@<functionName>(<item>)" |
1. Get the parameterName's value by using the nested parameters() function. 2. Perform work with the result by passing that value to functionName. |
"@<functionName>(parameters('<parameterName>'))" |
1. Get the result from the nested inner function functionName. 2. Pass the result to the outer function functionName2. |
"@<functionName2>(<functionName>(<item>))" |
1. Get the result from functionName. 2. Given that the result is an object with property propertyName, get that property's value. |
"@<functionName>(<item>).<propertyName>" |
例如,concat()
函数可以采用两个或更多个字符串值作为参数。 此函数将这些字符串组合成一个字符串。 可以传入字符串文字(例如 "Sophia" 和 "Owen"),以便获取组合的字符串 "SophiaOwen":
"customerName": "@concat('Sophia', 'Owen')"
或者,可以从参数获取字符串值。 此示例在每个 parameters()
参数以及 concat()
和 firstName
参数中使用 lastName
函数。 然后,将生成的字符串传递给 concat()
函数,以便获取组合的字符串,例如 "SophiaOwen":
"customerName": "@concat(parameters('firstName'), parameters('lastName'))"
无论使用哪种方式,这两个示例都会将结果分配给 customerName
属性。
使用函数的注意事项
设计器不会计算在设计时用作函数参数的运行时表达式。 设计器要求在设计时可以完全计算所有表达式。
从左到右评估函数参数。
在参数定义的语法中,参数后显示的问号 (?) 表示参数是可选的。 For example, see getFutureTime().
以纯文本内联显示的函数表达式需要使用封闭的大括号 ({}) 以使用表达式的内插格式。 此格式有助于避免分析问题。 如果函数表达式没有以纯文本内联显示,则无需大括号。
以下示例显示了正确和不正确的语法:
Correct:
"<text>/@{<function-name>('<parameter-name>')}/<text>"
Incorrect:
"<text>/@<function-name>('<parameter-name>')/<text>"
OK:
"@<function-name>('<parameter-name>')"
The following sections organize functions based on their general purpose, or you can browse these functions in alphabetical order.
String functions
To work with strings, you can use these string functions and also some collection functions. 字符串函数仅适用于字符串。
String function | Task |
---|---|
chunk | 将字符串或集合拆分为长度相等的区块。 |
concat | 组合两个或更多字符串,并返回组合后的字符串。 |
endsWith | 检查字符串是否以指定的子字符串结尾。 |
formatNumber | 根据指定的格式以字符串形式返回一个数字 |
guid | 生成字符串形式的全局唯一标识符 (GUID)。 |
indexOf | 返回子字符串的起始位置。 |
isFloat | 返回一个布尔值,该值指示字符串是否为浮点数。 |
isInt | 返回一个布尔值,该值指示字符串是否为整数。 |
lastIndexOf | 返回最后一次出现的子字符串的起始位置。 |
length | 返回字符串或数组中的项数。 |
nthIndexOf | Return the starting position or index value where the nth occurrence of a substring appears in a string. |
replace | 将子字符串替换为指定的字符串,并返回更新的字符串。 |
slice | 通过指定起始位置和结束位置或值返回子字符串。 See also substring. |
split | 根据原始字符串中指定的分隔符字符,从较大字符串中返回一个包含子字符串(以逗号分隔)的数组。 |
startsWith | 检查字符串是否以特定的子字符串开头。 |
substring | 返回字符串中的字符,从指定的位置开始。 See also slice. |
toLower | 返回小写格式的字符串。 |
toUpper | 返回大写格式的字符串。 |
trim | 从字符串中删除前导和尾随空格,并返回更新后的字符串。 |
Collection functions
若要使用集合(通常是数组或字符串,有时是字典),可以使用这些集合函数。
Collection function | Task |
---|---|
chunk | 将字符串或集合拆分为长度相等的区块。 |
contains | 检查集合是否包含某个特定项。 |
empty | 检查集合是否为空。 |
first | 返回集合中的第一个项。 |
intersection | Return a collection that has only the common items across the specified collections. |
item | 如果此函数出现在数组的重复操作中,返回数组在操作的当前迭代过程中的当前项。 |
join | Return a string that has all the items from an array, separated by the specified character. |
last | 返回集合中的最后一个项。 |
length | 返回字符串或数组中的项数。 |
reverse | 反转数组中项的顺序。 |
skip | 将集合开头的项删除,并返回其余所有项目。 |
sort | 对集合中的项进行排序。 |
take | 返回集合开头的项。 |
union | Return a collection that has all the items from the specified collections. |
逻辑比较函数
若要使用条件、比较值和表达式结果或评估各种类型的逻辑,可以使用这些逻辑比较函数。 For the full reference about each function, see the alphabetical list.
Note
如果使用逻辑函数或条件来比较值,则 NULL 值将转换为空字符串 (""
) 值。 与空字符串(而不是 NULL 值)进行比较时,条件的行为会有所不同。 For more information, see the string() function.
逻辑比较函数 | Task |
---|---|
and | 检查所有表达式是否为真。 |
equals | 检查两个值是否相等。 |
greater | 检查第一个值是否大于第二个值。 |
greaterOrEquals | 检查第一个值是否大于或等于第二个值。 |
if | 检查表达式为 true 还是 false。 根据结果返回指定的值。 |
isFloat | 返回一个布尔值,该值指示字符串是否为浮点数。 |
isInt | 返回一个布尔值,该值指示字符串是否为整数。 |
less | 检查第一个值是否小于第二个值。 |
lessOrEquals | 检查第一个值是否小于或等于第二个值。 |
not | 判断表达式是否为假。 |
or | 检查是否至少一个表达式为真。 |
Conversion functions
若要更改值的类型或格式,可以使用这些转换函数。 例如,可将值从布尔值更改为整数。 有关 Azure 逻辑应用在转换期间如何处理内容类型的详细信息,请参阅处理内容类型。 For the full reference about each function, see the alphabetical list.
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此你无需使用编码和解码函数手动执行这些转换。 但是,如果你仍然在设计器中使用这些函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响其效果,除非你编辑函数的参数值,这样会从代码中删除函数及其效果。 有关详细信息,请参阅隐式数据类型转换。
Conversion function | Task |
---|---|
array | 从单个指定的输入返回数组。 For multiple inputs, see createArray. |
base64 | 返回字符串的 base64 编码版本。 |
base64ToBinary | 返回 base64 编码字符串的二进制版本。 |
base64ToString | 返回 base64 编码字符串的字符串版本。 |
binary | 返回输入值的二进制版本。 |
bool | 返回输入值的布尔值版本。 |
createArray | 从多个输入返回数组。 |
dataUri | 返回输入值的数据 URI。 |
dataUriToBinary | 返回数据 URI 的二进制版本。 |
dataUriToString | 返回数据 URI 的字符串版本。 |
decimal | 返回小数字符串的小数数。 |
decodeBase64 | 返回 base64 编码字符串的字符串版本。 |
decodeDataUri | 返回数据 URI 的二进制版本。 |
decodeUriComponent | 返回一个字符串,并将其中的转义字符替换为解码后的版本。 |
encodeUriComponent | 返回一个字符串,并将其中的 URL 不安全字符替换为转义字符。 |
float | 返回输入值的浮点数。 |
int | 返回字符串的整数版本。 |
json | 返回字符串或 XML 的 JavaScript 对象表示法 (JSON) 类型的值或对象。 |
string | 返回输入值的字符串版本。 |
uriComponent | 通过将 URL 不安全字符替换为转义字符来返回输入值的 URI 编码版本。 |
uriComponentToBinary | 返回 URI 编码字符串的二进制版本。 |
uriComponentToString | 返回 URI 编码字符串的字符串版本。 |
xml | 返回字符串的 XML 版本。 |
隐式数据类型转换
Azure 逻辑应用会自动或隐式地在某些数据类型之间进行转换,因此你无需手动执行这些转换。 例如,如果在预期应输入字符串的情况下输入了非字符串值,则 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>)
Note
如果你在使用设计器时手动添加任何这些函数(直接添加到触发器或操作中或者使用表达式编辑器),则请先离开设计器,然后再返回到设计器,这样该函数就会从设计器中消失,只留下参数值。 如果你选择一个使用此函数的触发器或操作而不编辑函数的参数值,则也会出现此行为。 此结果只影响函数的可见性,而不影响效果。 在代码视图中,函数不受影响。 但是,如果你编辑函数的参数值,则会从代码视图中删除函数及其效果,而只留下函数的参数值。
Math functions
若要使用整数和浮点数,可以使用这些数学函数。 For the full reference about each function, see the alphabetical list.
Math function | Task |
---|---|
add | 返回两个数字相加的结果。 |
div | 返回两个数字相除的结果。 |
max | 返回一组数字或数组中的最大值。 |
min | 返回一组数字或数组中的最小值。 |
mod | 返回将两个数字相除后的余数。 |
mul | 返回将两个数字相乘得到的乘积。 |
rand | 返回指定范围内的随机整数。 |
range | 返回以指定整数开头的一个整数数组。 |
sub | 返回第一个数字减去第二个数字得到的结果。 |
日期和时间函数
若要使用日期和时间,可以使用这些日期和时间函数。 For the full reference about each function, see the alphabetical list.
日期或时间函数 | Task |
---|---|
addDays | 将日期添加到时间戳。 |
addHours | 将小时添加到时间戳。 |
addMinutes | 将分钟添加到时间戳。 |
addSeconds | 将秒添加到时间戳。 |
addToTime | 将指定的时间单位加到时间戳。 See also getFutureTime. |
convertFromUtc | 将时间戳从协调世界时 (UTC) 转换为目标时区。 |
convertTimeZone | 将时间戳从源时区转换为目标时区。 |
convertToUtc | 将时间戳从源时区转换为协调世界时 (UTC)。 |
dateDifference | 以时间跨度形式返回两个日期之间的差值。 |
dayOfMonth | 返回时间戳中月份组成部分的日期。 |
dayOfWeek | 返回时间戳中周组成部分的星期日期。 |
dayOfYear | 返回时间戳中年组成部分的日期。 |
formatDateTime | 返回时间戳中的日期。 |
getFutureTime | 返回当前时间戳加上指定的时间单位。 See also addToTime. |
getPastTime | 返回当前时间戳减去指定的时间单位。 See also subtractFromTime. |
parseDateTime | 从包含时间戳的字符串中返回时间戳。 |
startOfDay | 返回时间戳中的天的开始时间。 |
startOfHour | 返回时间戳中的小时的开始时间。 |
startOfMonth | 返回时间戳中的月份的开始时间。 |
subtractFromTime | 从时间戳中减去一定数目的时间单位。 See also getPastTime. |
ticks | 返回指定时间戳的 ticks 属性值。 |
utcNow | 返回字符串形式的当前时间戳。 |
Workflow functions
这些工作流函数有助于:
- 在运行时获取有关工作流实例的详细信息。
- 使用用于实例化逻辑应用或流的输入。
- 引用触发器和操作的输出。
例如,可以引用一个操作的输出,并在后面的操作中使用该数据。 For the full reference about each function, see the alphabetical list.
Workflow function | Task |
---|---|
action | 返回当前操作在运行时的输出,或者来自其他 JSON 名称和值对的值。 See also actions. |
actions | 返回操作在运行时的输出,或者来自其他 JSON 名称和值对的值。 See also action. |
body | 返回操作在运行时的 body 输出。 |
formDataMultiValues | Create an array with the values that match a key name in form-data or form-encoded action outputs. |
formDataValue | Return a single value that matches a key name in an action's form-data or form-encoded output. |
item | 如果此函数出现在数组的重复操作中,返回数组在操作的当前迭代过程中的当前项。 |
items | 如果此函数出现在 Foreach 或 Until 循环中,返回指定循环中的当前项。 |
iterationIndexes | 如果此函数出现在 Until 循环中,返回当前迭代的索引值。 可以在嵌套式的 Until 循环中使用该函数。 |
listCallbackUrl | 返回调用某个触发器或操作的“回调 URL”。 |
multipartBody | 返回具有多个部分的操作输出中某个特定部分的正文。 |
outputs | 返回操作在运行时的输出。 |
parameters | 返回工作流定义中描述的参数的值。 |
result | 返回指定的有范围操作中顶级操作的输入和输出,例如 For_each 、Until 和 Scope 。 |
trigger | 返回触发器在运行时的输出,或者来自其他 JSON 名称和值对的输出。 See also triggerOutputs and triggerBody. |
triggerBody | 返回触发器在运行时的 body 输出。 See trigger. |
triggerFormDataValue | Return a single value matching a key name in form-data or form-encoded trigger outputs. |
triggerMultipartBody | 返回触发器多部分输出中特定部分的主体。 |
triggerFormDataMultiValues | Create an array whose values match a key name in form-data or form-encoded trigger outputs. |
triggerOutputs | 返回触发器在运行时的输出,或者来自其他 JSON 名称和值对的值。 See trigger. |
variables | 返回指定变量的值。 |
workflow | 返回运行期间有关工作流本身的所有详细信息。 |
URI 分析函数
若要使用统一资源标识符 (URI) 并获取这些 URI 的各个属性值,可以使用这些 URI 分析函数。 For the full reference about each function, see the alphabetical list.
URI 分析函数 | Task |
---|---|
uriHost | 返回统一资源标识符 (URI) 的 host 值。 |
uriPath | 返回统一资源标识符 (URI) 的 path 值。 |
uriPathAndQuery | 返回统一资源标识符 (URI) 的 path 和 query 值。 |
uriPort | 返回统一资源标识符 (URI) 的 port 值。 |
uriQuery | 返回统一资源标识符 (URI) 的 query 值。 |
uriScheme | 返回统一资源标识符 (URI) 的 scheme 值。 |
操作函数:JSON 和 XML
若要使用 JSON 对象和 XML 节点,可以使用这些操作函数。 For the full reference about each function, see the alphabetical list.
Manipulation function | Task |
---|---|
addProperty | 将属性及其值或名称/值对添加到 JSON 对象,并返回更新的对象。 |
coalesce | 返回一个或多个参数中的第一个非 null 值。 |
removeProperty | 从 JSON 对象中删除某个属性,并返回更新的对象。 |
setProperty | 设置 JSON 对象的属性值并返回更新的对象。 |
xpath | 检查 XML 中是否存在与 XPath(XML 路径语言)表达式匹配的节点或值,并返回匹配的节点或值。 |
---------------------------------
所有函数 - 字母列表
本部分按字母顺序列出所有可用函数。
A
操作
Return the current action's output at runtime, or values from other JSON name-and-value pairs, which you can assign to an expression. 默认情况下,此函数引用整个操作对象,但是也可以指定你需要其值的属性。 See also actions().
只能在以下位置使用 action()
函数:
- Webhook 操作的
unsubscribe
属性,用以访问原始subscribe
请求的结果 - 操作的
trackedProperties
属性 - 操作的
do-until
循环条件
action()
action().outputs.body.<property>
Parameter | Required | 类型 | Description |
---|---|---|---|
< property> | No | String | The name for the action object's property whose value you want: name, startTime, endTime, inputs, outputs, status, code, trackingId, and clientTrackingId. 在 Azure 门户中,可以通过查看特定运行历史记录的详细信息来查找这些属性。 有关详细信息,请参阅 REST API - 工作流运行操作。 |
Return value | 类型 | Description |
---|---|---|
< action-output> | String | 当前操作或属性的输出 |
actions
返回操作在运行时的输出,或者来自其他 JSON 名称和值对的值,可以将其分配给表达式。 默认情况下,此函数引用整个操作对象,但是也可以指定你需要其值的属性。 For shorthand versions, see body(). For the current action, see action().
Tip
actions()
函数以字符串的形式返回输出。 如果需要将返回值用作 JSON 对象,则首先需要转换字符串值。 可以使用分析 JSON 操作将字符串值转换为 JSON 对象。
Note
以前,当指定基于另一操作的输出运行的操作时,可以使用 actions()
函数或 conditions
元素。 但是,若要显式声明操作之间的依赖关系,现在必须使用依赖的操作的 runAfter
属性。
若要详细了解 runAfter
属性,请参阅使用 runAfter 属性捕获和处理故障。
actions('<actionName>')
actions('<actionName>').outputs.body.<property>
Parameter | Required | 类型 | Description |
---|---|---|---|
< actionName> | Yes | String | 需要获取其输出的操作对象的名称 |
< property> | No | String | The name for the action object's property whose value you want: name, startTime, endTime, inputs, outputs, status, code, trackingId, and clientTrackingId. 在 Azure 门户中,可以通过查看特定运行历史记录的详细信息来查找这些属性。 有关详细信息,请参阅 REST API - 工作流运行操作。 |
Return value | 类型 | Description |
---|---|---|
< action-output> | String | 指定操作或属性的输出 |
Example
此示例获取 X 操作 status
在运行时的 Get user
属性值:
actions('Get_user').outputs.body.status
并返回以下结果:"Succeeded"
add
返回两个数字相加的结果。
add(<summand_1>, <summand_2>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< summand_1>, <summand_2> | Yes | 整数、浮点数或混合类型 | 要相加的数字 |
Return value | 类型 | Description |
---|---|---|
< result-sum> | 整数或浮点数 | 指定数字相加的结果。 |
Example
此示例将指定的数字相加:
add(1, 1.5)
并返回以下结果:2.5
addDays
将日期添加到时间戳。
addDays('<timestamp>', <days>, '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< days> | Yes | Integer | 要加上的正负天数 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 时间戳加上指定的天数 |
Example 1
此示例将 10 天加到指定的时间戳:
addDays('2018-03-15T00:00:00Z', 10)
并返回以下结果:"2018-03-25T00:00:00.0000000Z"
Example 2
此示例从指定的时间戳减去 5 天:
addDays('2018-03-15T00:00:00Z', -5)
并返回以下结果:"2018-03-10T00:00:00.0000000Z"
addHours
将小时添加到时间戳。
addHours('<timestamp>', <hours>, '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< hours> | Yes | Integer | 要添加的小时数,可以为正数或负数 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 时间戳加上指定的小时数 |
Example 1
此示例将 10 小时加到指定的时间戳:
addHours('2018-03-15T00:00:00Z', 10)
并返回以下结果:"2018-03-15T10:00:00.0000000Z"
Example 2
此示例从指定的时间戳减去 5 小时:
addHours('2018-03-15T15:00:00Z', -5)
并返回以下结果:"2018-03-15T10:00:00.0000000Z"
addMinutes
将分钟添加到时间戳。
addMinutes('<timestamp>', <minutes>, '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< minutes> | Yes | Integer | 要加上的正负分钟数 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 时间戳加上指定的分钟数 |
Example 1
此示例将 10 分钟加到指定的时间戳:
addMinutes('2018-03-15T00:10:00Z', 10)
并返回以下结果:"2018-03-15T00:20:00.0000000Z"
Example 2
此示例从指定的时间戳减去 5 分钟:
addMinutes('2018-03-15T00:20:00Z', -5)
并返回以下结果:"2018-03-15T00:15:00.0000000Z"
addProperty
将属性及其值或名称/值对添加到 JSON 对象,并返回更新的对象。 如果在运行时已存在该属性,此函数会失败并引发错误。
addProperty(<object>, '<property>', <value>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< object> | Yes | Object | 要将属性添加到的 JSON 对象 |
< property> | Yes | String | 要添加的属性的名称 |
< value> | Yes | Any | 属性的值 |
Return value | 类型 | Description |
---|---|---|
< updated-object> | Object | 具有指定属性的更新后 JSON 对象 |
若要向现有属性中添加父属性,请使用 setProperty()
函数,而不是 addProperty()
函数。 否则,函数仅返回子对象作为输出。
setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< object> | Yes | Object | 要将属性添加到的 JSON 对象 |
< parent-property> | Yes | String | 要在其中添加子属性的父属性的名称 |
< child-property> | Yes | String | 要添加的子属性的名称 |
< value> | Yes | Any | 要为指定属性设置的值 |
Return value | 类型 | Description |
---|---|---|
< updated-object> | Object | 设置了其属性的更新后 JSON 对象 |
Example 1
This example adds the middleName
property to a JSON object, which is converted from a string to JSON by using the JSON() function. 该对象已经包含 firstName
和 surName
属性。 该函数将指定的值分配给新属性,并返回更新后的对象:
addProperty(json('{ "firstName": "Sophia", "lastName": "Owen" }'), 'middleName', 'Anne')
下面是当前的 JSON 对象:
{
"firstName": "Sophia",
"surName": "Owen"
}
下面是已更新的 JSON 对象:
{
"firstName": "Sophia",
"middleName": "Anne",
"surName": "Owen"
}
Example 2
This example adds the middleName
child property to the existing customerName
property in a JSON object, which is converted from a string to JSON by using the JSON() function. 该函数将指定的值分配给新属性,并返回更新后的对象:
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>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< seconds> | Yes | Integer | 要加上的正负秒数 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 时间戳加上指定的秒数 |
Example 1
此示例将 10 秒加到指定的时间戳:
addSeconds('2018-03-15T00:00:00Z', 10)
并返回以下结果:"2018-03-15T00:00:10.0000000Z"
Example 2
此示例从指定的时间戳减去 5 秒:
addSeconds('2018-03-15T00:00:30Z', -5)
并返回以下结果:"2018-03-15T00:00:25.0000000Z"
addToTime
将指定的时间单位加到时间戳。 See also getFutureTime().
addToTime('<timestamp>', <interval>, '<timeUnit>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< interval> | Yes | Integer | 要添加的指定时间单位数 |
< timeUnit> | Yes | String | The unit of time to use with interval: "Second", "Minute", "Hour", "Day", "Week", "Month", "Year" |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 时间戳加上指定的时间单位数 |
Example 1
此示例将 1 天加到指定的时间戳:
addToTime('2018-01-01T00:00:00Z', 1, 'Day')
并返回以下结果:"2018-01-02T00:00:00.0000000Z"
Example 2
此示例将 1 天加到指定的时间戳:
addToTime('2018-01-01T00:00:00Z', 1, 'Day', 'D')
并使用可选的“D”格式返回结果:"Tuesday, January 2, 2018"
and
检查所有表达式是否为真。 当所有表达式均为 true 时返回 true,当至少一个表达式为 false 时返回 false。
and(<expression1>, <expression2>, ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< expression1>, <expression2>, ... | Yes | 布尔 | 要检查的表达式 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当所有表达式均为 true 时返回 true。 当至少一个表达式为 false 时返回 false。 |
Example 1
这些示例检查指定的布尔值是否全为 true:
and(true, true)
and(false, true)
and(false, false)
并返回以下结果:
- 第一个示例:两个表达式均为 true,因此返回
true
。 - 第二个示例:一个表达式为 false,因此返回
false
。 - 第三个示例:两个表达式均为 false,因此返回
false
。
Example 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
。
数组
从单个指定的输入返回数组。 For multiple inputs, see createArray().
array('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 用于创建数组的字符串 |
Return value | 类型 | Description |
---|---|---|
[<value>] | Array | 一个包含单一指定输入的数组 |
Example
此示例基于“hello”字符串创建数组:
array('hello')
并返回以下结果:["hello"]
B
base64
返回字符串的 base64 编码版本。
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此你无需使用编码和解码函数手动执行这些转换。 但是,如果你仍然使用这些函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响其效果,除非你编辑函数的参数值,这样会从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码。
base64('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 输入字符串 |
Return value | 类型 | Description |
---|---|---|
< base64-string> | String | 输入字符串的 base64 编码版本 |
Example
此示例将“hello”字符串转换为 base64 编码的字符串:
base64('hello')
并返回以下结果:"aGVsbG8="
base64ToBinary
返回 base64 编码字符串的二进制版本。
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此你无需使用编码和解码函数手动执行这些转换。 但是,如果你仍然在设计器中使用这些函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响其效果,除非你编辑函数的参数值,这样会从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码。
base64ToBinary('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的 base64 编码字符串 |
Return value | 类型 | Description |
---|---|---|
< binary-for-base64-string> | String | base64 编码字符串的二进制版本 |
Example
此示例将 base64 编码的“aGVsbG8=”字符串转换为二进制字符串:
base64ToBinary('aGVsbG8=')
例如,假设你正在使用 HTTP 操作发送请求。 你可以使用 base64ToBinary()
将 base64 编码字符串转换为二进制数据,并使用请求中的 application/octet-stream
内容类型发送该数据。
base64ToString
返回 base64 编码字符串的字符串版本,有效地对 base64 字符串进行解码。 Use this function rather than decodeBase64(), which is deprecated.
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此你无需使用编码和解码函数手动执行这些转换。 但是,如果你仍然在设计器中使用这些函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响其效果,除非你编辑函数的参数值,这样会从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码。
base64ToString('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要解码的 base64 编码字符串 |
Return value | 类型 | Description |
---|---|---|
< decoded-base64-string> | String | base64 编码字符串的字符串版本 |
Example
此示例将 base64 编码的“aGVsbG8=”字符串转换为单纯的字符串:
base64ToString('aGVsbG8=')
并返回以下结果:"hello"
二进制
返回字符串的 base64 编码的二进制版本。
binary('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的字符串 |
Return value | 类型 | Description |
---|---|---|
< binary-for-input-value> | String | 指定字符串的 base64 编码的二进制版本 |
Example
例如,使用返回图像或视频文件的 HTTP 操作。 可使用 binary()
将该值转换为 base-64 编码的内容信封模型。 然后,你可以在其他操作(例如 Compose
)中重复使用内容信封。
你可以使用此函数表达式发送请求中带有 application/octet-stream
内容类型的字符串字节。
body
返回操作在运行时的 body
输出。
actions('<actionName>').outputs.body
的速记。 See actions().
body('<actionName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< actionName> | Yes | String | 所需的操作 body 输出的名称 |
Return value | 类型 | Description |
---|---|---|
< action-body-output> | String | 指定操作的 body 输出 |
Example
此示例获取 body
X 操作的 Get user
输出:
body('Get_user')
并返回以下结果:
"body": {
"FullName": "Contoso Corporation",
"Location": "Generic Town, USA",
"Id": 283541717,
"UserName": "ContosoInc",
"FollowersCount": 172,
"Description": "Leading the way in transforming the digital workplace.",
"StatusesCount": 93,
"FriendsCount": 126,
"FavouritesCount": 46,
"ProfileImageUrl": "https://pbs.twimg.com/profile_images/908820389907722240/gG9zaHcd_400x400.jpg"
}
bool
返回值的布尔版本。
bool(<value>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | Any | 要转换为布尔值的值。 |
如果对某个对象使用 bool()
,该对象的值必须是可转换为布尔值的字符串或整数。
Return value | 类型 | Description |
---|---|---|
true 或 false |
布尔 | 指定的值的布尔值版本。 |
Outputs
以下示例显示 bool()
支持的不同类型的输入:
Input value | 类型 | Return value |
---|---|---|
bool(1) |
Integer | true |
bool(0) |
Integer | false |
bool(-1) |
Integer | true |
bool('true') |
String | true |
bool('false') |
String | false |
C
chunk
将字符串或数组拆分为长度相等的区块。
chunk('<collection>', '<length>')
chunk([<collection>], '<length>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串或数组 | 要拆分的集合 |
< length> | Yes | 每个区块的长度 |
Return value | 类型 | Description |
---|---|---|
< collection> | Array | 具有指定长度的区块数组 |
Example 1
此示例将字符串拆分为长度为 10 的区块:
chunk('abcdefghijklmnopqrstuvwxyz', 10)
并返回以下结果:['abcdefghij', 'klmnopqrst', 'uvwxyz']
Example 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>, ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< object_1>, <object_2>, ... | Yes | 任意,可以混用各种类型 | 要检查是否为 null 的一个或多个项 |
Return value | 类型 | Description |
---|---|---|
< first-non-null-item> | Any | 第一个不为 NULL 的项或值。 如果所有参数均为 null,则此函数返回 null。 |
Example
这些示例返回指定值中的第一个非 null 值,当所有值均为 null 时返回 null:
coalesce(null, true, false)
coalesce(null, 'hello', 'world')
coalesce(null, null, null)
并返回以下结果:
- 第一个示例:
true
- 第二个示例:
"hello"
- 第三个示例:
null
concat
组合两个或更多字符串,并返回组合后的字符串。
concat('<text1>', '<text2>', ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< text1>, <text2>, ... | Yes | String | 至少两个要组合的字符串 |
Return value | 类型 | Description |
---|---|---|
< text1text2...> | String | 基于组合后的输入字符串创建的字符串。 Note: The length of the result must not exceed 104,857,600 characters. |
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此,当你对需要编码或解码的数据使用 concat()
函数时,无需手动执行这些转换:
concat('data:;base64,',<value>)
concat('data:,',encodeUriComponent(<value>))
但是,如果你仍然在设计器中使用此函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响效果,除非你编辑函数的参数值,这样就会从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码。
Example
此示例将字符串“Hello”和“World”组合到一起:
concat('Hello', 'World')
并返回以下结果:"HelloWorld"
contains
检查集合是否包含某个特定项。 当找到该项目时返回 true,找不到该项目时返回 false。 此函数区分大小写。
contains('<collection>', '<value>')
contains([<collection>], '<value>')
具体而言,此函数对以下集合类型起作用:
- A string to find a substring
- An array to find a value
- A dictionary to find a key
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串、数组或字典 | 要检查的集合 |
< value> | Yes | 分别为字符串、数组或字典 | 要查找的项 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 如果找到该项,则返回 true。 找不到时返回 false。 |
Example 1
此示例检查字符串“hello world”中是否有子字符串“world”并返回 true:
contains('hello world', 'world')
Example 2
此示例检查字符串“hello world”中是否有子字符串“universe”并返回 false:
contains('hello world', 'universe')
convertFromUtc
将时间戳从协调世界时 (UTC) 转换为目标时区。
convertFromUtc('<timestamp>', '<destinationTimeZone>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< destinationTimeZone> | Yes | String | 目标时区的名称。 有关时区名称,请查看:Microsoft Windows 默认时区。 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< converted-timestamp> | String | 已转换为目标时区且无时区 UTC 时差的时间戳。 |
Example 1
此示例将时间戳转换为指定的时区:
convertFromUtc('2018-01-01T08:00:00.0000000Z', 'Pacific Standard Time')
并返回以下结果:"2018-01-01T00:00:00.0000000"
Example 2
此示例将时间戳转换为指定的时区和格式:
convertFromUtc('2018-01-01T08:00:00.0000000Z', 'Pacific Standard Time', 'D')
并返回以下结果:"Monday, January 1, 2018"
convertTimeZone
将时间戳从源时区转换为目标时区。
convertTimeZone('<timestamp>', '<sourceTimeZone>', '<destinationTimeZone>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< sourceTimeZone> | Yes | String | 源时区的名称。 如需了解时区名称,请参阅 Microsoft Windows 默认时区,但可能需要删除时区名称中的所有标点。 |
< destinationTimeZone> | Yes | String | 目标时区的名称。 如需了解时区名称,请参阅 Microsoft Windows 默认时区,但可能需要删除时区名称中的所有标点。 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< converted-timestamp> | String | 已转换为目标时区的时间戳 |
Example 1
此示例将源时区转换为目标时区:
convertTimeZone('2018-01-01T08:00:00.0000000Z', 'UTC', 'Pacific Standard Time')
并返回以下结果:"2018-01-01T00:00:00.0000000"
Example 2
此示例将时区转换为指定的时区和格式:
convertTimeZone('2018-01-01T80:00:00.0000000Z', 'UTC', 'Pacific Standard Time', 'D')
并返回以下结果:"Monday, January 1, 2018"
convertToUtc
将时间戳从源时区转换为协调世界时 (UTC)。
convertToUtc('<timestamp>', '<sourceTimeZone>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< sourceTimeZone> | Yes | String | 源时区的名称。 如需了解时区名称,请参阅 Microsoft Windows 默认时区,但可能需要删除时区名称中的所有标点。 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< converted-timestamp> | String | 时间戳已转换为 UTC |
Example 1
此示例将时间戳转换为 UTC:
convertToUtc('01/01/2018 00:00:00', 'Pacific Standard Time')
并返回以下结果:"2018-01-01T08:00:00.0000000Z"
Example 2
此示例将时间戳转换为 UTC:
convertToUtc('01/01/2018 00:00:00', 'Pacific Standard Time', 'D')
并返回以下结果:"Monday, January 1, 2018"
createArray
从多个输入返回数组。 For single input arrays, see array().
createArray('<object1>', '<object2>', ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< object1>, <object2>, ... | Yes | 任意,但不能混用 | 至少两个用于创建数组的项 |
Return value | 类型 | Description |
---|---|---|
[<object1>, <object2>, ...] | Array | 基于所有输入项创建的数组 |
Example
此示例基于以下输入创建数组:
createArray('h', 'e', 'l', 'l', 'o')
并返回以下结果:["h", "e", "l", "l", "o"]
D
dataUri
返回字符串的数据统一资源标识符 (URI)。
dataUri('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的字符串 |
Return value | 类型 | Description |
---|---|---|
< data-uri> | String | 输入字符串的数据 URI |
Example
此示例创建“hello”字符串的数据 URI:
dataUri('hello')
并返回以下结果:"data:text/plain;charset=utf-8;base64,aGVsbG8="
dataUriToBinary
返回数据统一资源标识符 (URI) 的二进制版本。
Use this function rather than decodeDataUri().
虽然这两个函数的工作方式相同,但首选 dataUriBinary()
。
dataUriToBinary('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的数据 URI |
Return value | 类型 | Description |
---|---|---|
< binary-for-data-uri> | String | 数据 URI 的二进制版本 |
Example
此示例创建以下数据 URI 的二进制版本:
dataUriToBinary('data:text/plain;charset=utf-8;base64,aGVsbG8=')
并返回以下结果:
"01100100011000010111010001100001001110100111010001100101011110000111010000101111011100000 1101100011000010110100101101110001110110110001101101000011000010111001001110011011001010111 0100001111010111010101110100011001100010110100111000001110110110001001100001011100110110010 10011011000110100001011000110000101000111010101100111001101100010010001110011100000111101"
dataUriToString
返回数据统一资源标识符 (URI) 的字符串版本。
dataUriToString('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的数据 URI |
Return value | 类型 | Description |
---|---|---|
< string-for-data-uri> | String | 数据 URI 的字符串版本 |
Example
此示例创建以下数据 URI 的字符串:
dataUriToString('data:text/plain;charset=utf-8;base64,aGVsbG8=')
并返回以下结果:"hello"
dateDifference
以时间跨度形式返回两个时间戳之间的差值。 此函数从 startDate
中减去 endDate
,并以字符串格式返回时间戳结果。
dateDifference('<startDate>', '<endDate>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< startDate> | Yes | String | 包含时间戳的字符串 |
< endDate> | Yes | String | 包含时间戳的字符串 |
Return value | 类型 | Description |
---|---|---|
< timespan> | String | 两个时间戳之间的差值,即字符串格式的时间戳。 如果 startDate 比 endDate 更新,结果为负值。 |
Example
此示例从第二个值中减去第一个值:
dateDifference('2015-02-08', '2018-07-30')
并返回以下结果:"1268.00:00:00"
dayOfMonth
基于时间戳返回月中的某天。
dayOfMonth('<timestamp>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
Return value | 类型 | Description |
---|---|---|
< day-of-month> | Integer | 基于指定的时间戳返回月中的某天 |
Example
此示例返回时间戳中对应的月份日期编号。
dayOfMonth('2018-03-15T13:27:36Z')
并返回以下结果:15
dayOfWeek
基于时间戳返回周几。
dayOfWeek('<timestamp>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
Return value | 类型 | Description |
---|---|---|
< day-of-week> | Integer | 指定的时间戳中的周几,其中周日为 0,周一为 1,依此类推 |
Example
此示例将从以下时间戳中获取星期几的数字:
dayOfWeek('2018-03-15T13:27:36Z')
并返回以下结果:4
dayOfYear
基于时间戳返回年中的某天。
dayOfYear('<timestamp>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
Return value | 类型 | Description |
---|---|---|
< day-of-year> | Integer | 基于指定的时间戳返回年中的某天 |
Example
此示例将返回以下时间戳所对应的年份中的某一天的序号:
dayOfYear('2018-03-15T13:27:36Z')
并返回以下结果:74
十进制
将字符串中的小数数作为小数数返回。 当你处理需要小数精度的数据时,也可以使用此函数作为逻辑比较函数和数学函数的输入。 To capture and preserve precision when you use the result from the decimal() function, wrap any decimal output with the string function. 下面的示例显示了这种用法,如果将小数结果用作数字,可能会丢失精度。
Note
在这个函数和 Azure Logic应用运行时的上下文中讨论的小数精度与 .NET 小数精度相同。
decimal('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 字符串中的小数数 |
Return value | 类型 | Description |
---|---|---|
< decimal> | Decimal Number | 输入字符串的小数数 |
Example 1
此示例创建一个用作数字的小数:
decimal('1.2345678912312131') // Returns 1.234567891231213.
Example 2
此示例创建一个小数,然后将结果转换为字符串以保持精度:
string(decimal('1.2345678912312131')) // Returns "1.2345678912312131".
Example 3
此示例对两个小数数字使用数学函数,并将结果用作数字:
add(decimal('1.2345678912312131'), decimal('1.2345678912312131')) // Returns 2.469135782462426.
Example 4
此示例对两个小数数字使用数学函数,并将结果转换为字符串以保持精度:
string(add(decimal('1.2345678912312131'), decimal('1.2345678912312131'))) // Returns "2.4691357824624262".
decodeBase64 (deprecated)
This function is deprecated, so use base64ToString() instead.
decodeDataUri
返回数据统一资源标识符 (URI) 的二进制版本。 Consider using dataUriToBinary(), rather than decodeDataUri()
. 虽然这两个函数的工作方式相同,但首选 dataUriToBinary()
。
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此你无需使用编码和解码函数手动执行这些转换。 但是,如果你仍然在设计器中使用这些函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响其效果,除非你编辑函数的参数值,这样会从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码。
decodeDataUri('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要解码的数据 URI 字符串 |
Return value | 类型 | Description |
---|---|---|
< binary-for-data-uri> | String | 数据 URI 字符串的二进制版本 |
Example
此示例返回以下数据 URI 的二进制版本:
decodeDataUri('data:text/plain;charset=utf-8;base64,aGVsbG8=')
并返回以下结果:"hello"
decodeUriComponent
返回一个字符串,并将其中的转义字符替换为解码后的版本。
decodeUriComponent('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 包含要解码的转义字符的字符串 |
Return value | 类型 | Description |
---|---|---|
< decoded-uri> | String | 包含解码后的转义字符的更新后字符串 |
Example
此示例将以下字符串中的转义字符替换为解码后的版本:
decodeUriComponent('https%3A%2F%2Fcontoso.com')
并返回以下结果:"https://contoso.com"
div
返回两个数字相除的结果。 To get the remainder result, see mod().
div(<dividend>, <divisor>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< dividend> | Yes | 整数或浮点数 | The number to divide by the divisor |
< divisor> | Yes | 整数或浮点数 | The number that divides the dividend, but can't be zero |
Return value | 类型 | Description |
---|---|---|
< quotient-result> | 整数或浮点数 | 将第一个数字除以第二个数字后得到的结果。 如果被除数或除数为浮点类型,则结果也是浮点类型。 Note: To convert the float result to an integer, try creating and calling a function in Azure from your logic app. |
Example 1
这两个示例都返回整数类型的以下值:2
div(10,5)
div(11,5)
Example 2
这两个示例都返回浮点类型的以下值:2.2
div(11,5.0)
div(11.0,5)
E
encodeUriComponent
通过将 URL 不安全字符替换为转义字符来返回字符串的统一资源标识符 (URI) 编码版本。 Consider using uriComponent(), rather than encodeUriComponent()
. 虽然这两个函数的工作方式相同,但首选 uriComponent()
。
Note
Azure 逻辑应用会自动或隐式执行 base64 编码和解码,因此你无需使用编码和解码函数手动执行这些转换。 但是,如果你仍然在设计器中使用这些函数,则可能会在设计器中遇到意外的呈现行为。 这些行为仅影响函数的可见性,而不影响其效果,除非你编辑函数的参数值,这样会从代码中删除函数及其效果。 有关详细信息,请参阅 Base64 编码和解码。
encodeUriComponent('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换为 URI 编码格式的字符串 |
Return value | 类型 | Description |
---|---|---|
< encoded-uri> | String | 带有转义字符的 URI 编码字符串 |
Example
此示例创建以下字符串的 URI 编码版本:
encodeUriComponent('https://contoso.com')
并返回以下结果:"https%3A%2F%2Fcontoso.com"
empty
检查集合是否为空。 当集合为空时返回 true,不为空时返回 false。
empty('<collection>')
empty([<collection>])
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串、数组或对象 | 要检查的集合 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当集合为空时返回 true。 不为空时返回 false。 |
Example
这些示例检查指定的集合是否为空:
empty('')
empty('abc')
并返回以下结果:
- 第一个示例:传递一个空字符串,所以此函数返回
true
。 - 第二个示例:传递字符串“abc”,所以此函数返回
false
。
endsWith
检查字符串是否以特定的子字符串结尾。 当找到该子字符串时返回 true,找不到时返回 false。 此函数不区分大小写。
endsWith('<text>', '<searchText>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 要检查的字符串 |
< searchText> | Yes | String | 要查找的结尾子字符串 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当找到结尾子字符串时返回 true。 找不到时返回 false。 |
Example 1
此示例检查“hello world”字符串是否以“world”字符串结尾:
endsWith('hello world', 'world')
并返回以下结果:true
Example 2
此示例检查“hello world”字符串是否以“universe”字符串结尾:
endsWith('hello world', 'universe')
并返回以下结果:false
equals
检查两个值、表达式或对象是否相等。 当两者相等时返回 true,两者不相等时返回 false。
equals('<object1>', '<object2>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< object1>, <object2> | Yes | Various | 要比较的值、表达式或对象 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当两者相等时返回 true。 不相等时返回 false。 |
Example
这些示例检查指定的输入是否相等。
equals(true, 1)
equals('abc', 'abcd')
并返回以下结果:
- 第一个示例:两个值相等,所以此函数返回
true
。 - 第二个示例:两个值不相等,所以此函数返回
false
。
F
first
返回字符串或数组中的第一项。
first('<collection>')
first([<collection>])
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串或数组 | 要在其中查找第一项的集合 |
Return value | 类型 | Description |
---|---|---|
< first-collection-item> | Any | 集合中的第一项 |
Example
这些示例查找以下集合中的第一项:
first('hello')
first(createArray(0, 1, 2))
并返回以下结果:
- 第一个示例:
"h"
- 第二个示例:
0
float
将浮点数的字符串版本转换为实际的浮点数。 仅当将自定义参数传递给应用(例如,逻辑应用工作流或 Power Automate 流)时,才使用此函数。 若要转换以区域设置特定格式表示的浮点字符串,可以选择指定 RFC 4646 区域设置代码。
float('<value>', '<locale>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 包含要转换的有效浮点数的字符串。 最小值和最大值与 float 数据类型的限制相同。 |
< locale> | No | String | 要使用的 RFC 4646 区域设置代码。 如果未指定,则使用默认区域设置。 If locale isn't a valid value, an error is generated that the provided locale isn't valid or doesn't have an associated locale. |
Return value | 类型 | Description |
---|---|---|
< float-value> | Float | 指定字符串的浮点数。 最小值和最大值与 float 数据类型的限制相同。 |
Example 1
此示例创建以下浮点数的字符串版本:
float('10,000.333')
并返回以下结果:10000.333
Example 2
此示例为德式浮点数创建以下字符串版本:
float('10.000,333', 'de-DE')
并返回以下结果:10000.333
formatDateTime
以指定的格式返回时间戳。
formatDateTime('<timestamp>', '<format>'?, '<locale>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. |
< locale> | No | String | 要使用的区域设置。 如果未指定,则默认值为 en-us 。 If locale isn't a valid value, an error is generated. |
Return value | 类型 | 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
Return an array with values that match a key name in an action's form-data or form-encoded output.
formDataMultiValues('<actionName>', '<key>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< actionName> | Yes | String | 其输出中具有所需键值的操作 |
< key> | Yes | String | 需要获取其值的键的名称 |
Return value | 类型 | Description |
---|---|---|
[<array-with-key-values>] | Array | 包含与指定键匹配的所有值的数组 |
Example
此示例基于指定操作的表单数据或表单编码输出中的“Subject”键的值创建数组。
formDataMultiValues('Send_an_email', 'Subject')
并在数组中返回主题文本,例如:["Hello world"]
formDataValue
Return a single value that matches a key name in an action's form-data or form-encoded output. 如果此函数找到多个匹配项,此函数将引发错误。
formDataValue('<actionName>', '<key>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< actionName> | Yes | String | 其输出中具有所需键值的操作 |
< key> | Yes | String | 需要获取其值的键的名称 |
Return value | 类型 | Description |
---|---|---|
< key-value> | String | 指定的键中的值 |
Example
此示例基于指定操作的表单数据或表单编码输出中的“Subject”键的值创建字符串。
formDataValue('Send_an_email', 'Subject')
并以字符串形式返回主题文本,例如:"Hello world"
formatNumber
根据指定的格式以字符串形式返回一个数字。
formatNumber(<number>, <format>, <locale>?)
Return value | 类型 | Description |
---|---|---|
< formatted-number> | String | 以字符串形式指定的数字,采用指定的格式。 可将此返回值强制转换为 int 或 float 。 |
Example 1
假设你要设置数字 1234567890
的格式。 此示例将该数字的格式设置为字符串“1,234,567,890.00”。
formatNumber(1234567890, '0,0.00', 'en-us')
*Example 2"
假设你要设置数字 1234567890
的格式。 此示例将该数字的格式设置为字符串“1.234.567.890,00”。
formatNumber(1234567890, '0,0.00', 'is-is')
Example 3
假设你要设置数字 17.35
的格式。 此示例将该数字的格式设置为字符串“$17.35”。
formatNumber(17.35, 'C2')
Example 4
假设你要设置数字 17.35
的格式。 此示例将该数字的格式设置为字符串“17,35 kr”。
formatNumber(17.35, 'C2', 'is-is')
G
getFutureTime
返回当前时间戳加上指定的时间单位。
getFutureTime(<interval>, <timeUnit>, <format>?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< interval> | Yes | Integer | 要添加的时间单位数 |
< timeUnit> | Yes | String | The unit of time to use with interval: "Second", "Minute", "Hour", "Day", "Week", "Month", "Year" |
< format> | No | String |
单一格式的说明符或自定义格式的模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式并非有效值,则会生成错误,指出提供的格式无效,且必须是数字格式字符串。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 当前时间戳加上指定的时间单位数 |
Example 1
假设当前时间戳是“2018-03-01T00:00:00.0000000Z”。 此示例将 5 天加到该时间戳:
getFutureTime(5, 'Day')
并返回以下结果:"2018-03-06T00:00:00.0000000Z"
Example 2
假设当前时间戳是“2018-03-01T00:00:00.0000000Z”。 此示例加上 5 天,并将结果转换为“D”格式:
getFutureTime(5, 'Day', 'D')
并返回以下结果:"Tuesday, March 6, 2018"
getPastTime
返回当前时间戳减去指定的时间单位。
getPastTime(<interval>, <timeUnit>, <format>?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< interval> | Yes | Integer | 要减去的指定时间单位数 |
< timeUnit> | Yes | String | The unit of time to use with interval: "Second", "Minute", "Hour", "Day", "Week", "Month", "Year" |
< format> | No | String |
单一格式的说明符或自定义格式的模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式并非有效值,则会生成错误,指出提供的格式无效,且必须是数字格式字符串。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 当前时间戳减去指定的时间单位数 |
Example 1
假设当前时间戳是“2018-02-01T00:00:00.0000000Z”。 此示例从该时间戳减去 5 天:
getPastTime(5, 'Day')
并返回以下结果:"2018-01-27T00:00:00.0000000Z"
Example 2
假设当前时间戳是“2018-02-01T00:00:00.0000000Z”。 此示例减去 5 天,并将结果转换为“D”格式:
getPastTime(5, 'Day', 'D')
并返回以下结果:"Saturday, January 27, 2018"
greater
检查第一个值是否大于第二个值。 如果第一个值大,则返回 true;如果第一个值小,则返回 false。
greater(<value>, <compareTo>)
greater('<value>', '<compareTo>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | 整数、浮点数或字符串 | 要检查是否大于第二个值的第一个值 |
< compareTo> | Yes | 分别为整数、浮点数或字符串 | 比较值 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当第一个值大于第二个值时返回 true。 当第一个值等于或小于第二个值时返回 false。 |
Example
这些示例检查第一个值是否大于第二个值:
greater(10, 5)
greater('apple', 'banana')
并返回以下结果:
- 第一个示例:
true
- 第二个示例:
false
greaterOrEquals
检查第一个值是否大于或等于第二个值。 当第一个值大于或等于第二个值时返回 true,当第一个值小于第二个值时返回 false。
greaterOrEquals(<value>, <compareTo>)
greaterOrEquals('<value>', '<compareTo>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | 整数、浮点数或字符串 | 要检查是否大于或等于第二个值的第一个值 |
< compareTo> | Yes | 分别为整数、浮点数或字符串 | 比较值 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当第一个值大于或等于第二个值时返回 true。 当第一个值小于第二个值时返回 false。 |
Example
这些示例检查第一个值是否大于或等于第二个值:
greaterOrEquals(5, 5)
greaterOrEquals('apple', 'banana')
并返回以下结果:
- 第一个示例:
true
- 第二个示例:
false
guid
生成一个字符串形式的全局唯一标识符 (GUID),例如“c2ecc88d-88c8-4096-912c-d6f2e2b138ce”:
guid()
此外,还可以为 GUID 指定与默认格式“D”(由连字符分隔的 32 位数字)不同的格式。
guid('<format>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< format> | No | String | A single format specifier for the returned GUID. 默认情况下,格式为“D”,但可以使用“N”、“D”、“B”、“P”或“X”。 |
Return value | 类型 | Description |
---|---|---|
< GUID-value> | String | 随机生成的 GUID |
Example
此示例生成相同的 GUID,但格式为 32 位数字,用连字符分隔并括在括号中:
guid('P')
并返回以下结果:"(c2ecc88d-88c8-4096-912c-d6f2e2b138ce)"
I
if
检查表达式为 true 还是 false。 根据结果返回指定的值。 从左到右评估参数。
if(<expression>, <valueIfTrue>, <valueIfFalse>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< expression> | Yes | 布尔 | 要检查的表达式 |
< valueIfTrue> | Yes | Any | 当表达式为 true 时要返回的值 |
< valueIfFalse> | Yes | Any | 当表达式为 false 时要返回的值 |
Return value | 类型 | Description |
---|---|---|
< specified-return-value> | Any | 根据表达式为 true 或 false 返回的指定值 |
Example
此示例返回 "yes"
,因为指定的表达式返回 true。
否则,此示例返回 "no"
:
if(equals(1, 1), 'yes', 'no')
indexOf
返回子字符串的起始位置或索引值。 此函数不区分大小写,并且索引从数字 0 开始。
indexOf('<text>', '<searchText>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 包含要查找的子字符串的字符串 |
< searchText> | Yes | String | 要查找的子字符串 |
Return value | 类型 | Description |
---|---|---|
< index-value> | Integer | 指定的子字符串的起始位置或索引值。 如果未找到该字符串,则返回数字 -1。 |
Example
此示例查找“hello world”字符串中的“world”子字符串的起始索引值:
indexOf('hello world', 'world')
并返回以下结果:6
int
将整数的字符串版本转换为实际整数。
int('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的整数的字符串版本。 最小值和最大值与 integer 数据类型的限制相同。 |
Return value | 类型 | Description |
---|---|---|
< integer-result> | Integer | 指定字符串的整数版本。 最小值和最大值与 integer 数据类型的限制相同。 |
Example
此示例创建字符串“10”的整数版本:
int('10')
并返回以下结果:10
isFloat
返回一个布尔值,该值指示字符串是否为浮点数。 默认情况下,此函数使用浮点格式的固定区域性。 若要标识以其他区域设置特定格式表示的浮点数,可以选择指定 RFC 4646 区域设置代码。
isFloat('<string>', '<locale>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要检查的输入字符串 |
< locale> | No | String | 要使用的 RFC 4646 区域设置代码 |
Return value | 类型 | Description |
---|---|---|
< boolean-result> | 布尔 | 指示字符串是否为浮点数的布尔值 |
Example 1
此示例检查字符串是否为固定区域性中的浮点数:
isFloat('10,000.00')
并返回以下结果:true
Example 2
此示例检查字符串是否为德语区域设置中的浮点数:
isFloat('10.000,00', 'de-DE')
并返回以下结果:true
isInt
返回一个布尔值,该值指示字符串是否为整数。
isInt('<string>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< string> | Yes | String | 要检查的输入字符串 |
Return value | 类型 | Description |
---|---|---|
< boolean-result> | 布尔 | 指示字符串是否为整数的布尔值 |
Example
此示例检查字符串是否为整数:
isInt('10')
并返回以下结果:true
项
当在针对数组的重复操作中使用时,返回在操作的当前迭代过程中数组中的当前项。 还可以获取该项的属性中的值。
item()
Return value | 类型 | Description |
---|---|---|
< current-array-item> | Any | 返回在操作的当前迭代中数组中的当前项 |
Example
此示例在 for-each 循环的当前迭代中从“Send_an_email”操作的当前消息中获取 body
元素:
item().body
items
返回 for-each 循环中每个周期的当前项。 请在 for-each 循环中使用此函数。
items('<loopName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< loopName> | Yes | String | for-each 循环的名称 |
Return value | 类型 | Description |
---|---|---|
< item> | Any | 指定的 for-each 循环中当前周期中的项 |
Example
此示例获取指定 for-each 循环的当前项:
items('myForEachLoopName')
iterationIndexes
位于 Until 循环中时,返回当前迭代的索引值。 可以在嵌套式的 Until 循环中使用该函数。
iterationIndexes('<loopName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< loopName> | Yes | String | Until 循环的名称 |
Return value | 类型 | Description |
---|---|---|
< index> | Integer | 指定的 Until 循环中当前迭代的索引值 |
Example
此示例创建一个计数器变量,在 Until 循环中每迭代一次该变量就会递增 1,直至计数器值达到 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'))
Important
如果不提供一个用于定义输出结构的 XML 架构,该函数可能会返回其结构与预期格式大不相同的结果,具体取决于输入。
这种行为使得此函数不适合用于输出必须符合妥善定义的协定的情况,例如,在业务关键型系统或解决方案中。
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | 字符串或 XML | 要转换的字符串或 XML |
Return value | 类型 | Description |
---|---|---|
< JSON-result> | JSON 本机类型、对象或数组 | 来自输入字符串或 XML 的 JSON 本机类型值、对象或对象数组。 - 如果传入的 XML 在根元素中具有单个子元素,则该函数将返回该子元素的单个 JSON 对象。 - 如果传入的 XML 在根元素中具有多个子元素,则该函数将返回一个数组,其中包含这些子元素的 JSON 对象。 - 如果字符串为 null,则该函数将返回空对象。 |
Example 1
此示例将以下字符串转换为 JSON 值:
json('[1, 2, 3]')
并返回以下结果:[1, 2, 3]
Example 2
此示例将以下字符串转换为 JSON:
json('{"fullName": "Sophia Owen"}')
并返回以下结果:
{
"fullName": "Sophia Owen"
}
Example 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"
}
}
}
Example 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
Return a collection that has only the common items across the specified collections. 某个项必须出现在传递给此函数的所有集合中才会出现在结果中。 如果一个或多个项具有相同的名称,则具有该名称的最后一项将出现在结果中。
intersection([<collection1>], [<collection2>], ...)
intersection('<collection1>', '<collection2>', ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection1>, <collection2>, ... | Yes | 数组或对象,但不能为两者 | The collections from where you want only the common items |
Return value | 类型 | Description |
---|---|---|
< common-items> | 分别为数组或对象 | 仅包含指定集合中共同项的一个集合 |
Example
此示例查找以下数组中的共有项:
intersection(createArray(1, 2, 3), createArray(101, 2, 1, 10), createArray(6, 8, 1, 2))
And returns an array with only these items: [1, 2]
加入
Return a string that has all the items from an array and has each character separated by a delimiter.
join([<collection>], '<delimiter>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | Array | 包含要联接的项的数组 |
< delimiter> | Yes | String | 出现在结果字符串中的每个字符之间的分隔符 |
Return value | 类型 | Description |
---|---|---|
< char1><delimiter><char2><delimiter>... | String | 基于指定数组中的所有项创建的结果字符串。 Note: The length of the result must not exceed 104,857,600 characters. |
Example
此示例基于以下数组中的所有项创建字符串,并且以指定的字符作为分隔符:
join(createArray('a', 'b', 'c'), '.')
并返回以下结果:"a.b.c"
L
last
返回集合中的最后一个项。
last('<collection>')
last([<collection>])
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串或数组 | 要在其中查找最后一项的集合 |
Return value | 类型 | Description |
---|---|---|
< last-collection-item> | 分别为字符串或数组 | 集合中的最后一项 |
Example
这些示例查找以下集合中的最后一项:
last('abcd')
last(createArray(0, 1, 2, 3))
并返回以下结果:
- 第一个示例:
"d"
- 第二个示例:
3
lastIndexOf
返回最后一次出现的子字符串的起始位置或索引值。 此函数不区分大小写,并且索引从数字 0 开始。
lastIndexOf('<text>', '<searchText>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 包含要查找的子字符串的字符串 |
< searchText> | Yes | String | 要查找的子字符串 |
Return value | 类型 | Description |
---|---|---|
< ending-index-value> | Integer | 最后一次出现的指定子字符串的起始位置或索引值。 |
如果字符串或子字符串值为空,则会出现以下行为:
如果只有字符串值为空,该函数将返回
-1
。如果字符串和子字符串值均为空,该函数将返回
0
。如果只有子字符串值为空,该函数将返回字符串长度减 1 后的值。
Examples
此示例查找 world
字符串中最后一次出现的 hello world hello world
子字符串的起始索引值。 返回的结果为 18
:
lastIndexOf('hello world hello world', 'world')
此示例缺少子字符串参数,将返回 22
值,因为输入字符串 (23
) 减 1 后的值大于 0。
lastIndexOf('hello world hello world', '')
length
返回集合中的项数。
length('<collection>')
length([<collection>])
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串或数组 | 包含要计数的项的集合 |
Return value | 类型 | Description |
---|---|---|
< length-or-count> | Integer | 集合中的项数 |
Example
这些示例对以下集合中的项数进行计数:
length('abcd')
length(createArray(0, 1, 2, 3))
并返回以下结果:4
less
检查第一个值是否小于第二个值。 如果第一个值小,则返回 true;如果第一个值大,则返回 false。
less(<value>, <compareTo>)
less('<value>', '<compareTo>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | 整数、浮点数或字符串 | 要检查是否小于第二个值的第一个值 |
< compareTo> | Yes | 分别为整数、浮点数或字符串 | 比较项 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当第一个值小于第二个值时返回 true。 当第一个值等于或大于第二个值时返回 false。 |
Example
这些示例检查第一个值是否小于第二个值。
less(5, 10)
less('banana', 'apple')
并返回以下结果:
- 第一个示例:
true
- 第二个示例:
false
lessOrEquals
检查第一个值是否小于或等于第二个值。 当第一个值小于或等于第二个值时返回 true,当第一个值大时返回 false。
lessOrEquals(<value>, <compareTo>)
lessOrEquals('<value>', '<compareTo>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | 整数、浮点数或字符串 | 要检查是否小于或等于第二个值的第一个值 |
< compareTo> | Yes | 分别为整数、浮点数或字符串 | 比较项 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当第一个值小于或等于第二个值时返回 true。 当第一个值大于第二个值时返回 false。 |
Example
这些示例检查第一个值是否小于或等于第二个值。
lessOrEquals(10, 10)
lessOrEquals('apply', 'apple')
并返回以下结果:
- 第一个示例:
true
- 第二个示例:
false
listCallbackUrl
返回调用某个触发器或操作的“回调 URL”。 This function works only with triggers and actions for the HttpWebhook and ApiConnectionWebhook connector types, but not the Manual, Recurrence, HTTP, and APIConnection types.
listCallbackUrl()
Return value | 类型 | Description |
---|---|---|
< callback-URL> | String | 触发器或操作的回调 URL |
Example
此示例显示了此函数可能会返回的示例回调 URL:
"https://prod-01.westus.logic.azure.com:443/workflows/<*workflow-ID*>/triggers/manual/run?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<*signature-ID*>"
M
max
返回列表中或包括两端数字在内的数组中的最大值。
max(<number1>, <number2>, ...)
max([<number1>, <number2>, ...])
Parameter | Required | 类型 | Description |
---|---|---|---|
< number1>, <number2>, ... | Yes | 整数、浮点数或两者 | 需要从中获取最大值的数字集 |
[<number1>, <number2>, ...] | Yes | 数组 - 整数、浮点数或两者 | 需要从中获取最大值的数字数组 |
Return value | 类型 | Description |
---|---|---|
< max-value> | 整数或浮点数 | 指定的数组或数字集中的最大值 |
Example
这些示例从数字集和数组中获取最高的值:
max(1, 2, 3)
max(createArray(1, 2, 3))
并返回以下结果:3
min
返回一组数字或数组中的最小值。
min(<number1>, <number2>, ...)
min([<number1>, <number2>, ...])
Parameter | Required | 类型 | Description |
---|---|---|---|
< number1>, <number2>, ... | Yes | 整数、浮点数或两者 | 需要从中获取最小值的数字集 |
[<number1>, <number2>, ...] | Yes | 数组 - 整数、浮点数或两者 | 需要从中获取最小值的数字数组 |
Return value | 类型 | Description |
---|---|---|
< min-value> | 整数或浮点数 | 指定的数字集或指定的数组中的最小值 |
Example
这些示例获取数字集和数组中的最小值:
min(1, 2, 3)
min(createArray(1, 2, 3))
并返回以下结果:1
mod
返回将两个数字相除后的余数。 To get the integer result, see div().
mod(<dividend>, <divisor>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< dividend> | Yes | 整数或浮点数 | The number to divide by the divisor |
< divisor> | Yes | 整数或浮点数 | The number that divides the dividend, but can't be zero |
Return value | 类型 | Description |
---|---|---|
< modulo-result> | 整数或浮点数 | 将第一个数字除以第二个数字后得到的余数 |
Example 1
此示例将第一个数字除以第二个数字:
mod(3, 2)
并返回以下结果:1
Example 2
此示例表明,如果一个值或两个值为负,则结果与被除数的符号匹配:
mod(-5, 2)
mod(4, -3)
此示例返回以下结果:
- 第一个示例:
-1
- 第二个示例:
1
mul
返回将两个数字相乘得到的乘积。
mul(<multiplicand1>, <multiplicand2>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< multiplicand1> | Yes | 整数或浮点数 | The number to multiply by multiplicand2 |
< multiplicand2> | Yes | 整数或浮点数 | The number that multiples multiplicand1 |
Return value | 类型 | Description |
---|---|---|
< product-result> | 整数或浮点数 | 将第一个数字乘以第二个数字后得到的乘积 |
Example
这些示例将第一个数字乘以第二个数字:
mul(1, 2)
mul(1.5, 2)
并返回以下结果:
- 第一个示例:
2
- 第二个示例:
3
multipartBody
返回具有多个部分的操作输出中某个特定部分的正文。
multipartBody('<actionName>', <index>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< actionName> | Yes | String | 具有多部分输出的操作的名称 |
< index> | Yes | Integer | 所需部分的索引值 |
Return value | 类型 | Description |
---|---|---|
< body> | String | 指定部分的正文 |
N
not
判断表达式是否为假。 当表达式为 false 时返回 true,当表达式为 true 时返回 false。
not(<expression>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< expression> | Yes | 布尔 | 要检查的表达式 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当表达式为 false 时返回 true。 当表达式为 true 时返回 false。 |
Example 1
这些示例用于检查指定的表达式是否为假:
not(false)
not(true)
并返回以下结果:
- 第一个示例:表达式为 false,所以此函数返回
true
。 - 第二个示例:表达式为 true,所以此函数返回
false
。
Example 2
这些示例用于检查指定的表达式是否为假:
not(equals(1, 2))
not(equals(1, 1))
并返回以下结果:
- 第一个示例:表达式为 false,所以此函数返回
true
。 - 第二个示例:表达式为 true,所以此函数返回
false
。
nthIndexOf
Return the starting position or index value where the nth occurrence of a substring appears in a string.
nthIndexOf('<text>', '<searchText>', <occurrence>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 包含要查找的子字符串的字符串 |
< searchText> | Yes | String | 要查找的子字符串 |
< occurrence> | Yes | Integer | A number that specifies the nth occurrence of the substring to find. If occurrence is negative, start searching from the end. |
Return value | 类型 | Description |
---|---|---|
< index-value> | Integer | The starting position or index value for the nth occurrence of the specified substring. If the substring isn't found or fewer than n occurrences of the substring exist, return -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
or
检查是否至少一个表达式为真。 当至少一个表达式为 true 时返回 true,当所有表达式均为 false 时返回 false。
or(<expression1>, <expression2>, ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< expression1>, <expression2>, ... | Yes | 布尔 | 要检查的表达式 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当至少一个表达式为 true 时返回 true。 当所有表达式均为 false 时返回 false。 |
Example 1
这些示例检查是否至少一个表达式为真:
or(true, false)
or(false, false)
并返回以下结果:
- 第一个示例:至少一个表达式为 true,所以此函数返回
true
。 - 第二个示例:两个表达式均为 false,所以此函数返回
false
。
Example 2
这些示例检查是否至少一个表达式为真:
or(equals(1, 1), equals(1, 2))
or(equals(1, 2), equals(1, 3))
并返回以下结果:
- 第一个示例:至少一个表达式为 true,所以此函数返回
true
。 - 第二个示例:两个表达式均为 false,所以此函数返回
false
。
outputs
返回操作在运行时的输出。
outputs('<actionName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< actionName> | Yes | String | 所需的操作输出的名称 |
Return value | 类型 | Description |
---|---|---|
< output> | String | 指定操作的输出 |
Example
此示例从 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.azurewebsites.net",
"X-AspNet-Version": "4.0.30319",
"X-Powered-By": "ASP.NET",
"Content-Type": "application/json; charset=utf-8",
"Expires": "-1",
"Content-Length": "339"
},
"body": {
"FullName": "Contoso Corporation",
"Location": "Generic Town, USA",
"Id": 283541717,
"UserName": "ContosoInc",
"FollowersCount": 172,
"Description": "Leading the way in transforming the digital workplace.",
"StatusesCount": 93,
"FriendsCount": 126,
"FavouritesCount": 46,
"ProfileImageUrl": "https://pbs.twimg.com/profile_images/908820389907722240/gG9zaHcd_400x400.jpg"
}
}
P
parameters
返回工作流定义中描述的参数的值。
parameters('<parameterName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< parameterName> | Yes | String | 需要获取其值的参数的名称。 |
Return value | 类型 | Description |
---|---|---|
< parameter-value> | Any | 指定的参数的值 |
Example
假设具有以下 JSON 值:
{
"fullName": "Sophia Owen"
}
此示例获取指定参数的值:
parameters('fullName')
并返回以下结果:"Sophia Owen"
parseDateTime
从包含时间戳的字符串中返回时间戳。
parseDateTime('<timestamp>', '<locale>'?, '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< locale> | No | String | 要使用的区域设置。 如果未指定,则默认区域设置为 en-us 。 If locale isn't a valid value, an error is generated. |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果未指定格式,请尝试使用与所提供的区域设置兼容的多种格式进行分析。 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< parsed-timestamp> | String | The parsed timestamp in "o" (yyyy-MM-ddTHH:mm:ss.fffffffK) format, which complies with ISO 8601 and preserves time zone information. |
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
返回指定范围(仅包括起端在内)中的一个随机整数。
rand(<minValue>, <maxValue>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< minValue> | Yes | Integer | 范围中的最小整数 |
< maxValue> | Yes | Integer | 此函数可以返回的范围中的最大整数之后的整数 |
Return value | 类型 | Description |
---|---|---|
< random-result> | Integer | 从指定范围中返回的随机整数 |
Example
此示例从指定范围内获取一个随机整数,不包括最大值:
rand(1, 5)
并返回下列数字之一作为结果:1
、2
、3
或 4
范围
返回以指定整数开头的一个整数数组。
range(<startIndex>, <count>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< startIndex> | Yes | Integer | 作为数组开头的第一项的整数值 |
< count> | Yes | Integer | 数组中的整数个数。
count 参数值必须是不超过 100,000 的正整数。 Note: The sum of the startIndex and count values must not exceed 2,147,483,647. |
Return value | 类型 | Description |
---|---|---|
[<range-result>] | Array | 从指定索引开始的整数组成的数组 |
Example
此示例创建一个整数数组,从指定索引开始,并包含指定数目的整数:
range(1, 4)
并返回以下结果:[1, 2, 3, 4]
removeProperty
从对象中删除属性,并返回更新后的对象。 如果尝试删除的属性不存在,此函数会返回原始对象。
removeProperty(<object>, '<property>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< object> | Yes | Object | 要从中删除属性的 JSON 对象 |
< property> | Yes | String | 要删除的属性的名称 |
Return value | 类型 | Description |
---|---|---|
< updated-object> | Object | 不具有指定属性的更新后 JSON 对象 |
若要从现有属性中删除子属性,请使用以下语法:
removeProperty(<object>['<parent-property>'], '<child-property>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< object> | Yes | Object | 要删除其属性的 JSON 对象 |
< parent-property> | Yes | String | 要删除其子属性的父属性的名称 |
< child-property> | Yes | String | 要删除的子属性的名称 |
Return value | 类型 | Description |
---|---|---|
< updated-object> | Object | 删除了其子属性的已更新 JSON 对象 |
Example 1
This example removes the middleName
property from a JSON object, which is converted from a string to JSON by using the JSON() function, and returns the updated object:
removeProperty(json('{ "firstName": "Sophia", "middleName": "Anne", "surName": "Owen" }'), 'middleName')
下面是当前的 JSON 对象:
{
"firstName": "Sophia",
"middleName": "Anne",
"surName": "Owen"
}
下面是已更新的 JSON 对象:
{
"firstName": "Sophia",
"surName": "Owen"
}
Example 2
This example removes the middleName
child property from a customerName
parent property in a JSON object, which is converted from a string to JSON by using the JSON() function, and returns the updated object:
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>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 包含要替换的子字符串的字符串 |
< oldText> | Yes | String | 要替换的子字符串 |
< newText> | Yes | String | 替换字符串 |
Return value | 类型 | Description |
---|---|---|
< updated-text> | String | 替换子字符串后得到的更新后字符串 如果未找到子字符串,则返回原始字符串。 |
Example
此示例查找“the old string”中的“old”子字符串并将“old”替换为“new”:
replace('the old string', 'old', 'new')
并返回以下结果:"the new string"
result
返回指定的有范围操作(例如 For_each
、Until
或 Scope
操作)中顶级操作的结果。
result()
函数接受单个参数(范围的名称),并返回一个数组,其中包含该范围内的顶级操作中的信息。 这些操作对象包含的特性(例如操作的开始时间、结束时间、状态、输入、相关 ID 和输出)与 actions()
函数返回的特性相同。
Note
This function returns information only from the first-level actions in the scoped action and not from deeper nested actions such as switch or condition actions.
例如,可以使用此函数获取失败操作的结果,以便可以诊断和处理异常。 有关详细信息,请参阅获取失败的上下文和结果。
result('<scopedActionName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< scopedActionName> | Yes | String | 有范围操作的名称,其输入和输出来自该范围内的顶级操作。 |
Return value | 类型 | Description |
---|---|---|
< array-object> | Array object | 一个数组,其中包含指定范围内每个顶级操作中的输入和输出数组 |
Example
此示例通过在 For_each
操作中使用 result()
函数,返回 Compose
循环中 HTTP 操作的每次迭代的输入和输出:
{
"actions": {
"Compose": {
"inputs": "@result('For_each')",
"runAfter": {
"For_each": [
"Succeeded"
]
},
"type": "compose"
},
"For_each": {
"actions": {
"HTTP": {
"inputs": {
"method": "GET",
"uri": "https://httpstat.us/200"
},
"runAfter": {},
"type": "Http"
}
},
"foreach": "@triggerBody()",
"runAfter": {},
"type": "Foreach"
}
}
}
下面是示例返回的数组可能的外观,其中的外部 outputs
对象包含 For_each
操作中每个操作迭代的输入和输出。
[
{
"name": "HTTP",
"outputs": [
{
"name": "HTTP",
"inputs": {
"uri": "https://httpstat.us/200",
"method": "GET"
},
"outputs": {
"statusCode": 200,
"headers": {
"X-AspNetMvc-Version": "5.1",
"Access-Control-Allow-Origin": "*",
"Cache-Control": "private",
"Date": "Tue, 20 Aug 2019 22:15:37 GMT",
"Set-Cookie": "ARRAffinity=0285cfbea9f2ee7",
"Server": "Microsoft-IIS/10.0",
"X-AspNet-Version": "4.0.30319",
"X-Powered-By": "ASP.NET",
"Content-Length": "0"
},
"startTime": "2019-08-20T22:15:37.6919631Z",
"endTime": "2019-08-20T22:15:37.95762Z",
"trackingId": "6bad3015-0444-4ccd-a971-cbb0c99a7.....",
"clientTrackingId": "085863526764.....",
"code": "OK",
"status": "Succeeded"
}
},
{
"name": "HTTP",
"inputs": {
"uri": "https://httpstat.us/200",
"method": "GET"
},
"outputs": {
"statusCode": 200,
"headers": {
"X-AspNetMvc-Version": "5.1",
"Access-Control-Allow-Origin": "*",
"Cache-Control": "private",
"Date": "Tue, 20 Aug 2019 22:15:37 GMT",
"Set-Cookie": "ARRAffinity=0285cfbea9f2ee7",
"Server": "Microsoft-IIS/10.0",
"X-AspNet-Version": "4.0.30319",
"X-Powered-By": "ASP.NET",
"Content-Length": "0"
},
"startTime": "2019-08-20T22:15:37.6919631Z",
"endTime": "2019-08-20T22:15:37.95762Z",
"trackingId": "9987e889-981b-41c5-aa27-f3e0e59bf69.....",
"clientTrackingId": "085863526764.....",
"code": "OK",
"status": "Succeeded"
}
}
]
}
]
reverse
反转集合中项的顺序。 When you use this function with sort(), you can sort a collection in descending order.
reverse([<collection>])
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | Array | 要反转的集合 |
Return value | 类型 | Description |
---|---|---|
[<updated-collection>] | Array | 已反转的集合 |
Example
此示例对整数数组进行反转:
reverse(createArray(0, 1, 2, 3))
并返回此数组:[3,2,1,0]
S
setProperty
设置 JSON 对象的属性值并返回更新的对象。 如果尝试设置的属性不存在,则会为对象添加该属性。 To add a new property, use the addProperty() function.
setProperty(<object>, '<property>', <value>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< object> | Yes | Object | 要设置其属性的 JSON 对象 |
< property> | Yes | String | 要设置的现有属性或新属性的名称 |
< value> | Yes | Any | 要为指定属性设置的值 |
若要在子对象中设置子属性,请改用嵌套式 setProperty()
调用。 否则,函数仅返回子对象作为输出。
setProperty(<object>, '<parent-property>', setProperty(<object>['parentProperty'], '<child-property>', <value>))
Parameter | Required | 类型 | Description |
---|---|---|---|
< object> | Yes | Object | 要设置其属性的 JSON 对象 |
< parent-property> | Yes | String | 要设置其子属性的父属性的名称 |
< child-property> | Yes | String | 要设置的子属性的名称 |
< value> | Yes | Any | 要为指定属性设置的值 |
Return value | 类型 | Description |
---|---|---|
< updated-object> | Object | 设置了其属性的更新后 JSON 对象 |
Example 1
This example sets the surName
property in a JSON object, which is converted from a string to JSON by using the JSON() function. 该函数将指定的值分配给属性,并返回更新后的对象:
setProperty(json('{ "firstName": "Sophia", "surName": "Owen" }'), 'surName', 'Hartnett')
下面是当前的 JSON 对象:
{
"firstName": "Sophia",
"surName": "Owen"
}
下面是已更新的 JSON 对象:
{
"firstName": "Sophia",
"surName": "Hartnett"
}
Example 2
This example sets the surName
child property for the customerName
parent property in a JSON object, which is converted from a string to JSON by using the JSON() function. 该函数将指定的值分配给属性,并返回更新后的对象:
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>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | Array | 要删除其项的集合 |
< count> | Yes | Integer | 要从开头删除的项数(一个正整数) |
Return value | 类型 | Description |
---|---|---|
[<updated-collection>] | Array | 删除指定项后得到的更新后的集合 |
Example
此示例从指定数组的开头删除一个项(数字 0):
skip(createArray(0, 1, 2, 3), 1)
并返回包含剩余项的以下数组:[1,2,3]
切分
通过指定起始位置和结束位置或值返回子字符串。 See also substring().
slice('<text>', <startIndex>, <endIndex>?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 包含要查找的子字符串的字符串 |
< startIndex> | Yes | Integer | 从零开始的起始位置或值,表示开始搜索子字符串的位置 - If startIndex is greater than the string length, return an empty string. - If startIndex is negative, start searching at the index value that's the sum of the string length and startIndex. |
< endIndex> | No | Integer | 自从零开始的位置或值结束搜索子字符串。 位于结束索引值处的字符不包含在搜索中。 - If endIndex isn't specified or greater than the string length, search up to the end of the string. - If endIndex is negative, end searching at the index value that the sum of the string length and endIndex. |
Return value | 类型 | 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>?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | Array | 包含要排序的项的集合 |
< sortBy> | No | String | 用于对集合对象进行排序的键 |
Return value | 类型 | Description |
---|---|---|
[<updated-collection>] | Array | 已排序的集合 |
Example 1
此示例对整数数组进行排序:
sort(createArray(2, 1, 0, 3))
并返回此数组:[0,1,2,3]
Example 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>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 根据原始字符串中指定的分隔符将分隔成子字符串的字符串 |
< delimiter> | Yes | String | 原始字符串中用作分隔符的字符 |
Return value | 类型 | Description |
---|---|---|
[<substring1>,<substring2>,...] | Array | 一个数组,其中包含从原始字符串返回以逗号分隔的子字符串 |
Example 1
此示例根据作为分隔符的指定字符,从指定字符串创建具有子字符串的数组:
split('a_b_c', '_')
并将此数组作为以下结果返回:["a","b","c"]
Example 2
当字符串中不存在分隔符时,此示例创建具有单个元素的阵列:
split('a_b_c', ' ')
并将此数组作为以下结果返回:["a_b_c"]
startOfDay
返回时间戳中的天的开始时间。
startOfDay('<timestamp>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 指定的时间戳,但从该天的零小时标记开始 |
Example
此示例查找以下时间戳中的天的开始时间:
startOfDay('2018-03-15T13:30:30Z')
并返回以下结果:"2018-03-15T00:00:00.0000000Z"
startOfHour
返回时间戳中的小时的开始时间。
startOfHour('<timestamp>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 指定的时间戳,但从该小时的零分钟标记开始 |
Example
此示例用于查找该时间戳中小时的起始时间。
startOfHour('2018-03-15T13:30:30Z')
并返回以下结果:"2018-03-15T13:00:00.0000000Z"
startOfMonth
返回时间戳中的月份的开始时间。
startOfMonth('<timestamp>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 指定的时间戳,但从该月第一天的零小时标记开始 |
Example 1
此示例查找以下时间戳中月份的开始时间:
startOfMonth('2018-03-15T13:30:30Z')
并返回以下结果:"2018-03-01T00:00:00.0000000Z"
Example 2
此示例返回此时间戳的月份的开始时间(采用指定格式):
startOfMonth('2018-03-15T13:30:30Z', 'yyyy-MM-dd')
并返回以下结果:"2018-03-01"
startsWith
检查字符串是否以特定的子字符串开头。 当找到该子字符串时返回 true,找不到时返回 false。 此函数不区分大小写。
startsWith('<text>', '<searchText>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 要检查的字符串 |
< searchText> | Yes | String | 要查找的起始字符串 |
Return value | 类型 | Description |
---|---|---|
真 或 假 | 布尔 | 当找到起始子字符串时返回 true。 找不到时返回 false。 |
Example 1
此示例检查“hello world”字符串是否以“hello”子字符串开头:
startsWith('hello world', 'hello')
并返回以下结果:true
Example 2
此示例检查“hello world”字符串是否以“greetings”子字符串开头:
startsWith('hello world', 'greetings')
并返回以下结果:false
字符串
返回值的字符串版本。
string(<value>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | Any | 要转换的值。 如果此值为 NULL 或者计算结果为 NULL,则此值将转换为空字符串 ("" ) 值。 例如,如果将字符串变量分配给不存在的属性(可以使用 ? 运算符对其进行访问),则 NULL 值将转换为空字符串。 但是,比较 NULL 值与比较空字符串有所不同。 |
Return value | 类型 | Description |
---|---|---|
< string-value> | String | 指定的值的字符串版本。 If the value parameter is null or evaluates to null, this value is returned as an empty string ("" ) value. |
Example 1
此示例创建以下数字的字符串版本:
string(10)
并返回以下结果:"10"
Example 2
此示例为指定的 JSON 对象创建字符串并使用反斜杠字符 (\) 作为双引号 (") 的转义字符。
string( { "name": "Sophie Owen" } )
并返回以下结果:"{ \\"name\\": \\"Sophie Owen\\" }"
sub
返回第一个数字减去第二个数字得到的结果。
sub(<minuend>, <subtrahend>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< minuend> | Yes | 整数或浮点数 | The number from which to subtract the subtrahend |
< subtrahend> | Yes | 整数或浮点数 | The number to subtract from the minuend |
Return value | 类型 | Description |
---|---|---|
< result> | 整数或浮点数 | 第一个数字减去第二个数字得到的结果 |
Example
此示例从第一个数字中减去第二个数字:
sub(10.3, .3)
并返回以下结果:10
substring
返回字符串中的字符,从指定的位置或索引开始。 索引值从数字 0 开始。 See also slice().
substring('<text>', <startIndex>, <length>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 所需字符所在的字符串 |
< startIndex> | Yes | Integer | 一个等于或大于 0 的正数,需将其用作起始位置或索引值 |
< length> | No | Integer | 子字符串中所需的字符数(正数) |
Note
Make sure that the sum from adding the startIndex and length parameter values is less than the length of the string that you provide for the text parameter. Otherwise, you get an error, unlike similar functions in other languages where the result is the substring from the startIndex to the end of the string. The length parameter is optional and if not provided, the substring() function takes all the characters beginning from startIndex to the end of the string.
Return value | 类型 | Description |
---|---|---|
< substring-result> | String | 包含指定字符数的子字符串,从源字符串中的指定索引位置开始 |
Example
此示例基于指定的字符串从索引值 6 开始创建一个五字符的子字符串:
substring('hello world', 6, 5)
并返回以下结果:"world"
subtractFromTime
从时间戳中减去一定数目的时间单位。 See also getPastTime.
subtractFromTime('<timestamp>', <interval>, '<timeUnit>', '<format>'?)
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 包含时间戳的字符串 |
< interval> | Yes | Integer | 要减去的指定时间单位数 |
< timeUnit> | Yes | String | The unit of time to use with interval: "Second", "Minute", "Hour", "Day", "Week", "Month", "Year" |
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< updated-timestamp> | String | 时间戳减去指定的时间单位数 |
Example 1
此示例从以下时间戳中减去 1 天:
subtractFromTime('2018-01-02T00:00:00Z', 1, 'Day')
并返回以下结果:"2018-01-01T00:00:00.0000000Z"
Example 2
此示例从以下时间戳中减去 1 天:
subtractFromTime('2018-01-02T00:00:00Z', 1, 'Day', 'D')
并使用可选的“D”格式返回以下结果:"Monday, January, 1, 2018"
T
take
返回集合开头的项。
take('<collection>', <count>)
take([<collection>], <count>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection> | Yes | 字符串或数组 | 所需项所在的集合 |
< count> | Yes | Integer | 从开头算起所需的项数(一个正整数) |
Return value | 类型 | Description |
---|---|---|
< subset> or [<subset>] | 分别为字符串或数组 | 一个字符串或数组,其中包含从原始集合前端取出的指定数量的项。 |
Example
这些示例从以下集合的开头获取指定的项数:
take('abcde', 3)
take(createArray(0, 1, 2, 3, 4), 3)
并返回以下结果:
- 第一个示例:
"abc"
- 第二个示例:
[0, 1, 2]
ticks
返回自 0001 年 1 月 1 日午夜 12:00:00(或 C# 中的 DateTime.Ticks)到指定时间戳的间隔为 100 毫微秒的时钟周期数。 有关详细信息,请参阅此主题:DateTime.Ticks 属性(系统)。
ticks('<timestamp>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< timestamp> | Yes | String | 时间戳的字符串 |
Return value | 类型 | Description |
---|---|---|
< ticks-number> | Integer | 从指定的时间戳算起已过去的时钟周期数 |
toLower
返回小写格式的字符串。 如果字符串中的某个字符没有对应的小写版本,则该字符在返回的字符串中保持原样。
toLower('<text>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 要以小写格式返回的字符串 |
Return value | 类型 | Description |
---|---|---|
< lowercase-text> | String | 采用小写格式的原始字符串 |
Example
此示例将以下字符串转换为小写:
toLower('Hello World')
并返回以下结果:"hello world"
toUpper
返回大写格式的字符串。 如果字符串中的某个字符没有对应的大写版本,则该字符在返回的字符串中保持原样。
toUpper('<text>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 要以大写格式返回的字符串 |
Return value | 类型 | Description |
---|---|---|
< uppercase-text> | String | 采用大写格式的原始字符串 |
Example
此示例将以下字符串转换为大写:
toUpper('Hello World')
并返回以下结果:"HELLO WORLD"
触发
返回触发器在运行时的输出,或者来自其他 JSON 名称和值对的值,可以将其分配给表达式。
在触发器的输入中,此函数返回来自上次执行的输出。
在触发器的条件中,此函数返回来自当前执行的输出。
默认情况下,此函数引用整个触发器对象,但是也可以指定你需要其值的属性。 Also, this function has shorthand versions available, see triggerOutputs() and triggerBody().
trigger()
Return value | 类型 | Description |
---|---|---|
< trigger-output> | String | 触发器在运行时的输出 |
triggerBody
返回触发器在运行时的 body
输出。
trigger().outputs.body
的速记。 See trigger().
triggerBody()
Return value | 类型 | Description |
---|---|---|
< trigger-body-output> | String | 触发器的 body 输出 |
triggerFormDataMultiValues
Return an array with values that match a key name in a trigger's form-data or form-encoded output.
triggerFormDataMultiValues('<key>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< key> | Yes | String | 需要获取其值的键的名称 |
Return value | 类型 | Description |
---|---|---|
[<array-with-key-values>] | Array | 包含与指定键匹配的所有值的数组 |
Example
此示例基于 RSS 触发器的表单数据或表单编码输出中的“feedUrl”键值创建数组:
triggerFormDataMultiValues('feedUrl')
并将以下数组返回为示例结果:["https://feeds.a.dj.com/rss/RSSMarketsMain.xml"]
triggerFormDataValue
Return a string with a single value that matches a key name in a trigger's form-data or form-encoded output. 如果此函数找到多个匹配项,此函数将引发错误。
triggerFormDataValue('<key>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< key> | Yes | String | 需要获取其值的键的名称 |
Return value | 类型 | Description |
---|---|---|
< key-value> | String | 指定的键中的值 |
Example
此示例基于 RSS 触发器的表单数据或表单编码输出中的“feedUrl”键值创建字符串:
triggerFormDataValue('feedUrl')
并将以下字符串返回为示例结果:"https://feeds.a.dj.com/rss/RSSMarketsMain.xml"
triggerMultipartBody
返回具有多个部分的触发器输出中某个特定部分的正文。
triggerMultipartBody(<index>)
Parameter | Required | 类型 | Description |
---|---|---|---|
< index> | Yes | Integer | 所需部分的索引值 |
Return value | 类型 | Description |
---|---|---|
< body> | String | 触发器多部分输出中指定部分的正文 |
triggerOutputs
返回触发器在运行时的输出,或者来自其他 JSON 名称和值对的值。
trigger().outputs
的速记。 See trigger().
triggerOutputs()
Return value | 类型 | Description |
---|---|---|
< trigger-output> | String | 触发器在运行时的输出 |
剪裁
从字符串中删除前导和尾随空格,并返回更新后的字符串。
trim('<text>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< text> | Yes | String | 包含要删除的前导和尾随空格的字符串 |
Return value | 类型 | Description |
---|---|---|
< updatedText> | String | 原始字符串的更新后版本,其中不含前导或尾随空格 |
Example
此示例从字符串“ Hello World ”中删除前导空格和尾随空格:
trim(' Hello World ')
并返回以下结果:"Hello World"
U
并
Return a collection that has all the items from the specified collections. 某个项只要出现在传递给此函数的任一集合中便会出现在结果中。 如果一个或多个项具有相同的名称,则具有该名称的最后一项将出现在结果中。
union('<collection1>', '<collection2>', ...)
union([<collection1>], [<collection2>], ...)
Parameter | Required | 类型 | Description |
---|---|---|---|
< collection1>, <collection2>, ... | Yes | 数组或对象,但不能为两者 | The collections from where you want all the items |
Return value | 类型 | Description |
---|---|---|
< updatedCollection> | 分别为数组或对象 | 一个集合,其中包含指定集合中的所有项 - 无重复项 |
Example
This example gets all the items from these collections:
union(createArray(1, 2, 3), createArray(1, 2, 10, 101))
并返回以下结果:[1, 2, 3, 10, 101]
uriComponent
通过将 URL 不安全字符替换为转义字符来返回字符串的统一资源标识符 (URI) 编码版本。 Use this function rather than encodeUriComponent(). 虽然这两个函数的工作方式相同,但首选 uriComponent()
。
uriComponent('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换为 URI 编码格式的字符串 |
Return value | 类型 | Description |
---|---|---|
< encoded-uri> | String | 带有转义字符的 URI 编码字符串 |
Example
此示例创建以下字符串的 URI 编码版本:
uriComponent('https://contoso.com')
并返回以下结果:"https%3A%2F%2Fcontoso.com"
uriComponentToBinary
返回统一资源标识符 (URI) 组件的二进制版本。
uriComponentToBinary('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的 URI 编码字符串 |
Return value | 类型 | Description |
---|---|---|
< binary-for-encoded-uri> | String | URI 编码字符串的二进制版本。 二进制内容是 base64 编码的,并且由 $content 表示。 |
Example
此示例创建以下 URI 编码字符串的二进制版本:
uriComponentToBinary('https%3A%2F%2Fcontoso.com')
并返回以下结果:"aHR0cHM6Ly9jb250b3NvLmNvbQ=="
uriComponentToString
返回统一资源标识符 (URI) 编码字符串的字符串版本,有效地对 URI 编码字符串进行解码。
uriComponentToString('<value>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要解码的 URI 编码字符串 |
Return value | 类型 | Description |
---|---|---|
< decoded-uri> | String | URI 编码字符串的解码后的版本 |
Example
此示例创建以下 URI 编码字符串的解码后字符串版本:
uriComponentToString('https%3A%2F%2Fcontoso.com')
并返回以下结果:"https://contoso.com"
uriHost
返回统一资源标识符 (URI) 的 host
值。
uriHost('<uri>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< uri> | Yes | String | 需要获取其 host 值的 URI |
Return value | 类型 | Description |
---|---|---|
< host-value> | String | 指定的 URI 的 host 值 |
Example
此示例查找以下 URI 的 host
值:
uriHost('https://www.localhost.com:8080')
并返回以下结果:"www.localhost.com"
uriPath
返回统一资源标识符 (URI) 的 path
值。
uriPath('<uri>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< uri> | Yes | String | 需要获取其 path 值的 URI |
Return value | 类型 | Description |
---|---|---|
< path-value> | String | 指定的 URI 的 path 值。 如果 path 不含值,则返回“/”字符。 |
Example
此示例查找以下 URI 的 path
值:
uriPath('https://www.contoso.com/catalog/shownew.htm?date=today')
并返回以下结果:"/catalog/shownew.htm"
uriPathAndQuery
返回统一资源标识符 (URI) 的 path
和 query
值。
uriPathAndQuery('<uri>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< uri> | Yes | String | 需要获取其 path 和 query 值的 URI |
Return value | 类型 | Description |
---|---|---|
< path-query-value> | String | 指定的 URI 的 path 和 query 值。 如果 path 未指定值,则返回“/”字符。 |
Example
此示例查找以下 URI 的 path
和 query
值:
uriPathAndQuery('https://www.contoso.com/catalog/shownew.htm?date=today')
并返回以下结果:"/catalog/shownew.htm?date=today"
uriPort
返回统一资源标识符 (URI) 的 port
值。
uriPort('<uri>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< uri> | Yes | String | 需要获取其 port 值的 URI |
Return value | 类型 | Description |
---|---|---|
< port-value> | Integer | 指定的 URI 的 port 值。 如果 port 未指定值,则返回协议的默认端口。 |
Example
此示例查找以下 URI 的 port
值:
uriPort('https://www.localhost:8080')
并返回以下结果:8080
uriQuery
返回统一资源标识符 (URI) 的 query
值。
uriQuery('<uri>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< uri> | Yes | String | 需要获取其 query 值的 URI |
Return value | 类型 | Description |
---|---|---|
< query-value> | String | 指定的 URI 的 query 值 |
Example
此示例查找以下 URI 的 query
值:
uriQuery('https://www.contoso.com/catalog/shownew.htm?date=today')
并返回以下结果:"?date=today"
uriScheme
返回统一资源标识符 (URI) 的 scheme
值。
uriScheme('<uri>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< uri> | Yes | String | 需要获取其 scheme 值的 URI |
Return value | 类型 | Description |
---|---|---|
< scheme-value> | String | 指定的 URI 的 scheme 值 |
Example
此示例查找以下 URI 的 scheme
值:
uriScheme('https://www.contoso.com/catalog/shownew.htm?date=today')
并返回以下结果:"http"
utcNow
返回当前时间戳。
utcNow('<format>')
Optionally, you can specify a different format with the <format> parameter.
Parameter | Required | 类型 | Description |
---|---|---|---|
< format> | No | String | 一个数字格式字符串,它是单个格式说明符或自定义格式模式。 The default format for the timestamp is "o" (yyyy-MM-ddTHH:mm:ss.fffffffK), which complies with ISO 8601 and preserves time zone information. 如果格式不是有效值,则会生成错误。 |
Return value | 类型 | Description |
---|---|---|
< current-timestamp> | String | 当前日期和时间 |
Example 1
假设今天的当前时间为 2018 年 4 月 15 日下午 1:00:00。 此示例获取当前时间戳:
utcNow()
并返回以下结果:"2018-04-15T13:00:00.0000000Z"
Example 2
假设今天的当前时间为 2018 年 4 月 15 日下午 1:00:00。 此示例使用可选的“D”格式获取当前时间戳:
utcNow('D')
并返回以下结果:"Sunday, April 15, 2018"
V
variables
返回指定变量的值。
variables('<variableName>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< variableName> | Yes | String | 需要获取其值的变量的名称 |
Return value | 类型 | Description |
---|---|---|
< variable-value> | Any | 指定的变量的值 |
Example
假设“numItems”变量的当前值为 20。 此示例获取以下变量的整数值:
variables('numItems')
并返回以下结果:20
W
工作流
返回运行期间有关工作流本身的所有详细信息。
workflow().<property>
Parameter | Required | 类型 | Description |
---|---|---|---|
< property> | No | String | 需要获取其值的工作流属性的名称 默认情况下,工作流对象具有以下属性: name 、type 、id 、location 、run 和 tags 。 - run 属性值是包含以下属性的 JSON 对象:name 、type 和 id 。 - tags 属性是一个 JSON 对象,其中包含与 Azure 逻辑应用中的逻辑应用或者 Power Automate 中的流关联的标记,以及这些标记的值。 有关 Azure 资源中的标记的详细信息,请查看在 Azure 中标记资源、资源组和订阅以对其进行逻辑有序的组织。 Note: By default, a logic app has no tags, but a Power Automate flow has the flowDisplayName and environmentName tags. |
Example 1
此示例返回工作流的当前运行的名称:
workflow().run.name
Example 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>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< value> | Yes | String | 要转换的包含 JSON 对象的字符串 该 JSON 对象必须只有一个根属性,该属性不能是数组。 请使用反斜杠字符 (\) 作为双引号 (") 的转义字符。 |
Return value | 类型 | Description |
---|---|---|
< xml-version> | Object | 用编码的 XML 来表示指定的字符串或 JSON 对象 |
Example 1
此示例将字符串转换为 XML:
xml('<name>Sophia Owen</name>')
并返回以下结果 XML:
<name>Sophia Owen</name>
Example 2
此示例创建包含 JSON 对象的以下字符串的 XML 版本:
xml(json('{ "name": "Sophia Owen" }'))
并返回以下结果 XML:
<name>Sophia Owen</name>
Example 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 内容中选择节点或计算值。
Note
在消耗和标准逻辑应用中,所有函数表达式都使用 .NET XPath 库。 XPath 表达式与基础 .NET 库兼容,并且仅支持基础 .NET 库支持的表达式。
xpath('<xml>', '<xpath>')
Parameter | Required | 类型 | Description |
---|---|---|---|
< xml> | Yes | Any | 要搜索与 XPath 表达式值匹配的节点或值的 XML 字符串 |
< xpath> | Yes | Any | 用来查找匹配的 XML 节点或值的 XPath 表达式 |
Return value | 类型 | Description |
---|---|---|
< xml-node> | XML | 一个 XML 节点,当只有单个节点与指定的 XPath 表达式匹配时 |
< value> | Any | 来自一个 XML 节点的值,当只有单个值与指定的 XPath 表达式匹配时 |
[<xml-node1>, <xml-node2>, ...] -or- [<value1>, <value2>, ...] | Array | 一个数组,其中包含与指定的 XPath 表达式匹配的 XML 节点或值 |
Example 1
假设你有以下 'items'
XML 字符串:
<?xml version="1.0"?>
<produce>
<item>
<name>Gala</name>
<type>apple</type>
<count>20</count>
</item>
<item>
<name>Honeycrisp</name>
<type>apple</type>
<count>10</count>
</item>
</produce>
此示例传入 XPath 表达式 '/produce/item/name/text()'
,以查找与 <name></name>
XML 字符串中的 'items'
节点匹配的节点,并返回包含这些节点值的数组:
xpath(xml(parameters('items')), '/produce/item/name/text()')
The example also uses the parameters() function to get the XML string from 'items'
and convert the string to XML format by using the xml() function.
以下结果数组填充了与 <name></name>
匹配的节点的值:
[ Gala, Honeycrisp ]
Example 2
此示例是示例 1 的延续,它传入 XPath 表达式 '/produce/item/name[1]'
来查找作为 name
元素的子级的第一个 item
元素。
xpath(xml(parameters('items')), '/produce/item/name[1]')
结果如下:Gala
Example 3
此示例是示例 1 的延续,它传入 XPath 表达式 '/produce/item/name[last()]'
来查找作为 name
元素的子级的最后一个 item
元素。
xpath(xml(parameters('items')), '/produce/item/name[last()]')
结果如下:Honeycrisp
Example 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]'
来查找具有 name
特性的所有 expired
元素:
xpath(xml(parameters('items')), '//name[@expired]')
结果如下:[ Gala, Honeycrisp ]
Example 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 ]
Example 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]'
来查找具有 name
的所有 price > 35
元素:
xpath(xml(parameters('items')), '//name[@price>35]')
结果如下:Honeycrisp
Example 7
此示例假设 items
XML 字符串与示例 1 中的字符串相同:
<?xml version="1.0"?>
<produce>
<item>
<name>Gala</name>
<type>apple</type>
<count>20</count>
</item>
<item>
<name>Honeycrisp</name>
<type>apple</type>
<count>10</count>
</item>
</produce>
此示例查找与 <count></count>
节点匹配的节点并通过 sum()
函数添加这些节点值:
xpath(xml(parameters('items')), 'sum(/produce/item/count)')
结果如下:30
Example 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>
Important
如果在代码视图中操作,请使用反斜杠字符 (\) 来转义双引号 (")。 例如,将表达式序列化为 JSON 字符串时,需要使用转义符。 但是,如果在设计器或表达式编辑器中操作,则无需转义双引号,因为系统会自动将反斜杠字符添加到基础定义中,例如:
代码视图:
xpath(xml(body('Http')), '/*[name()=\"file\"]/*[name()=\"location\"]')
表达式编辑器:
xpath(xml(body('Http')), '/*[name()="file"]/*[name()="location"]')
Example 9
此示例是示例 8 的延续,它使用 XPath 表达式 'string(/*[name()="file"]/*[name()="location"])'
来查找 <location></location>
节点中的值:
xpath(xml(body('Http')), 'string(/*[name()="file"]/*[name()="location"])')
结果如下:Paris
Next steps
了解工作流定义语言