Массовое удаление API Mule с использованием коннектора базы данных и возвращение затронутых строк - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над потоком, который принимает полезные данные (несколько контактов) и удаляет их из базы данных Postgres. Я использую массовый режим для повышения эффективности, и в настоящее время он работает, как и ожидалось.

enter image description here

Когда в прошлом я работал с одиночными входами полезной нагрузки, Я могу получить ответ на счетчик строк 0/1 после удаления и вернуть соответствующую полезную нагрузку на основе этого.

Моя проблема в том, что при использовании группового режима он возвращает массив успехов / неудач для удаления: ie [1,1,1,0], указывающий, что три записи были удалены, но одна не удалась.

Как я мог подойти к этому вопросу, чтобы я мог вернуть в ответ дополнительные данные, например полезную нагрузку, которую не удалось вставить?

Пример ввода:

[{
    "contactId": "ABC123",
    "sourceOrgId": "12345"
},
{
    "contactId": "DEF567",
    "sourceOrgId": "67890"
}]

Пример требуемого вывода:

[{
    "contactId": "ABC123",
    "sourceOrgId": "12345",
    "status": 0
},
{
    "contactId": "DEF567",
    "sourceOrgId": "67890",
    "status": 1
}]

В желаемом выводе я буду знать, какие записи из исходные полезные данные были успешно удалены, а какие не удалось удалить.

Можно ли сделать что-то подобное при использовании группового режима?

1 Ответ

0 голосов
/ 03 мая 2020

Вы можете объединить две полезные нагрузки - одну для ввода и одну как результат

%

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

Подробнее смотрите здесь https://simpleflatservice.com/mule4/MergeArraysItems.html

...