blackListEmail が変更されていないときに、均等 blackListEmailLastModified が変更されています
説明 description
環境
Campaign Standard
問題/症状
使用例 - ファイルからプロファイルをインポートするときに、ファイルから読み取る主要なプロパティの 1 つは blacklistEmail です。 以下に示すように、ソースフィールドで条件付き更新を使用して、ターゲットフィールドで不要な更新を回避する場合。
ただし、blackListEmailLastModified フィールドは、インポートされるすべての既存のプロファイルに対して変更されます。 予想される動作は、blackListEmail が変更された場合にのみ blackListEmailLastModified が変更されることです。
生成された SQL 更新は次のとおりです。
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)
FROM wkf11373941_23_1 OutTbl
WHERE NmsRecipient.iRecipientId=OutTbl.iPKey_1
AND OutTbl.iRecProcState>
$(l)
AND OutTbl.iRecProcState<
=$(l)
およびOutTbl.iPKey_1<
>
0
上記の更新で示されているように、blacklistEmail (iBlackListEmail) が更新されているかどうかに関係なく、blackListEmailLastModified (tsBlackListEmailLastModified) フィールドが更新されます。
解決策 resolution
解決策は、フィールドを条件付き更新に追加するblackListEmailLastModified
ことです。
下記をご覧ください。
また、生成されたSQLの更新は、 が変更されたときにblacklistEmail
のみ変更されることを示していますblackListEmailLastModified
。
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