mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-631 (The records management team can create a rule to request information about an undeclared record)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@48906 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -24,10 +24,16 @@ import java.util.Map;
|
|||||||
|
|
||||||
import org.activiti.engine.delegate.DelegateTask;
|
import org.activiti.engine.delegate.DelegateTask;
|
||||||
import org.activiti.engine.delegate.TaskListener;
|
import org.activiti.engine.delegate.TaskListener;
|
||||||
|
import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
|
||||||
|
import org.activiti.engine.impl.context.Context;
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
|
import org.alfresco.repo.workflow.activiti.ActivitiConstants;
|
||||||
import org.alfresco.repo.workflow.activiti.ActivitiScriptNode;
|
import org.alfresco.repo.workflow.activiti.ActivitiScriptNode;
|
||||||
import org.alfresco.repo.workflow.activiti.ActivitiScriptNodeList;
|
import org.alfresco.repo.workflow.activiti.ActivitiScriptNodeList;
|
||||||
|
import org.alfresco.service.ServiceRegistry;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.util.ParameterCheck;
|
import org.alfresco.util.ParameterCheck;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,9 +56,7 @@ public class RequestInfoAssignmentHandler implements TaskListener
|
|||||||
ParameterCheck.mandatory("delegateTask", delegateTask);
|
ParameterCheck.mandatory("delegateTask", delegateTask);
|
||||||
|
|
||||||
// Set the workflow description for the task
|
// Set the workflow description for the task
|
||||||
// FIXME: I18N!!!
|
delegateTask.setVariable("bpm_workflowDescription", getWorkflowDescription(delegateTask));
|
||||||
// FIXME: Record name!!!
|
|
||||||
delegateTask.setVariable("bpm_workflowDescription", "Information requested for record '" + "test.doc" + "'");
|
|
||||||
|
|
||||||
// Get the list of user(s) and/or group(s)
|
// Get the list of user(s) and/or group(s)
|
||||||
ActivitiScriptNodeList usersAndGroups = (ActivitiScriptNodeList) delegateTask.getVariable("rmwf_mixedAssignees");
|
ActivitiScriptNodeList usersAndGroups = (ActivitiScriptNodeList) delegateTask.getVariable("rmwf_mixedAssignees");
|
||||||
@@ -110,4 +114,43 @@ public class RequestInfoAssignmentHandler implements TaskListener
|
|||||||
delegateTask.addCandidateGroups(candidateGroups);
|
delegateTask.addCandidateGroups(candidateGroups);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getWorkflowDescription(DelegateTask delegateTask)
|
||||||
|
{
|
||||||
|
// FIXME: I18N!!!
|
||||||
|
return "Information requested for record '" + getRecordName(delegateTask) + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getRecordName(DelegateTask delegateTask)
|
||||||
|
{
|
||||||
|
ActivitiScriptNode scriptNode = (ActivitiScriptNode) delegateTask.getVariable("bpm_package");
|
||||||
|
NodeService nodeService = getServiceRegistry().getNodeService();
|
||||||
|
NodeRef docRef= nodeService.getChildAssocs(scriptNode.getNodeRef()).get(0).getChildRef();
|
||||||
|
return (String) nodeService.getProperty(docRef, ContentModel.PROP_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
//FIXME: Is there a better way to call services?
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method for getting the service registry in order to call services
|
||||||
|
*
|
||||||
|
* @return Returns the service registry
|
||||||
|
*/
|
||||||
|
private ServiceRegistry getServiceRegistry()
|
||||||
|
{
|
||||||
|
ProcessEngineConfigurationImpl config = Context.getProcessEngineConfiguration();
|
||||||
|
if (config != null)
|
||||||
|
{
|
||||||
|
// Fetch the registry that is injected in the activiti spring-configuration
|
||||||
|
ServiceRegistry registry = (ServiceRegistry) config.getBeans().get(ActivitiConstants.SERVICE_REGISTRY_BEAN_KEY);
|
||||||
|
if (registry == null)
|
||||||
|
{
|
||||||
|
throw new RuntimeException(
|
||||||
|
"Service-registry not present in ProcessEngineConfiguration beans, expected ServiceRegistry with key" +
|
||||||
|
ActivitiConstants.SERVICE_REGISTRY_BEAN_KEY);
|
||||||
|
}
|
||||||
|
return registry;
|
||||||
|
}
|
||||||
|
throw new IllegalStateException("No ProcessEngineCOnfiguration found in active context");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,8 @@ import org.alfresco.repo.workflow.activiti.ActivitiConstants;
|
|||||||
import org.alfresco.repo.workflow.activiti.ActivitiScriptNode;
|
import org.alfresco.repo.workflow.activiti.ActivitiScriptNode;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
import org.alfresco.service.cmr.notification.NotificationContext;
|
import org.alfresco.service.cmr.notification.NotificationContext;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.util.ParameterCheck;
|
import org.alfresco.util.ParameterCheck;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,9 +52,7 @@ public class RequestInfoNotifier implements TaskListener
|
|||||||
ParameterCheck.mandatory("delegateTask", delegateTask);
|
ParameterCheck.mandatory("delegateTask", delegateTask);
|
||||||
|
|
||||||
// Set the workflow description for the task
|
// Set the workflow description for the task
|
||||||
// FIXME: I18N!!!
|
delegateTask.setVariable("bpm_workflowDescription", getWorkflowDescription(delegateTask));
|
||||||
// FIXME: Record name!!!
|
|
||||||
delegateTask.setVariable("bpm_workflowDescription", "Information provided for record '" + "test.doc" + "'");
|
|
||||||
|
|
||||||
// Assign the task to the initiator
|
// Assign the task to the initiator
|
||||||
String initiator = getInitiator(delegateTask);
|
String initiator = getInitiator(delegateTask);
|
||||||
@@ -92,6 +92,20 @@ public class RequestInfoNotifier implements TaskListener
|
|||||||
return userName;
|
return userName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getWorkflowDescription(DelegateTask delegateTask)
|
||||||
|
{
|
||||||
|
// FIXME: I18N!!!
|
||||||
|
return "Information provided for record '" + getRecordName(delegateTask) + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getRecordName(DelegateTask delegateTask)
|
||||||
|
{
|
||||||
|
ActivitiScriptNode scriptNode = (ActivitiScriptNode) delegateTask.getVariable("bpm_package");
|
||||||
|
NodeService nodeService = getServiceRegistry().getNodeService();
|
||||||
|
NodeRef docRef= nodeService.getChildAssocs(scriptNode.getNodeRef()).get(0).getChildRef();
|
||||||
|
return (String) nodeService.getProperty(docRef, ContentModel.PROP_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
//FIXME: Is there a better way to call services?
|
//FIXME: Is there a better way to call services?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user