As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype); public void undeployDefinition(String workflowDefinitionId);
public void undeployUnUsedDefinitions(boolean deleteFlag){ WorkflowService wfService = getServiceRegistry().getWorkflowService(); List<WorkflowDefinition> workFlowDefinitions = wfService.getAllDefinitions(); for(WorkflowDefinition wfd : workFlowDefinitions){ String wfId = wfd.getId(); List<String> excludeList = new ArrayList<String>(); excludeList.add("activiti$activitiAdhoc:1:4"); excludeList.add("activiti$activitiInvitationModerated:1:23"); excludeList.add("activiti$activitiInvitationNominated:1:26"); excludeList.add("activiti$activitiParallelGroupReview:1:20"); excludeList.add("activiti$activitiParallelReview:1:16"); excludeList.add("activiti$activitiReview:1:8"); excludeList.add("activiti$activitiReviewPooled:1:12"); logger.debug("WorkFlowDefinition IDs :"+wfId); if(deleteFlag){ if(excludeList.contains(wfId)){ logger.info("WorkFlowDefinitionID belongs to the sample and should not be deleted wfID: "+wfId); } else{ wfService.undeployDefinition(wfId); logger.info("WorkFlowDefinitionID deleted successfully wfID: "+wfId); } } } }
package org.hc.utils; import java.util.ArrayList; import java.util.List; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.workflow.WorkflowDefinition; import org.alfresco.service.cmr.workflow.WorkflowService; import org.apache.log4j.Logger; public class HCWorkFlowUtility { protected static Logger logger = Logger.getLogger(HCWorkFlowUtility.class); private static ServiceRegistry serviceRegistry; public static void undeployUnUsedDefinitions(boolean deleteFlag) { WorkflowService wfService = getServiceRegistry().getWorkflowService(); List<WorkflowDefinition> workFlowDefinitions = wfService .getAllDefinitions(); for (WorkflowDefinition wfd : workFlowDefinitions) { String wfId = wfd.getId(); List<String> excludeList = new ArrayList<String>(); excludeList.add("activiti$activitiAdhoc:1:4"); excludeList.add("activiti$activitiInvitationModerated:1:23"); excludeList.add("activiti$activitiInvitationNominated:1:26"); excludeList.add("activiti$activitiParallelGroupReview:1:20"); excludeList.add("activiti$activitiParallelReview:1:16"); excludeList.add("activiti$activitiReview:1:8"); excludeList.add("activiti$activitiReviewPooled:1:12"); logger.debug("WorkFlowDefinition IDs :" + wfId); if (excludeList.contains(wfId)) { logger.info("WorkFlowDefinitionID belongs to the sample and will not be deleted wfID: " + wfId); } else { if (deleteFlag) { wfService.undeployDefinition(wfId); logger.warn("WorkFlowDefinitionID deleted successfully wfID: " + wfId); } else { logger.warn("WorkFlowDefinitionID can be deleted, wfID: " + wfId); } } } } public static ServiceRegistry getServiceRegistry() { return serviceRegistry; } public static void setServiceRegistry(ServiceRegistry serviceRegistry) { HCWorkFlowUtility.serviceRegistry = serviceRegistry; } }
package org.hc.javabackedwebscripts.content; import java.util.HashMap; import java.util.Map; import org.alfresco.error.AlfrescoRuntimeException; import org.apache.log4j.Logger; import org.hc.utils.HCWorkFlowUtility; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.WebScriptRequest; public class UnDeployWorkflows extends DeclarativeWebScript { protected Logger logger = Logger.getLogger(UnDeployWorkflows.class); @Override protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) { String deleteStr = req.getParameter("delete"); boolean deleteFlag = Boolean.valueOf(deleteStr); try { HCWorkFlowUtility.undeployUnUsedDefinitions(deleteFlag); } catch (Exception e) { logger.error("Error occured while deleting the old workflows. Please see the log for more details!"); throw new AlfrescoRuntimeException(e.getMessage()); } Map<String, Object> model = new HashMap<>(); String resultMessage = null; if (deleteFlag) { resultMessage = "All the old workflows have been successfully deleted, please see the log for the list of worklflows deleted."; } else { resultMessage = "All the old workflows have been successfully printed in the log, please see the log for the list."; } model.put("resultMessage", resultMessage); return model; } }
<bean id="${project.artifactId}_hcWorkFlowUtility" class="org.hc.utils.HCWorkFlowUtility"> <property name="serviceRegistry" ref="ServiceRegistry"/> </bean> <bean id="webscript.workflow.undeploy-workflow.get" class="org.hc.javabackedwebscripts.content.UnDeployWorkflows" parent="webscript"/>
/** undeploy-workflow.get.desc.xml **/ <webscript> <shortname>Undeploys the deployed workflows</shortname> <description>This undeploys the deployed workflows based the flag set in it.</description> <url>/undeploy-workflow?delete={deleteFlag}</url> <format default="json">extension</format> <authentication>admin</authentication> </webscript> /** undeploy-workflow.get.json.ftl **/ { result: [ { undeployResult: "${resultMessage!'Result Message Not Found'}" } ] }
{ "status" : { "code" : 500, "name" : "Internal Error", "description" : "An error inside the HTTP server which prevented it from fulfilling the request." }, "message" : "02110001 Wrapped Exception (with status template): 02110011 \r\n### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\".\r\n### The error may involve org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.deleteProcessDefinitionsByDeploymentId-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ?\r\n### Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\".", "exception" : "org.springframework.extensions.webscripts.WebScriptException - 02110001 Wrapped Exception (with status template): 02110011 \r\n### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\".\r\n### The error may involve org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.deleteProcessDefinitionsByDeploymentId-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ?\r\n### Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\".", "callstack" : [ "" ,"org.alfresco.error.AlfrescoRuntimeException: 02110011 \r\n### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\".\r\n### The error may involve org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.deleteProcessDefinitionsByDeploymentId-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ?\r\n### Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\"." ,"org.hc.javabackedwebscripts.content.UnDeployWorkflows.executeImpl(UnDeployWorkflows.java:29)" ,"org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:64)" ,"org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:470)" ,"org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:454)" ,"org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:532)" ,"org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:600)" ,"org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:380)" ,"org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:261)" ,"org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)" ,"org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)" ,"org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)" ,"javax.servlet.http.HttpServlet.service(HttpServlet.java:727)" ,"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)" ,"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)" ,"org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)" ,"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)" ,"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)" ,"org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)" ,"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)" ,"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)" ,"org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)" ,"org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)" ,"org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)" ,"org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)" ,"org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)" ,"org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)" ,"org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)" ,"org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)" ,"org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)" ,"org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)" ,"org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)" ,"org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)" ,"java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)" ,"java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)" ,"java.lang.Thread.run(Unknown Source)" ,"org.springframework.extensions.webscripts.WebScriptException: 02110001 Wrapped Exception (with status template): 02110011 \r\n### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\".\r\n### The error may involve org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.deleteProcessDefinitionsByDeploymentId-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from ACT_RE_PROCDEF where DEPLOYMENT_ID_ = ?\r\n### Cause: org.postgresql.util.PSQLException: ERROR: update or delete on table \"act_re_procdef\" violates foreign key constraint \"act_fk_exe_procdef\" on table \"act_ru_execution\"\n Detail: Key (id_)=(activitiInvitationNominated:1:26) is still referenced from table \"act_ru_execution\"." ,"org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1126)" ], "server" : "Community v5.0.0 (c r91299-b145) schema 8,009", "time" : "Mar 11, 2015 10:55:54 AM" }