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
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f