Support Article
Override option during RAP import is not working in PRPC 6.3SP1
SA-601
Summary
Admin is trying to import a RAP file that contains non-ruleresolved rules using the command line tool prpcUtils into PRPC 6.3sp1. The import fails with IntegrityConstraint errors. In PRPC 6.2sp1 we could use the override option (set import.mode=override in prpcutilities.properties) and force these writes but this doesn't seem to work in prpc 6.3sp1.
Error Messages
[java] 2014-07-30 13:11:58,046 [serverName] [ STANDARD] [ ] ( internal.util.ImportImpl) ERROR - Save failed for 'RULE-ACCESS-ROLE-OBJ MyRuleSetFW:MyRole @BASECLASS'
[java] com.pega.pegarules.pub.database.IntegrityConstraintViolationException: Database-Saver-Insertfail
Steps to Reproduce
Deploy RAP from command line
Root Cause
The root cause of this problem is a defect/misconfiguration in the PRPC operating environment. For non-ruleresolved rules such as RULE-ACCESS-ROLE-OBJ instances, there is only one instance of each rule ever. When importing from UI there is an option to overwrite the existing rule with the new version in the RAP file. When running from the command line the switch (-x) that can be used to replace the existing instances can be used. This option is not available by default from the command line.
Resolution
In prpcUtils.xml for <target name="-import" > add the following:
<condition property="import.really.override.arg" value="-x" else="">
<equals arg1="${import.mode}" arg2="override" />
</condition>
In prpcUtils.properties set import.mode=override when you want to use this override option. Be aware that using the override option should not be the default behavior. You should verify that you want to overwrite the existing instance before using this option.
Published April 1, 2016 - 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.