开发者

more than one defaction in the body?

开发者 https://www.devze.com 2023-02-22 10:55 出处:网络
All, can I run more than one defaction in the开发者_如何学JAVA body of the rule? or can I only run one?You can define as many actions in the pre block of a rule as you want. You can have as many actio

All, can I run more than one defaction in the开发者_如何学JAVA body of the rule? or can I only run one?


You can define as many actions in the pre block of a rule as you want. You can have as many actions in the action block of a rule as you want (just enclose the action block in curly braces). For example,

rule first_rule {
  select when pageview ".*" setting ()
  pre {
    notify_one = defaction() { notify("notify_one", "First defaction"); };
    notify_two = defaction() { notify("notify_two", "Second defaction"); };
  }
  {
    notify_one();
    notify_two();
  }
}

So I think the answer to your question is yes.


Your question is a little confusing, but I'll give it a run.

Running actions defined with defaction is just like running system defined actions.

If you want to run more then one action in a rule, you need to wrap them in {} like so:

rule foo {
  select when pageview ".*"
  {
    notify("cheese", "brie");
    notify("apple", "golden delicious");
  }
}


I seem to recall that a defaction has an implicit, optional 'pre' section, followed by the action(s). To include multiple actions you do need {} as Sam says.

act1 = defaction() {
  {
    notify("Defaction Demo", "<ul id='demo_id'></ul>");
    append("#demo-id", "<li>cheese: brie</li>");
    append("#demo-id", "<li>apple: golden delicious</li>");
  }
};

That works out to defaction() { { ... } }; but the extra curly braces are required if you want more than one action in a defaction.

See also http://docs.kynetx.com/docs/Defaction

0

精彩评论

暂无评论...
验证码 换一张
取 消