A- A A+

Alfresco, il Workflow via JSON

tag  Alfresco  JSON  Workflow 

30/12/2011

Interagire con i workflow di Alfresc

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







I commenti somo moderati dall'amministratore del sito, l'email non sara' visibile sul sito.