我正在处理一个需要负载(多个联系人)并将其从Postgres数据库中删除的流。我正在使用批量模式以提高效率,目前正在按预期运行。
过去,当我处理单个有效负载输入时,可以在删除后获得行计数响应0/1
,并根据此返回适当的有效负载。
我的问题是在使用批量模式时,它会返回成功/失败数组以进行删除:即[1,1,1,0]
指示删除了三条记录,但其中一条失败。
我该如何处理,以便在响应中返回其他数据,例如无法插入的有效载荷?
示例输入:
[{
"contactId": "ABC123",
"sourceOrgId": "12345"
},
{
"contactId": "DEF567",
"sourceOrgId": "67890"
}]
示例所需输出:
[{
"contactId": "ABC123",
"sourceOrgId": "12345",
"status": 0
},
{
"contactId": "DEF567",
"sourceOrgId": "67890",
"status": 1
}]
在所需的输出中,我会知道原始有效负载中的哪些记录已成功删除,哪些记录未能删除。
使用批量模式时可以执行类似的操作吗?
您可以加入两个有效负载-一个用于输入,一个作为结果
%
dw 2.0
output text/json
var payload1=[{
"contactId": "ABC123",
"sourceOrgId": "12345"
},
{
"contactId": "DEF567",
"sourceOrgId": "67890"
}]
var payload2=[1,9]
---
payload1 map ( item, index ) -> (
item ++ {status:payload2[index]}
)
输出是
[
{
"contactId": "ABC123",
"sourceOrgId": "12345",
"status": 1
},
{
"contactId": "DEF567",
"sourceOrgId": "67890",
"status": 9
}
]