Deploying process model with new rule inputs for an expression rule which hasn't been updated

Hi guys, I had a little search around but couldn't see anything for this question (although I'm sure there'll be an answer somewhere).

This weekend we're doing a deployment to resolve an issue in PROD, and as part of that deployment we're importing a patch with an updated process model. I have also updated this process model unrelated to this patch with a new parameter, which is then passed to an expression rule in a script task. The expression rule update is not due to be deployed in this patch. Does providing a rule input for an expression rule that doesn't actually exist in the expression rule yet cause any errors? Will I need to revert this change in the process model, deploy it, then reinstate the change?

Thanks for any help.

  Discussion posts and replies are publicly visible

Parents
  • As long as you have used dictionary structure to pass the existing inputs of that expression rule also if you don't pass the expression rule's new input it won't break the rule individually. It will be fine to deploy the process.

  • Yep, Kunal is exactly right. Just to explain further, dictionary syntax means that you provide the parameter name and value for each input. Suppose you have an expression rule that takes two inputs: status and user. Dictionary syntax means setting up the rule like this:

    rule!MY_Rule(
      status: pv!statusVar,
      user: loggedInUser()
    )

    Suppose you then update your expression rule and process model to add a new parameter like this:

    rule!MY_Rule(
      status: pv!statusVar,
      user: loggedInUser(),
      newParam: true
    )

    The way dictionary syntax works is that any parameters are only applied if they match in the rule. In Development, you have this parameter saved to your expression rule, so it uses the value you provide. In Production, newParam doesn't exist, so it is simply ignored.

Reply
  • Yep, Kunal is exactly right. Just to explain further, dictionary syntax means that you provide the parameter name and value for each input. Suppose you have an expression rule that takes two inputs: status and user. Dictionary syntax means setting up the rule like this:

    rule!MY_Rule(
      status: pv!statusVar,
      user: loggedInUser()
    )

    Suppose you then update your expression rule and process model to add a new parameter like this:

    rule!MY_Rule(
      status: pv!statusVar,
      user: loggedInUser(),
      newParam: true
    )

    The way dictionary syntax works is that any parameters are only applied if they match in the rule. In Development, you have this parameter saved to your expression rule, so it uses the value you provide. In Production, newParam doesn't exist, so it is simply ignored.

Children