blacklistEmailLastModified está sendo modificado

Descrição description

Ambiente

Campaign Standard

Problema/Sintomas

Caso de uso - Ao importar perfis de um arquivo, uma das principais propriedades que eles leram no arquivo é blacklistEmail. Conforme mostrado abaixo, se estiver usando uma atualização condicional no campo de origem para evitar atualizações desnecessárias no campo de destino.

No entanto, você pode notar que o campo blackListEmailLastModified é modificado para todos os perfis existentes que são importados. O comportamento esperado é que o blackListEmailLastModified só deve ser modificado quando blacklistEmail for modificado.

Aqui está a atualização SQL gerada:

ATUALIZAR 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)

DE wkf11373941_23_1 OutTbl

WHERE NmsRecipient.iRecipientId=OutTbl.iPKey_1

E OutTbl.iRecProcState> $(l)

E OutTbl.iRecProcState< =$(l)

E OutTbl.iPKey_1< > 0

Como mostrado pela atualização acima, o campo blackListEmailLastModified (tsBlackListEmailLastModified) foi atualizado não importa se blacklistEmail (iBlackListEmail) está atualizado ou não.

Resolução resolution

A solução é adicionar o blackListEmailLastModified campo à atualização condicional.

Consulte abaixo:

E a atualização de SQL gerada mostra que a blackListEmailLastModified única será modificada quando blacklistEmail for modificada.

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