Easy way to fix ‘(\CLASS=CX_HRPA_VIOLATED_ASSERTION)’ exception while replicating an employee from EC to EC Payroll system through Point-to-Point Integration
I have come across a situation while replicating an employee from Employee Central to Employee Central Payroll through Point-to-Point Integration, an error/exception (\CLASS=CX_HRPA_VIOLATED_ASSERTION) is coming in SLG1(Application Log: Display Logs). As a result of this, the whole replication process is getting failed.
The issue got solved after spending some time debugging. So, I am writing this blog post for the functionals who wants to do some basic checks to save time before handling the issue to the ABAPer.
This is an exception raised by different methods of the class CL_HRPA_INFTY_0000.
You can get the details of the class & its methods in this link.
There is a method called CHECK_UPDATE_RULES in that class that defines: Where should data be saved (0000 and/or 0302)?
If there is any inconsistency in the rules, it will throw this exception. Below is the screenshot of the code block for reference.
Now, the question is how to set up the rules if you are just hiring a person?
The answer is you need to maintain the table T529A(Personnel Action Types) for the Hiring action. You need to check whether both the indicators Update infotype 0000 & Update infotype 0302 are checked or not.
Please check the screenshot below for further reference.
If both of the indicators are not properly maintained, then the method CHECK_UPDATE_RULES will raise this exception.
The first check for the indicator Update infotype 0000 will be there but the second one Update infotype 0302 should also be checked which was not in my case.
Setting up both the indicator solved the problem & the employee got replicated successfully.
N.B: This issue occurred in the case of me, but there are several other methods in the same class that can raise the same exception.
If the method CHECK_UPDATE_RULES is not raising the exception then please check the other methods. The list of other methods is in the below screenshot.
That’s it. 🙂