diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml
index f19f7d319e..ea568b59d7 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-action-context.xml
@@ -940,6 +940,7 @@
+
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/PropertySubActionExecuterAbstractBase.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/PropertySubActionExecuterAbstractBase.java
index 9aa0ce5c86..16f40e2ada 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/PropertySubActionExecuterAbstractBase.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/PropertySubActionExecuterAbstractBase.java
@@ -33,7 +33,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
public abstract class PropertySubActionExecuterAbstractBase extends AuditableActionExecuterAbstractBase
{
/** Parameter processor component */
- private ParameterProcessorComponent parameterProcessorComponent;
+ protected ParameterProcessorComponent parameterProcessorComponent;
/** Indicates whether parameter substitutions are allowed */
protected boolean allowParameterSubstitutions = false;
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java
index c5fd59857a..977c245160 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java
@@ -67,6 +67,12 @@ public class DelegateAction extends RMActionExecuterAbstractBase
if (nodeService.exists(actionedUponNodeRef) == true &&
(checkFrozen == false || freezeService.isFrozen(actionedUponNodeRef) == false))
{
+ // do the property subs (if any exist)
+ if (allowParameterSubstitutions == true)
+ {
+ parameterProcessorComponent.process(action, delegateActionExecuter.getActionDefinition(), actionedUponNodeRef);
+ }
+
delegateActionExecuter.execute(action, actionedUponNodeRef);
}
}
diff --git a/rm-server/source/java/org/alfresco/repo/action/parameter/ParameterProcessorComponent.java b/rm-server/source/java/org/alfresco/repo/action/parameter/ParameterProcessorComponent.java
index d3798e3667..dff8451d11 100644
--- a/rm-server/source/java/org/alfresco/repo/action/parameter/ParameterProcessorComponent.java
+++ b/rm-server/source/java/org/alfresco/repo/action/parameter/ParameterProcessorComponent.java
@@ -25,10 +25,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.alfresco.error.AlfrescoRuntimeException;
-import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.action.ParameterizedItem;
import org.alfresco.service.cmr.action.ParameterizedItemDefinition;
-import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
/**
@@ -66,20 +64,14 @@ public class ParameterProcessorComponent
for (Map.Entry entry : ruleItem.getParameterValues().entrySet())
{
String parameterName = entry.getKey();
-
- // get the parameter definition
- ParameterDefinition def = ruleItemDefinition.getParameterDefintion(parameterName);
- if (def != null)
+ Object parameterValue = entry.getValue();
+
+ // only sub string property values
+ if (parameterValue != null && parameterValue instanceof String)
{
- if (DataTypeDefinition.TEXT.equals(def.getType()) == true)
- {
- // get the parameter value
- String parameterValue = (String)entry.getValue();
-
- // set the updated parameter value
- ruleItem.setParameterValue(parameterName, process(parameterValue, actionedUponNodeRef));
- }
- }
+ // set the updated parameter value
+ ruleItem.setParameterValue(parameterName, process((String)parameterValue, actionedUponNodeRef));
+ }
}
}