Support Article
PerformContainerValidations activity does not work correctly
SA-50847
Summary
When the Param.ValidateCustomerIDWithDB activity is set to true, the activity calls the LoadSingleCustomerData. The LoadSingleCustomerData activity performs a Page-New on the Customer Page and fills the page. The Customer Page always exists and is never removed.
Actual behavior:
The 'Customer is not found' error must display only when the following precondition is true:
Param.ValidateCustomerIDWithDB== true && @PageExistsWithClass("Customer",tools) == false.
Since, the Customer Page always exists, this preconditon is never true. Hence, error does not occur even when the user is not in the database.
Expected behavior:
When the user is not in the database, the activity must generate the error 'Customer is not found'
Error Messages
Not Applicable
Steps to Reproduce
- Set the Param.ValidateCustomerIDWithDB to true
- Set User ID on the request with a number that is not in the database.
- Call the HandleContainerExecution_V2 activity. Error message does not display when the user does not exist in the database.
Root Cause
A defect in Pegasystems’ code or rules.
Resolution
Apply Hotfix-40789
Or,
Perform the following local-change:
Set the param.ValidateCustomerIDWithDB property to true in the HandleContainerExecution_V2 or HandleContainerExecution activity.

In the PerformContainerValidations activity, the When condition in Step 6 has the below conditions (considering the property pyEmail1 or any other property being used here is mapped on the external mapping of PegaMKT-Data-Customer class).
When Property-Set method, set Step page to tempContainerPage
When Param.ValidateCustomerIDWithDB==true, if true > Continue Whens
When @PropertyExists(Customer.pyEmail1), if true > Skip Step

Tags:
Published April 7, 2019 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.