Support Article
Changing Application Runs Incorrect Rules (async processing)
SA-8805
Summary
The developer has noted there are activities which make asyncronous calls by using the following java:
tools.getRequestor().queueBatchActivity(tools.getParamValue("ActivityClass"),tools.getParamValue("ActivityName"), tools.getParameterPage(), primaryPage);
If the user has logged in under a default application and changed their application, the child requestor is incorrectly running under the default application.
Error Messages
com.pega.pegarules.pub.generator.RuleNotFoundException: Failed to find a 'RULE-OBJ-ACTIVITY' with the name 'ASYNCPROCESSDISPUTE' that applies to 'BAC-Debit-Work-Dispute'. There were 8 rules with this name in the rulebase, but none matched this request. The 8 rules named 'ASYNCPROCESSDISPUTE' defined in the rulebase are:
Steps to Reproduce
1. Create two access groups, built on separate ruleset stacks
2. Have an activity rule accessible to both applications called ActivityName
3. Create an activity rule called ActivityTest that is only accessible to the 2nd application
4. Set default access group to the first application
5. Log in
6. Change application to 2nd application
7. Call ActivityName with ActivityTest as the activity that it calls
Root Cause
In the case of Queue an activity for ChildRequestor , the developer user has to explicitly pass either "pzInheritRulesetList" OR "pzUseCurrentAccessGroupForChild" to true in parameter page.So that these values can be bubbled down to the child requestor and it wouldn't fail while executing the activity.
Resolution
This problem was addressed by updating the activity which calls the requestor to set the parameter "pzUseCurrentAccessGroupForChild" to true.
Published June 12, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.