Support Article

Business event processing authorization error

SA-27022

Summary



IndeterminateConditionalException in business event processing due to a missing page when trying to evaluate an Access When rule.

Event processing performs a call to tools.getThread().getAuthorization().haveAccess in multiple activities that can fail if there are access when's defined for the class. The access when's require that a work page be present to evaluate against and depending on how the call is being performed or if passivation has occurred, the process can throw an IndeterminateConditionalException.

The main scenarios that we have experienced the issue can be found below:

1. When trying to open up the "Events landing page" one can get an error caused by the pre-processing activity pxCreateSummary.

The pxCreateSummary activity is throwing an exception on step 10 since it is calling tools.getThread().getAuthorization().haveAccess and failing to account for access when's and their need to check permissions based on content in a page.

2. When using the OOTB Follow/Unfollow feature to follow a request, if the work page has been passivated the application will throw the error on step 7 of the pxGetPrimaryClasses activity when making the call to tools.getThread().getAuthorization().haveAccess.

The call passes in the thread so if the work page is not passivated the process will work without any issues.

3. Custom features that use the business event processing functionality to track events based on changes to work objects. As with #1, when the custom processing calls the pxCreateSummary activity to create the business event; it is throwing an exception on step 10 since it is calling tools.getThread().getAuthorization().haveAccess and failing to account for access when's and their need to check permissions based on content in a page.


Error Messages



There was an error processing the '<FLOW NAME>' step [UTILITY76]: com.pega.pegarules.pub.runtime.IndeterminateConditionalException:

​ Trying to evaluate Rule-Access-When conditions '<WHEN RULE NAME>' when there is no page to evaluate them against

The Flow Action pre-processing activity pxCreateSummary failed: Trying to evaluate Rule-Access-When conditions
'<WHEN RULE NAME>' when there is no page to evaluate them against


Steps to Reproduce



Create an Access When instance in a class and try to define an event for the class.


Root Cause



A defect in Pegasystems’ rules that call tools.getThread().getAuthorization() or tools.getThread().getAuthorization().haveAccess without a page.

Resolution



Apply HFix-28931 to fix the issue.

 

Published August 19, 2016 - Updated August 24, 2016

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.