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