diff --git a/packages/bookshop/srv/admin-service.js b/packages/bookshop/srv/admin-service.js index 971e8ec2..5f448164 100644 --- a/packages/bookshop/srv/admin-service.js +++ b/packages/bookshop/srv/admin-service.js @@ -45,9 +45,15 @@ module.exports = cds.service.impl(async () => { if (replicas.length === 0) return //> not affected // fetch changed data from S/4 -> might be less than local due to deletes - const changed = (await SELECT.from(externalAddresses).where({ + const externals = await SELECT.from(externalAddresses).where({ contact - })).filter(({ ID }) => replicas.some(rep => ID === rep.ID)) + }) + + const changed = replicas.map(rep => { + const ext = externals.find(ext => ext.ID === rep.ID) + if (ext) return ext + return { ...rep, ...{ tombstone: true } } + }) // update local replicas with changes from S/4 const local = db.transaction(msg) //> using that variant to benefit from bulk runs