[使用数据库连接器进行Mule API批量删除并返回受影响的行

问题描述 投票:0回答:1

我正在处理一个需要负载(多个联系人)并将其从Postgres数据库中删除的流。我正在使用批量模式以提高效率,目前正在按预期运行。

enter image description here

过去,当我处理单个有效负载输入时,可以在删除后获得行计数响应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
}]

在所需的输出中,我会知道原始有效负载中的哪些记录已成功删除,哪些记录未能删除。

使用批量模式时可以执行类似的操作吗?

mule mule-component anypoint-studio mulesoft
1个回答
0
投票

您可以加入两个有效负载-一个用于输入,一个作为结果

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
  }
]

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.