blacklistEmailLastModified se está modificando

Descripción description

Entorno

Campaign Standard

Problema/Síntomas

Caso de uso: al importar perfiles de un archivo, una de las propiedades clave que leen del archivo es blacklistEmail. Como se muestra a continuación, si utiliza una actualización condicional en el campo de origen para evitar actualizaciones innecesarias en el campo de destino.

Sin embargo, puede observar que el campo blackListEmailLastModified se modifica para todos los perfiles existentes que se importan. El comportamiento esperado es que blackListEmailLastModified solo se debe modificar cuando se modifica blacklistEmail.

Esta es la actualización de SQL generada:

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)

DESDE wkf11373941_23_1 OutTbl

DONDE NmsRecipient.iRecipientId=OutTbl.iPKey_1

Y OutTbl.iRecProcState> $(l)

AND OutTbl.iRecProcState< =$(l)

Y OutTbl.iPKey_1< > 0

Como se muestra en la actualización anterior, el campo blackListEmailLastModified (tsBlackListEmailLastModified) se actualiza sin importar si blacklistEmail (iBlackListEmail) está actualizado o no.

Resolución resolution

La solución consiste en añadir el blackListEmailLastModified campo a la actualización condicional.

Consulte lo siguiente:

Y la actualización de SQL generada muestra que el blackListEmailLastModified solo se modificará cuando blacklistEmail se modifique.

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