我有来自两个不同API调用的两个数据集。这两种方法都给出了一个事件列表和一个数字值。我想将这两个集合合并到一个表中,在PowerAutomate中,但是我很难弄清楚如何对每个函数进行嵌套应用,但没有成功。
我的数据示例:
数组1:\x/#.=‘Groups 1’>事件名称\x=\x{e76f}\x{e76f}\{e76f}\x{e76f}\{e76f}\x{e76f
数组2:事件名/事件名--签入
(这些数据采用JSON格式、数组或字符串:[{ "Event Name": "General Admission", "Purchased Tickets": "510"},{"Event Name": "Members", "Purchased Tickets": "210"}....]和[{"Event Name": "General Admission", "Checked In": "210"},.....])
我想要做的是把它们合并成以下几个部分: merge Name票证,签入了,into
(理想情况下,最后一个单元格是0,但这是我自己能搞清楚的)。重要的是要注意,这两个表可能没有相同的行,如果是的话,我现在只想把它当作null来处理。对于我得到的键值,我没有太多的控制权,这些都依赖于ran报告。但是,如果它们匹配,则键将是相同的。
union只在第一个数组之后单击第二个数组,然后得到一个包含两个键值集的表,第2列和第3列分别为空白。我认为inner-join可以帮助我做到这一点,但它似乎没有给我一个选择两个数组的选项。
我无法访问任何PowerAutomate高级功能
发布于 2022-05-23 01:22:04
像这样的流会为你做的。我不得不说,在LogicApps/PowerAutomate引擎上,这种类型的操作并不总是理想的。不管怎样..。

描述每一步..。
基数据
这只是您的JSON,它是您想要通过新的数据集来增强的基本数据。
查找数据
这是另一个数据集,注意到最后一条记录没有CheckedIn属性。很明显,这是流程的一个重要部分。
初始化组合阵列
这在这个阶段是空的,它将将数据合并到一个连接状态。
处理每个基本数据项
这很明显,我们只是在遍历Base Data数组。
筛选当前基本数据项上的查找数组
想象一下这个动作会容易一些。

给你看那个步骤背后的代码..。
"inputs": {
"from": "@body('Lookup_Data')",
"where": "@equals(item()['EventName'], items('Process_Each_Base_Data_Item')?['EventName'])"
},附加到组合阵列
有几种方法可以做到这一点,但为了更好地说明这一点,我们只需创建一个新对象并将其添加到Combined Array变量中。
这是步骤中包含的代码..。
"inputs": {
"name": "Combined Array",
"value": {
"EventName": "@{items('Process_Each_Base_Data_Item')?['EventName']}",
"Tickets": "@items('Process_Each_Base_Data_Item')?['Tickets']",
"CheckedIn": "@if(greater(length(body('Filter_Lookup_Array_on_Current_Base_Data_Item')), 0), body('Filter_Lookup_Array_on_Current_Base_Data_Item')[0]['CheckedIn'], 0)"
}
}重要的表达式是CheckedIn属性。
它检查筛选结果是否至少有一个值,如果有,它将获得第一个(使用索引0,但您可以使用first函数)项(我假设应该只有一个),然后从它获得CheckedIn属性。
最终的结果是一个类似于.
[
{
"EventName": "General Admission",
"Tickets": 510,
"CheckedIn": 210
},
{
"EventName": "Members",
"Tickets": 210,
"CheckedIn": 110
},
{
"EventName": "Special Programs",
"Tickets": 100,
"CheckedIn": 100
},
{
"EventName": "Groups",
"Tickets": 20,
"CheckedIn": 0
}
]https://stackoverflow.com/questions/72340541
复制相似问题