Support Article
Incorrect error handling for data transforms
SA-53260
Summary
User has data transform A, which calls another data transform B, which calls another data transform C.
Data transform A performs some actions after calling data transform B. If error occurs while processing Data Transform C, data transform C ends processing, data transform B also ends processing, but data transform A continues working as no error happened.
Note : Issue is happening only when "Call superclass data transform " is enabled for data transfers.
Error Messages
Not Applicable
Steps to Reproduce
1. Create DataTranform1 in Class A.
2. Again Create DataTranform 1 in Class B (Here class B is child of Class A).
3. Create again DataTranform 1 in Class C (Here class C is child of Class A).
4. Call DT1 of ClassA from an activity.
5. Call DT1 of Class B from Class A DT1.
6 Call DT1 of Class C from Class B DT1.
7. Notice that the Class DT1 of Class C from Class C DT1, this time throw an exception.
8. In the above scenario in all the Data Transforms call superclass data transform should be enabled.
9. Run the activity by enabling Tracer. Data transform C ends processing, Data transform B also ends processing, but data transform A continues working as no error happened.
Root Cause
A defect in Pegasystems’ code or rules :
In code level when call Executable.applyModel() – it will enter a loop to apply a collection of model(s)
- When “call superclass data transform” cleared, it should be only one model which is the called model in the collection so, if it failed with exception, the exception will pop up.
- When “call superclass data transform” checked, there may be more than one models in the collection – the current logic is to let it go if ANY model applies successfully
Resolution
Apply HFix-41699.
Published July 23, 2018 - 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.