azure-data-factory - 使用 JSON 为数据工厂中的每个循环提供数据
问题描述
数据工厂新手,我正在努力解决以下问题:
我有一个调用 API 并返回以下 JSON 的网络活动:
{
"ResponseCode": 200,
"ResponseText": "OK",
"Data": {
"ramco_purchaseordershipment": "ramco_purchaseordershipment",
"ramco_ramco_paymentschedule_cobalt_duesoption": "ramco_ramco_paymentschedule_cobalt_duesoption",
"cobalt_accountingintegrationbatch": "cobalt_accountingintegrationbatch",
"opportunitycompetitors": "OpportunityCompetitors"}
}
代表 Dynamics 365 DB 中的实体名称。
我将 For-Each 活动设置项添加到:
@array(activity('Web1').output.Data)
最终给了我一个不是我想要的单项数组。
我想要完成的是迭代 ramco_purchaseordershipment、ramco_ramco_paymentschedule_cobalt_duesoption 等,然后使用每个值作为参数触发另一个管道。
我知道它很愚蠢,但我整个下午都盯着它看,没有运气。
谢谢!
迈克尔
解决方案
我创建了一个简单的测试来实现这一点。在这里,我使用查找活动来返回与您相同的 json 文件。
我的想法是:
- 将此 json 对象转换为字符串。
- 添加
},{
到字符串。 - 用逗号将其拆分为字符串数组。
- 最后遍历这个数组。
- 将字符串转换为 json 对象,并传递给下一个管道的参数。
使用表达式
@split(replace(string(activity('Lookup1').output.value[0].Data),',','},{'),',')
获取字符串数组。这里需要替换activity('Lookup1').output.value[0].Data
为activity('Web1').output.Data
.
Execute Pipeline1的输入如下:
"parameters": {
"Para1": {
"ramco_purchaseordershipment": "ramco_purchaseordershipment"
}
"parameters": {
"Para1": {
"ramco_ramco_paymentschedule_cobalt_duesoption":
"ramco_ramco_paymentschedule_cobalt_duesoption"
}
"parameters": {
"Para1": {
"cobalt_accountingintegrationbatch": "cobalt_accountingintegrationbatch"
}
"parameters": {
"Para1": {
"opportunitycompetitors": "OpportunityCompetitors"
}
}
推荐阅读
- python - 生成指定范围内的 N 个唯一随机整数
- javascript - 在 HTA 中单击时使按钮交替颜色?
- http - 我应该使用什么 HTTP 状态代码来处理状态更新?
- vba - 打开多个工作簿和 SUM COUNTIFS
- matlab - 个别类准确率计算混乱
- python - Python Append 仅在数据框中留下最后一个条目
- javascript - 来自 iframe 的所有下载都转到服务器中的文件夹
- django - 管理员或视图中的自引用对称多对多 Django 模型
- c++ - 无法在递归“组合和”方法中处理重复项
- javascript - 在 Vue 中构建 axios 回调