Переменные, используемые в beestings в расширенных кавычках, должны уже иметь назначенное значение и не быть выражением. Это связано с тем, что beestings в расширенных кавычках оцениваются на стороне клиента, а не на стороне сервера. Я также, по ранее объясненной причине, не рекомендовал бы использовать 'sum + 1' в beesting, даже если в настоящее время он работает для конечных точек, которые понимают JavaScript.
Вот как я бы написал, что вы пытаетесь сделать:
ruleset a60x546 {
meta {
name "extended-quotes-beesting"
description <<
extended-quotes-beesting
>>
author "Mike Grace"
logging on
}
rule test_bee_stings {
select when pageview ".*"
pre {
ecount = ent:ecount + 1;
acount = app:acount + 1;
sum = ecount + acount;
sumplus = sum + 1;
content = <<
sum is #{sum}<br/>
sum + 1 is #{sumplus}<br/>
ecount is #{ecount}<br/>
acount is #{acount}
>>;
}
{
notify("Results", content) with sticky = true;
}
always {
ent:ecount += 1 from 1;
app:acount += 1 from 1;
}
}
}
действие приложения запускается несколько раз на example.com с помощью букмарклета:
* Я бы также не советовал использовать предыдущее правило postlude для изменения переменных приложения и сущности, которые вы затем используете в следующем правиле, ожидая, что оно будет увеличено. Хотя то, что вы сделали, работает семантически грязно и, вероятно, будет немного чище, как я продемонстрировал.
** следует принимать с крошкой соли, так как это мнение только одного сумасшедшего. :) *