AnsweredAssumed Answered

WebScript Informe

Question asked by pablo.zapico on Dec 29, 2009
Latest reply on Jan 25, 2010 by moterosk
Buenos dias… Dejo aqui un webScript que nos muestra un xml con los contenidos de un espacio

Ficheros:

informe.ieci.folder.get.desc.xml

En este fichero se define nuestro web script

<webscript>
   <shortname>Listado Asociaciones</shortname>
   <description>
      <![CDATA[
         Listado del contenido de asociaciones
         <ul>
            <li> path: Asociaciones </li> 
         </ul>   
         Example: http://localhost:8080/alfresco/service/loquekiera/folder/Asociaciones
         <BR/>
         Return status: STATUS_OK, 200 
      ]]>
   </description>
   <url>/loquekiera/folder/{path}</url>
   <format default="xml">argument</format>
   <authentication>guest</authentication>
   <transaction>required</transaction>
</webscript>

Le indicaremos el nombre, la url para lanzarlo, si lleva algun parametro, el tipo de retorno, seguridad…

informe.ieci.folder.get.js

En este otro fichero ira nuestro codigo propiamente dicho, que sera el encargado de realizar la logica de nuestro webScript

// locate folder by path
var folder = companyhome.childByNamePath(url.extension);  // url.extension sera el valor que le pasemos como parametro
// En folder almacenara el resultado de nuestra busqueda
if (folder == undefined)
{
   status.code = 404;
   status.message = "Folder " + url.extension + " not found.";
   status.redirect = true;
}
model.folder = folder;

informe.ieci.folder.get.xml.ftl

Y por ultimo en este fichero definiremos la plantilla para mostrar los resultados, en este caso se retornara un xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
<!ENTITY gt "&#62;">
<!ENTITY lt "&#38;#60;">
<!ENTITY aacute "&#225;">
<!ENTITY eacute "&#233;">
<!ENTITY iacute "&#237;">
<!ENTITY oacute "&#243;">
<!ENTITY uacute "&#250;">
<!ENTITY ntilde "&#241;">
<!ENTITY Aacute "&#193;">
<!ENTITY Eacute "&#201;">
<!ENTITY Iacute "&#205;">
<!ENTITY Oacute "&#211;">
<!ENTITY Uacute "&#218;">
<!ENTITY Ntilde "&#209;">
<!ENTITY iquest "&#191;">
]>
<#compress>
   <Asociaciones> 
         <#list folder.children as space>
            <Asociacion nombre="${space.name}">
               <#if space.isContainer>                           
                  <descripcion>${space.properties["cm:description"]}</descripcion>
                  <Contenidos>
                     <#list space.children as node> 
                        <#if node.isContainer>                                 
                        <#else>
                           <Contenido nombre="${node.name}"/>                                                         
                        </#if>                     
                     </#list>            
                  </Contenidos>
                  <#else>               
               </#if>
            </Asociacion>
         </#list>               
    </Asociaciones>
</#compress>

Se podran crear bucles y condiciones.


Estos tres ficheros los alojaremos en Diccionario de datos > Web Scripts Extensions

Despues en la siguiente ruta http://localhost:8080/alfresco/service/index podremos ver todos los webscript cargados, si seleccionamos "Regresh Web Script", cargara el nuestro y despues en el siguiente enlace http://localhost:8080/alfresco/service/index/all deberiamos ver el listado de web script donde el que hemos creado Listado Asociaciones deberia aparecer.

Por ultimo ejecutaremos http://localhost:8080/alfresco/service/loquekiera/folder/Asociaciones y nos deberia mostrar un xml con todos los contenidos del espacio asociaciones con su nombre y descripcion. Se pueden mostrar todos los metadatos que precisemos y listar el espacio que deseemos dependiendo de la url que invoquemos.

Saludos

Outcomes