提问人:Tim 提问时间:8/11/2022 更新时间:8/11/2022 访问量:797
使用 LogicApp 对索引上的数组进行切片
Using LogicApp to slice an array on indices
问:
我正在尝试在 LogicApp 中实现一些我认为应该很容易实现的东西,但我没有管理它。
假设我有一个上一步的变量:“https://sharepoint/sites/test-site/Documents/somereport.pdf”。从这个字符串中,我需要简单地创建两个变量,第一个包含 ,第二个包含 .两者都将在后续步骤中使用。'https://sharepoint/sites/test-site'
'Documents/somereport.pdf'
为了尝试实现这一点,我尝试使用以下表达式:
join(slice(split(triggerBody()?['Title'], '/'), 0, 5), '/')
join(slice(split(triggerBody()?['Title'], '/'), 5), '/')
但是,我收到一个错误:.'The template language function 'slice' expects its first parameter to be of type string. The provided value is of type 'Array'.
这是因为拆分会产生一个数组。我现在已经知道“slice”是用于字符串的,但是数组类型是否有任何类似的功能?或者有没有其他(简单的)方法可以实现这一目标?这似乎应该是基本功能,但我无法弄清楚。
答:
1赞
SwethaKandikonda
8/11/2022
#1
这可以通过几种方式实现。如果您尝试使用将结果作为数组类型的功能,那么您可以使用类似于以下表达式的东西。
1. join(take(split(outputs('Compose')?['Title'][0], '/'), 5),'/')
2. join(take(skip(split(outputs('Compose')?['Title'][0], '/'),5), length(split(outputs('Compose')?['Title'][0], '/'))),'/')
但是,作为替代方案,如果您尝试使用将结果作为字符串类型的功能,下面是满足您要求的另一个表达式。
1. slice(outputs('Compose')?['Title'][0],0,nthIndexOf(outputs('Compose')?['Title'][0],'/',5))
2. slice(outputs('Compose')?['Title'][0],add(nthIndexOf(outputs('Compose')?['Title'][0],'/',5),1),length(outputs('Compose')?['Title'][0]))
下面是我的逻辑应用
结果:
下面是逻辑应用的代码视图
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"Compose": {
"inputs": {
"Title": [
"https://sharepoint/sites/test-site/Documents/somereport.pdf"
],
"age": 30,
"name": "John"
},
"runAfter": {},
"type": "Compose"
},
"array_type_-_first_part": {
"inputs": "@join(take(split(outputs('Compose')?['Title'][0], '/'), 5),'/')",
"runAfter": {
"string_type__second_part": [
"Succeeded"
]
},
"type": "Compose"
},
"array_type_-_second_part": {
"inputs": "@join(take(skip(split(outputs('Compose')?['Title'][0], '/'),5), length(split(outputs('Compose')?['Title'][0], '/'))),'/')",
"runAfter": {
"array_type_-_first_part": [
"Succeeded"
]
},
"type": "Compose"
},
"string_type_-_first_part": {
"inputs": "@slice(outputs('Compose')?['Title'][0],0,nthIndexOf(outputs('Compose')?['Title'][0],'/',5))",
"runAfter": {
"Compose": [
"Succeeded"
]
},
"type": "Compose"
},
"string_type__second_part": {
"inputs": "@slice(outputs('Compose')?['Title'][0],add(nthIndexOf(outputs('Compose')?['Title'][0],'/',5),1),length(outputs('Compose')?['Title'][0]))",
"runAfter": {
"string_type_-_first_part": [
"Succeeded"
]
},
"type": "Compose"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}
评论
0赞
Tim
8/11/2022
是的,就像一个魅力。这真的帮助了我!我使用 take(),不知道该功能
评论