Prevent rule from being triggered if parameter exists | Community
Skip to main content
floriane3493069
Level 2
Jul 10, 2018 8:43 AM UTC
Solved

Prevent rule from being triggered if parameter exists

Hi there,

I just set up a page load rule. The only condition for this rule is that it is not triggered if a certain parameter exists. Unfortunately AEM only offers me the possibility to trigger the rule if a parameter is pressent. Can you tell me if it is also possible to prevent a rule from being triggered if a parameter exists?

Thank you

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Stewart_Schilling
Stewart_SchillingAccepted solution
New Participant
Jul 10, 2018 11:58 AM UTC

If you can test for the parameter using javascript then you can accomplish this using a custom condition on the rule.

If a custom condition does not return true, then the condition is not met and the rule will not fire.

As an example, you could use this javascript in a DTM custom condition:

var paramExists = true; //replace this with code to determine existence of the param

if (paramExists) {

  return false;

} else {

  return true;

}

6 replies

floriane3493069
Level 2
Jul 23, 2018 2:13 PM UTC

Hi Stewart, hi Jantzen,

thank you for your feedback and your discussion. Sorry for my late response, it took me a while to put everything in place. Actually the solution Stewart suggested worked perfectly well. I used the above mentioned code to prevent the rule from being fired if a certain parameter existed.

Thanks again guys. This helped a lot.

Translate
Stewart_Schilling
New Participant
Jul 11, 2018 6:30 PM UTC

Jantzen,

  I think we're saying the same thing.

Florian,

  Let us know if you are all set.  I guess, If I got it wrong, swap the return statements in the custom condition.

-Stew

Translate
jantzen_b
Employee
Jul 11, 2018 4:15 PM UTC

Stewart,

Wouldn't it be opposite? Florian is wanting to not trigger the rule if parameter2 exists. I believe your code reads

If parameter2 does not equal null (IE if parameters contains a value), return false and thus do not fire the rule

Wouldn't you want to remove the ! from your code so that it read

if parameter 2 equals null, return false and thus do not fire the rule

Thanks,
Jantzen

Translate
Stewart_Schilling
New Participant
Jul 10, 2018 4:56 PM UTC

I think I'd do it this way -

Create a DTM data element for parameter2 call it qsParam2.

Then the code becomes :

if (_satellite.getVar('qsParam2') != "") {

return false;

} else {

return true;

}

Translate
floriane3493069
Level 2
Jul 10, 2018 4:07 PM UTC

Great, thanks stewarts16448458​

Unfortunately I am afraid I am not exactly sure what i have to insert for "//replace this with code to determine existence of the param". Could you give me an example. Let's say my url is xyz.com?parameter1=a&parameter2=b and I want do not want the rule to be triggered if parameter2 exists.

Thank you very much.

Florian

Translate
Stewart_Schilling
Stewart_SchillingAccepted solution
New Participant
Jul 10, 2018 11:58 AM UTC

If you can test for the parameter using javascript then you can accomplish this using a custom condition on the rule.

If a custom condition does not return true, then the condition is not met and the rule will not fire.

As an example, you could use this javascript in a DTM custom condition:

var paramExists = true; //replace this with code to determine existence of the param

if (paramExists) {

  return false;

} else {

  return true;

}

Translate