Облако Salesforce Marketing Amscript UpdateDE работает неправильно - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть общий 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

Можете ли вы сообщить мне, если мои ожиданияправильно или неправильно, и почему код ошибается

...