04-02-2014 08:42 PM
org.activiti.engine.ActivitiException: Exception while invoking TaskListener: Exception while invoking TaskListener: 03020110 Failed to execute supplied script: null
at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)
at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)
at org.activiti.engine.impl.bpmn.helper.ClassDelegate.notify(ClassDelegate.java:92)
… 189 more
Caused by: java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableMap.put(Collections.java:1342)
at org.alfresco.repo.node.db.DbNodeServiceImpl.addAspectsAndProperties(DbNodeServiceImpl.java:546)
at org.alfresco.repo.node.db.DbNodeServiceImpl.addAspectsAndProperties(DbNodeServiceImpl.java:466)
at org.alfresco.repo.node.db.DbNodeServiceImpl.addAspect(DbNodeServiceImpl.java:834)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.jav
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>
var setWebFlagAction = actions.create("set-web-flag");
setWebFlagAction.parameters["active"] = true;
for (var i = 0; i < bpm_package.children.length; i++) {
logger.log("Approving node:" + bpm_package.children.nodeRef);
setWebFlagAction.execute(bpm_package.children);
}
</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
04-15-2014 02:50 AM
04-15-2014 04:40 PM
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.action.ParameterDefinitionImpl;
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SetWebFlag extends ActionExecuterAbstractBase {
public final static String NAME = "set-web-flag";
public final static String PARAM_ACTIVE = "active";
/** The NodeService to be used by the bean */
protected NodeService nodeService;
private static Log logger = LogFactory.getLog(SetWebFlag.class);
@Override
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
Boolean activeFlag = (Boolean)action.getParameterValue(PARAM_ACTIVE);
if (activeFlag == null) activeFlag = true;
if (logger.isDebugEnabled()) logger.debug("Inside executeImpl");
// set the sc:isActive property to true
// set the sc:published property to now
Map<QName, Serializable> properties = nodeService.getProperties(actionedUponNodeRef);
properties.put(QName.createQName(eDCRModel.NAMESPACE_SOMECO_WORKFLOW_MODEL, eDCRModel.PROP_IS_ACTIVE), activeFlag);
if (activeFlag) {
properties.put(QName.createQName(eDCRModel.NAMESPACE_SOMECO_WORKFLOW_MODEL, eDCRModel.PROP_PUBLISHED), new Date());
}
// if the aspect has already been added, set the properties
if (nodeService.hasAspect(actionedUponNodeRef,
QName.createQName(
eDCRModel.NAMESPACE_SOMECO_WORKFLOW_MODEL,
eDCRModel.ASPECT_SC_WEBABLE))) {
if (logger.isDebugEnabled()) logger.debug("Node has aspect");
nodeService.setProperties(actionedUponNodeRef, properties);
} else {
// otherwise, add the aspect and set the properties
if (logger.isDebugEnabled()) logger.debug("Node does not have aspect");
nodeService.addAspect(actionedUponNodeRef, QName.createQName(eDCRModel.NAMESPACE_SOMECO_WORKFLOW_MODEL, eDCRModel.ASPECT_SC_WEBABLE), properties);
}
if (logger.isDebugEnabled()) logger.debug("Ran web enable/disable action");
}
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
paramList.add(
new ParameterDefinitionImpl( // Create a new parameter definition to add to the list
PARAM_ACTIVE, // The name used to identify the parameter
DataTypeDefinition.BOOLEAN, // The parameter value type
false, // Indicates whether the parameter is mandatory
getParamDisplayLabel(PARAM_ACTIVE))); // The parameters display label
}
/**
* @param nodeService The NodeService to set.
*/
public void setNodeService(NodeService nodeService) {
this.nodeService = nodeService;
}
}
04-15-2014 11:50 PM
04-18-2014 05:17 PM
Iterator it = exisitngproperties.keySet().iterator();
while(it.hasNext())
{
QName key = (QName) it.next();
properties.put(key, (Serializable)exisitngproperties.get(key));
}
04-19-2014 12:16 PM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.