我在Azure逻辑应用程序中有一个工作流,该工作流执行API调用以从Trello卡获取自定义字段值。然后,我进行了“针对每个”步骤,以获取每个自定义字段的定义(字段名称)。这是通过调用Trello API的另一种方法实现的。我想根据从这些API调用获得的值创建一个JSON对象。JSON的格式非常简单:
{
"name1": "value1",
"name2": "value2",
...
}
编辑:
我有一个初始对象与此模式:
{
"Cel": "",
"City": "",
"CreatedOn": "",
"Lead": "",
"Mail": "",
"Brand": "",
"Name": "",
"Salesperson": ""
}
这是一个具有key:value对的简单json对象。
我想在每个循环的a内设置对象属性。我从Trello API获得了字段的值(返回一个数组):
[{"id":"5fbdb5da1626b7499d690ebf","value":{"date":"2020-11-09T15:00:00.000Z"},"idCustomField":"5fbdb5cee93a775e4a9405e5","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946e31680220774095ed9","idValue":"5fa9464bd260145aacba03ed","idCustomField":"5fa9462327f2c331a184a483","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946e0dafc5b7ead25411a","value":{"text":"Lilia Noemi Cabral"},"idCustomField":"5fa9454303ee497b7b99772a","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946bf8697d18d58b73ac1","value":{"text":"Tania"},"idCustomField":"5fa94518f410418c57662fd0","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946c3a2ee2771d26ba30e","value":{"text":"tania@gmail.com"},"idCustomField":"5fa945088fc819708d157c5b","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946bc38b469081857ea9a","value":{"text":"Asuncion"},"idCustomField":"5fa944fe9d7af62b3806c8b6","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946b82bbaf938c4c3c341","value":{"number":"098234567"},"idCustomField":"5fa944e59527342399f460e2","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946b32aad4d323ba0648e","value":{"text":"Tania Cardozo Olivera"},"idCustomField":"5fa944d779089c6ca5cf534b","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"}]
我为每一步都放置了一个,以迭代和解析字段值。我通过另一个对Trello API的调用获得了字段名称,该调用返回了以下响应:
{"id":"5fa94518f410418c57662fd0","idModel":"5f988b8cb225cc7ac34deae9","modelType":"board","fieldGroup":"53eb88d2e4cde013cb9f03e7500ad1a00a4c82f153f9165f7b1ec554f4cc2d74","display":{"cardFront":true},"name":"Name","pos":81920,"type":"text","limits":{"customFieldOptions":{"perField":{"status":"ok","disableAt":50,"warnAt":45}}},"isSuggestedField":false}
因此,我匹配了idCustomField以获取字段名称和字段值。现在,我想在初始声明的对象中设置属性(每个属性名称等于Trello中的自定义字段名称)
我试过使用撰写步骤:
setProperty(variables('Object'),body('Parse_JSON')?['name'],body('Parse_JSON2')?['text'])
然后将变量对象设置为compose输出,但效果不佳。结果对象未设置所有属性。我的想法是为每个循环设置内的所有对象属性。
我可能做错了什么?
有没有一种方法可以在Azure Logic Apps中实现这一目标?
提前致谢!
你应该用
setProperty(variables('object'), body('Parse_JSON')?['name'], body('Parse_JSON_2')?['value']?['text'])
代替
setProperty(variables('Object'),body('Parse_JSON')?['name'],body('Parse_JSON2')?['text'])
===============================更新================= ==================
你的问题可能是由并行运行的“对于每个”循环引起的,因此请尝试以下步骤(注意:如果进行此更改,当你要更改回去时,有时,当你单击“保存”时会显示错误消息逻辑应用”。因此,请创建另一个逻辑应用进行测试或制作逻辑应用的备份副本):
单击“对于每个”循环的“设置”。
然后启用Concurrency Control
并设置Degree of Parallelism
为1
。
我正在解析json的“值”子字符串,以获取文本,日期和数字值。我已经尝试过您的建议,但不解析值子字符串,但仍然无法正常工作
我使用字符串变量来捕获customFieldName和customFieldValue,我尝试使用setProperty(variables('Object'),variables('customFieldName'),variables('customFieldValue')),但也无法正常工作
嗨@HugoMorillo错误消息是什么?您能否提供该操作的屏幕截图
setProperty(variables('Object'),variables('customFieldName'),variables('customFieldValue'))
?我没有收到错误消息。只是没有按我预期的那样工作。工作流很大,但是我做了一些截图:CustomFieldName变量:imgur.com/toNIiJW CustomFieldValue变量:imgur.com/wzI8ZEK setProperty(variables('Object'),variables('customFieldName'),variables('customFieldValue') ):imgur.com/Lo9Yn8u 我为每个循环设置了两个变量的值,循环的最后一步是Compose步骤内的setProperty调用
谢谢@HuryShen!那就是问题所在。现在正在按我的预期工作。非常感谢。我整夜都在为这个错误而苦苦挣扎