コミュニティアチーブメントバーを展開する。

解決済み

Disable the creation of a Campaign Delivery if the Campaign has already finished

Avatar

Level 7

How should I do it?

 

Thank you in advance !!! 

 

@_Manoj_Kumar_ @ParthaSarathy @Parvesh_Parmar @DavidKangni 

1 受け入れられたソリューション

Avatar

正解者
Community Advisor

Hi @CampaignerForLife ,

Create a Typology rule under /Administration/Campaign Management/Typology management/Typology rules/

And select the type as 'Control' and configure as below

ParthaSarathy_0-1690367084894.png

In code tab, add the below script:

var internalName = delivery.internalName;
var query = xtk.queryDef.create(<queryDef operation="select" schema="nms:delivery">
                                          <select>
                                              <node expr="@internalName"/>
                                              <node expr="@id"/>
                                              <node expr="@created"/>
                                              <node expr="[operation/@id]"/>
                                              <node expr="[operation/@end]"/>
                                           </select>
                                          <where>
                                            <condition expr={"@internalName = '"+internalName+"'"}/>
                                          </where>
                                        </queryDef>);
var record = query.ExecuteQuery();

for each (var variable in record) {
var campaignEndDate = variable.operation.@end;
var deliveryCreationDate = formatDate(variable.@created, "%4Y-%2M-%2D");
if( deliveryCreationDate > campaignEndDate)
{
logWarning("Delivery Creation Date crossed campaign End Date");
return false; 
}
else{
return true;
}
}

And create a new 'Typology' and add the above created typology rule in it.

 

When creating a campaign delivery, use this typology in delivery property.

Now if the Delivery creation date is greater than campaign end date, then the delivery gets failed with the Audit log as 'Delivery Creation Date crossed campaign End Date'

 

ParthaSarathy_1-1690367465382.png

 

 

元の投稿で解決策を見る

2 返信

Avatar

正解者
Community Advisor

Hi @CampaignerForLife ,

Create a Typology rule under /Administration/Campaign Management/Typology management/Typology rules/

And select the type as 'Control' and configure as below

ParthaSarathy_0-1690367084894.png

In code tab, add the below script:

var internalName = delivery.internalName;
var query = xtk.queryDef.create(<queryDef operation="select" schema="nms:delivery">
                                          <select>
                                              <node expr="@internalName"/>
                                              <node expr="@id"/>
                                              <node expr="@created"/>
                                              <node expr="[operation/@id]"/>
                                              <node expr="[operation/@end]"/>
                                           </select>
                                          <where>
                                            <condition expr={"@internalName = '"+internalName+"'"}/>
                                          </where>
                                        </queryDef>);
var record = query.ExecuteQuery();

for each (var variable in record) {
var campaignEndDate = variable.operation.@end;
var deliveryCreationDate = formatDate(variable.@created, "%4Y-%2M-%2D");
if( deliveryCreationDate > campaignEndDate)
{
logWarning("Delivery Creation Date crossed campaign End Date");
return false; 
}
else{
return true;
}
}

And create a new 'Typology' and add the above created typology rule in it.

 

When creating a campaign delivery, use this typology in delivery property.

Now if the Delivery creation date is greater than campaign end date, then the delivery gets failed with the Audit log as 'Delivery Creation Date crossed campaign End Date'

 

ParthaSarathy_1-1690367465382.png

 

 

Avatar

Level 7

This perfectly worked, thank you very much!! you're the best @ParthaSarathy