Trying to invoke an expression rule with input parameter from my java plugin.

Trying to invoke an expression rule with input parameter from my java plugin.

Tried using evaluateExpression(java.lang.String expression, NamedTypedValue[] variableValues) method in ProcessDesignService Interface.But not able to construct variableValues of type NamedTypedValue[].

Do we have any sample code to pass a parameter to an expression rule from java ?

Thanks in Advance.

OriginalPostID-197077

OriginalPostID-197077

  Discussion posts and replies are publicly visible

Parents
  • @Abhi,
    Above code is not working for me.
    my expression rule "executeRule()" has one parameter of type integer. Tried the below piece of code but input is not getting passed.

    LOG: Rule 'executerule' has 1 parameters, but instead passed 0 parameters.

    Code:

    NamedTypedValue var = new NamedTypedValue();
    var.setName("pid");
    var.setInstanceType(AppianTypeLong.INTEGER);
    var.setValue(686);

    List list = new ArrayList();
    list.add(var);

    NamedTypedValue[] inputs = new NamedTypedValue[list.size()];
    list.toArray(inputs);

    TypedValue result = new TypedValue();
    try {
    \tresult = pds.evaluateExpression("=executeRule()",inputs);
    \t
    } catch (Exception e) {
    e.printStackTrace();
    }
Reply
  • @Abhi,
    Above code is not working for me.
    my expression rule "executeRule()" has one parameter of type integer. Tried the below piece of code but input is not getting passed.

    LOG: Rule 'executerule' has 1 parameters, but instead passed 0 parameters.

    Code:

    NamedTypedValue var = new NamedTypedValue();
    var.setName("pid");
    var.setInstanceType(AppianTypeLong.INTEGER);
    var.setValue(686);

    List list = new ArrayList();
    list.add(var);

    NamedTypedValue[] inputs = new NamedTypedValue[list.size()];
    list.toArray(inputs);

    TypedValue result = new TypedValue();
    try {
    \tresult = pds.evaluateExpression("=executeRule()",inputs);
    \t
    } catch (Exception e) {
    e.printStackTrace();
    }
Children
No Data