30/12/2011
Nella versione 3.2 di Alfresco Community Edition gli strumenti per interagire con i workflow sono ancora scomodi, c'e' una console da linea di comando che permette di visualizzare le informazioni relative alla configurazioni e alle istanze, ma è veramente poco pratica.
Utilizzando il package org.alfresco.service.cmr.workflow e il json-lib è possibile con una semplice jsp creare una nuova interfaccia di comunicazione utilizzando il formato JSON.
Questo un semplice esempio:
<%@page import="java.util.List"%> <%@page import="net.sf.json.*"%> <%@page import= "org.alfresco.service.ServiceRegistry"%> <%@page import= "org.springframework.web.context.WebApplicationContext" %> <%@page import= "org.alfresco.service.cmr.workflow.*" %> <%@page import= "org.alfresco.web.app.servlet.AuthenticationHelper" %> <%@page import= "org.alfresco.web.bean.repository.User" %> <%@page import= "org.springframework.web.context.support.WebApplicationContextUtils" %> <%@page import= "org.alfresco.web.config.ClientConfigElement, net.sf.acegisecurity.BadCredentialsException" %> <%@page import= "org.alfresco.service.cmr.security.AuthenticationService" %> <%@page import= "org.alfresco.repo.security.authentication.AuthenticationException" %> <% if ( request.getParameter( "alf_ticket" ) == null ){ out.println( "Error: parametro alf_ticket non valorizzato" ); return; } if ( request.getParameter( "op" ) == null ){ out.println( "Error: parametro op non valorizzato" ); return; } WebApplicationContext context = WebApplicationContextUtils. getRequiredWebApplicationContext( session.getServletContext()); try { ServiceRegistry serviceRegistry = (ServiceRegistry) context.getBean(ServiceRegistry.SERVICE_REGISTRY); WorkflowService wfService = serviceRegistry.getWorkflowService(); AuthenticationService authService = serviceRegistry.getAuthenticationService(); authService.validate( request.getParameter( "alf_ticket" ) ); if ( request.getParameter( "op" ).equals("definitions") ){ JSONObject jsonObject = JSONObject.fromObject( wfService.getDefinitions() ); out.println( jsonObject ); } if ( request.getParameter( "op" ).equals("workflowDefinitionId") ){ JSONObject jsonObject = JSONObject.fromObject( wfService.getActiveWorkflows( request.getParameter( "id" ) ) ); out.println( jsonObject ); } if ( request.getParameter( "op" ).equals("workflowDefinitionId") ){ JSONObject jsonObject = JSONObject.fromObject( wfService.getDefinitionById( request.getParameter( "id" ) ) ); out.println( jsonObject ); } } catch (AuthenticationException e) { out.println("Error: " + e.getMessage() ); } %>
Commenti