blackListEmailLastModified viene modificato lineare quando blacklistEmail non viene modificato
Descrizione description
Ambiente
Campaign Standard
Problema/Sintomi
Caso d'uso - Quando si importano profili da un file, una delle proprietà chiave che leggono dal file è blacklistEmail. Come illustrato di seguito, se si utilizza un aggiornamento condizionale nel campo di origine per evitare aggiornamenti non necessari nel campo di destinazione.
Tuttavia, è possibile notare che il campo blackListEmailLastModified viene modificato per tutti i profili esistenti importati. Il comportamento previsto è che blackListEmailLastModified dovrebbe essere modificato solo quando viene modificato blacklistEmail.
Ecco l'aggiornamento SQL generato:
UPDATE NmsRecipient
SET iGender=COALESCE( OutTbl.iFld1084817585, 0),
iBlackListEmail=COALESCE( CASE OutTbl.iEnaFld1086062770 WHEN 1 THEN OutTbl.iFld1086062770 ELSE NULL END, CASE WHEN OutTbl.iEnaFld1086062770=1 THEN 0 ELSE iBlackListEmail END),
iModifiedById=16107610,tsLastModified=$(curdate),
tsBlackListEmailLastModified=$(curdate),
tsBlackListAllLastModified=$(curdate)
DAL wkf11373941_23_1 OutTbl
DOVE NmsRecipient.iRecipientId=OutTbl.iPKey_1
E OutTbl.iRecProcState>
$(l)
E OutTbl.iRecProcState<
=$(l)
E OutTbl.iPKey_1<
>
0
Come mostrato dall'aggiornamento precedente, il campo blackListEmailLastModified (tsBlackListEmailLastModified) viene aggiornato indipendentemente dal fatto che blacklistEmail (iBlackListEmail) sia aggiornato o meno.
Risoluzione resolution
La soluzione consiste nell'aggiungere il blackListEmailLastModified
campo all'aggiornamento condizionale.
Vedi sotto:
E l'aggiornamento SQL generato mostra che verrà blackListEmailLastModified
modificato solo quando blacklistEmail
viene modificato.
UPDATE NmsRecipient
SET iGender=COALESCE( OutTbl.iFld1084817585, 0),
iBlackListEmail=COALESCE( CASE OutTbl.iEnaFld1086062770 WHEN 1 THEN OutTbl.iFld1086062770 ELSE NULL END, CASE WHEN OutTbl.iEnaFld1086062770=1 THEN 0 ELSE iBlackListEmail END),
tsBlackListEmailLastModified=COALESCE( CASE OutTbl.iEnaFld1169490137 WHEN 1 THEN OutTbl.tsFld1169490137 ELSE NULL END, CASE WHEN OutTbl.iEnaFld1169490137=1 THEN NULL ELSE tsBlackListEmailLastModified END),
iModifiedById=16107610,
tsLastModified=$(curdate),
tsBlackListAllLastModified=$(curdate)
FROM wkf11373941_25_1 OutTbl
WHERE NmsRecipient.iRecipientId=OutTbl.iPKey_1
AND OutTbl.iRecProcState>$(l)
AND OutTbl.iRecProcState<=$(l)
AND OutTbl.iPKey_1<>0