From 7db2c6e781ef278f72efd446692b89049ef93e85 Mon Sep 17 00:00:00 2001 From: D065023 Date: Mon, 30 Dec 2019 14:06:41 +0100 Subject: [PATCH] tombstone logic --- packages/bookshop/srv/admin-service.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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