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