getRules

Syntax

getRules([engineName])

Arguments

engineName (optional) is a STRING vector indicating the rule engine name(s). If unspecified, the function returns the rules of all rule engines on the current node.

Details

Get the rules of the specified rule engine, including the rule set, checking policy, and callback function.

Return value: A dictionary whose key is the engine name and value is another dictionary containing:

  • ruleSets: A dictionaryindicating the rule sets of the engine, where:
    • key: Rule name. Return a default rule set with the key “Default“.
    • value: Specific rules.
  • policy: The checking policy of the engine.
  • callback: The callback function of the engine. If unspecified, it is an empty string.

Examples

// Specify the rule set
x = [1, 2, NULL]
y = [ [ < value > 1 > ], [ < price < 2 >, < price > 6 > ], [ < value*price > 10 > ] ]
ruleSets = dict(x, y)

// Create rule engines
names = `sym`value`price`quantity
types = [INT, DOUBLE, DOUBLE, DOUBLE]
dummy = table(1:0, names, types)
outputNames = `sym`value`price`rule
outputTypes = [INT, DOUBLE, DOUBLE, BOOL[]]
outputTable = table(10:0, outputNames, outputTypes)
test = createRuleEngine(name="ruleEngineTest", ruleSets=ruleSets, dummyTable=dummy, outputColumns=["sym","value","price"], outputTable=outputTable, policy="all", ruleSetColumn="sym")
test2 = createRuleEngine(name="ruleEngineTest2", ruleSets=ruleSets, dummyTable=dummy, outputColumns=["sym","value","price"], outputTable=outputTable, policy="all", ruleSetColumn="sym")

// Query the rules of the specified engine
getRules(["ruleEngineTest"])
/*
ruleEngineTest->
    ruleSets->
        Default->(value * price > 10)
        1->(value > 1)
        2->(price < 2, price > 6)

    policy->all
    callback->
*/

// Update the rules of the specified engine
updateRule("ruleEngineTest", 1, [<value > 2>])

// Query the rules again after update
getRules()
/*
ruleEngineTest->
    ruleSets->
        Default->(value * price > 10)
        1->(value > 2)
        2->(price < 2, price > 6)

    policy->all
    callback->
*/

Related functions: createRuleEngine, updateRule, and deleteRule.