У меня есть общий DE (CampaignRegistivation).
Этот DE имеет список кампаний.Когда я выполняю приведенный ниже код для отправленных купонов, мне нужно обновить эту DE с этой информацией.
%%[
var @em, @couponRow, @couponCode , @DEName,@LocalBG ,@ClaimDate,@SubId,@CampName,@VoucherSent
var @UnusedCount,@UsedCount,@Threshold,@Threshold_flg,@Empty_Flg,@rowsUpdated
if _messagecontext == "PREVIEW" then
set @couponCode = "XX TEST XX"
else
set @em = AttributeValue("emailAddr")
set @Threshold_flg = false
set @Empty_Flg = false
set @DEName = "CAM-2v9g2q2" /* Replace CAM-2v9g2q2 with actual camp code everywhere */
set @LocalBG = "NLD" /* Insert the local BG 3 digit country code */
set @couponRow = ClaimRow("CAM-2v9g2q2","IsClaimed", "EmailAddress", @em, "JobID", JobID, "ListID", ListID, "BatchID", _JobSubscriberBatchID, "SubscriberID", SubscriberID)
if not empty(@couponRow) then
set @couponCode = Field(@couponRow, "CouponCode")
set @ClaimDate = Field(@couponRow, "ClaimedDate")
set @SubId = Field(@couponRow, "SubscriberID")
set @UnusedCount = Subtract(Lookup("ENT.CampaignRegisteration","VoucherUnused","Market", @LocalBG, "CampaignNo", @DEName) ,1)
set @UsedCount = Add(Lookup("ENT.CampaignRegisteration","VoucherUsed","Market", @LocalBG, "CampaignNo", @DEName) ,1)
set @Threshold = Lookup("ENT.CampaignRegisteration","Threshold","Market", @LocalBG, "CampaignNo", @DEName)
set @CampName = Lookup("ENT.CampaignRegisteration","CampaignName","Market", @LocalBG, "CampaignNo", @DEName)
set @Threshold_flg = iif(@UnusedCount <= @Threshold,'true','false')
set @Empty_Flg = iif(@UnusedCount <= 0,'true','false')
set @rowsUpdated = UpdateDE('ENT.CampaignRegisteration',2,'Market', @LocalBG, 'CampaignNo', @DEName,'VoucherUnused',@UnusedCount,'VoucherUsed',@UsedCount,'LatestSentDate',SystemDateToLocalDate(Now(1)),'Notification_Threshold',@Threshold_flg,'Notification_Empty',@Empty_Flg)
InsertDE("ENT.SentVouchers","CouponCode",@couponCode,"EmailAddress",@em,"Market",@LocalBG,"CampName",@CampName,"CampId",@DEName,"SubscriberID",@SubId,"ClaimedDate",@ClaimDate)
else
RaiseError("No coupons available", false)
endif
endif
]%%
<p>
Voucher Unsed = %%=v(@UnusedCount)=%%
<br/>
Voucher Used = %%=v(@UsedCount)=%%
<br/>
</p>
<p> Please use discount code %%=v(@couponCode)=%% or scan it <img alt="barcode" border="0" height="100" hspace="0" src="%%=BarCodeURL(@couponCode,'DataMatrix', 100, 100, 0)=%%" style="width: 100px; height: 100px" title="barcode" width="100"></p>
Линия
set @rowsUpdated = UpdateDE('ENT.CampaignRegisteration',2,'Market', @LocalBG, 'CampaignNo', @DEName,'VoucherUnused',@UnusedCount,'VoucherUsed',@UsedCount,'LatestSentDate',SystemDateToLocalDate(Now(1)),'Notification_Threshold',@Threshold_flg,'Notification_Empty',@Empty_Flg)
отвечает за обновление DE.
Когда я отправляю 4 подписчика, указанная выше строка запускается только 1 раз.
Перед запуском регистрация кампании имела:
Неиспользованные ваучеры = 344 Использованный ваучер = 0
После запуска, Неиспользованные ваучеры = 343 Использованные ваучеры = 1
Мои ожидания: Неиспользованные ваучеры = 340 Использованные ваучеры = 4
Можете ли вы сообщить мне, если мои ожиданияправильно или неправильно, и почему код ошибается