lunes, 29 de agosto de 2011

Alfresco - Combinando WebScripts con Acciones (parte 1)

Hola de nuevo!
Tenia un poco olvidado el blog y he decidido retomarlo con este tutorial. La idea es combinar diferentes aspectos de Alfresco, como son las acciones, dialogos, webscripts, evaluadores...
Vamos a empezar creando un webscript muy sencillo, su función será mostrarnos los documentos que tiene asociados un documento en concreto. Para ello, primero debemos definir nuestro customModel.xml:
      
         
	Custom Model       
	      
	1.0 
	             
		 
		 
		
	    
	    
		
	           
		    
			     
				Documento      
				cm:content         
				  
					     
					Documentos Asociados          
					        
						false       
						true      
											
					               
						cm:content    
						false       
						true          
					         
					         
				   
			      
		  	

Un webscript se puede componer de varios ficheros:
  • Documento descriptivo
  • Script de control (opcional)
  • Una o varias plantillas
  • Documento de configuración (opcional)
  • Fichero de propiedades (opcional)

En nuestro caso, crearemos tres ficheros en la ruta:
/Company Home/Data Dictionary/Web Scripts/org/alfresco/sample

1. docsAsociados.get.desc.xml (documento descriptivo):
  

     Documentos Asociados  
     /sample/docsAsociados?q={searchTerm}   
	 extension  
	 user  
	 required  
 
2. docsAsociados.get.html.ftl (plantilla de salida)

<html>
  <body>     
    <br>
    <table>
	<tr><td colspan="2"><b><u>Documentos Asociados</u></b></td></tr>
		<tr></tr>
		<tr></tr>
		<tr style='background-color: #C6D8EB'>
			<td></td>
			<td align="center"><b>Nombre<b></td>				
		</tr>
     <tr>
		<#list resultset as node>		
			<td align="center"><img src="${url.context}${node.icon16}"/></td>
			<td align="center"><a href="/alfresco${node.url}" target="_blank">${node.name}</a></td>		
			<td></td>		
			<#if node.assocs["custom:docsAsociados"]?exists>
				<#list node.assocs["custom:docsAsociados"] as doc>				  				
					<td><a href="/alfresco${doc.url}" target="_blank">Documento</a></td>
					<td></td>
					<td align="center">${doc.name}</td>
					<td></td>							
				</#list>
			</#if>     
			<tr><td colspan="6">--------------------------------------------------------------------------------------</td></tr>
		</#list>
	</tr>
    </table>
  </body>
</html>

3. docsAsociados.get.js (script de control)
 
 if (args.q == undefined || args.q.length == 0){ 
	status.code = 400;  
	status.message = "Search term has not been provided.";  	
	status.redirect = true;
}	else{
    var node = search.findNode(args.q);  
	var asociaciones = node.assocs["custom:docsAsociados"]; 
	model.resultset = asociaciones;
}
Para información más completa y detallada acerca de los webscripts, aquí encontrareis todo lo necesario.

1 comentario:

  1. ¡Muy buen tuto! Seguro que a más de uno le viene de arte :D

    Estoy deseando ver la segunda parte ^__^

    ResponderEliminar