AYUDA: Como crear botón para exportar a excel resultados de busqueda, Alfresco Share

cancel
Showing results for 
Search instead for 
Did you mean: 
magarcia_sm
Active Member II

Re: AYUDA: Como crear botón para exportar a excel resultados de busqueda, Alfresco Share

Hola de nuevo!

Finalmente si hemos podido sacar el datatable que se utiliza en la pantalla de search de share, pero nos dimos cuenta de que no era lo que necesitábamos. Siguiendo el ejemplo finalmente hemos logrado crear el excel con el listado de los archivos/espacios que devuelve la búsqueda, pero lo que queremos es listar un excel que incluya además del nombre de los espacios/archivos, los valores de los metadatos…. y aquí es donde estoy otra vez parado.

He intentado llamar a la función exportToExcel, de forma que vuelva a ejecutar la última búsqueda y para eso utilizo el valor almacenado de this.options.searchQuery, que contienen el valor de los parámetros de búsqueda ejem:


"{"assoc_cm_contains_added":"","assoc_cm_contains_removed":"","prop_exprec_expDireccionDestinataria":"","prop_exprec_expServicioTecnico":"","prop_exprec_expFechaReclamacion":"","prop_cm_created":"","prop_exprec_expEstado":"","prop_exprec_expDniReclamante":"","prop_exprec_expNombreReclamante":"","prop_cm_name":"","prop_exprec_expFechaEntrada":"","prop_exprec_expAsunto":"","prop_cm_modified":"","prop_cm_accessed":"","prop_exprec_expNumExpediente":"","datatype":"exprec:expediente_reclamaciones"}"


lo he intentado ejecutar en un script de la JavaScript Search API de Alfresco de la siguiente manera

var excelQuery = this.options.searchQuery;

                var def =
                {
                    query: excelQuery,
                    store: "workspace://SpacesStore"
                   

                };
                var origen = search.query(def);


el problema es que nos dice que el elemento "search no está definido".

¿No puedo utilizar la Java Script Search API de Alfresco en estos ficheros search.js de Share?…. ¿Como puedo obtener los nodos de los elementos que forman la pantalla de resultados de la búsqueda de share?

Si me puedes echar una mano con un comentario te lo agradecería.

Gracias Angel!

angelborroy
Alfresco Employee

Re: AYUDA: Como crear botón para exportar a excel resultados de busqueda, Alfresco Share

Habéis topado con un problema muy común: la API JavaScript de Alfresco de servidor. Estáis desarrollando código YUI (que es JavaScript cliente) en la aplicación web Share, por lo que no podéis utilizar esta API.

Desde este punto, suele invocarse a la API REST (Web Scripts) para obtener el servicio que necesitas. Te recomiendo que utilices el helper que proporciona Alfresco para realizar este tipo de invocaciones:

         Alfresco.util.Ajax.request(
         {
            url: Alfresco.constants.PROXY_URI_RELATIVE + "slingshot/search?",  // Aquí tus parámetros de búsqueda
            method: "GET",
            responseContentType : "application/json",
            successCallback:
            {
               fn: function(response)
               {
                  // ..
               },
               scope: this
            },
            failureCallback:
            {
               fn: function(response)
               {
                  // ..
               },
               scope: this
            }
         });


Ten en cuenta que es una invocación asíncrona, lo que puede hacer variar tu flujo previsto de trabajo.
Hyland Developer Evangelist
magarcia_sm
Active Member II

Re: AYUDA: Como crear botón para exportar a excel resultados de busqueda, Alfresco Share

Hola Angel,

   Perdona por la tardanza en contestar y gracias por la ayuda.
Al final logramos hacer lo que pretendíamos de la forma en que nos comentabas. Utilizando la API REST hicimos una llamada igual que la que realizaba el "Search" para recuperar la lista de resultados y a partir de esos datos construir nuestra tabla para exportar a excel.


var myUrl = window.location.href;

Alfresco.util.Ajax.request({
    //realizamos una busqueda con la misma query que utiliza "search"
    url: Alfresco.constants.PROXY_URI_RELATIVE + "slingshot/search?" + myUrl,
    method: "GET",
    responseContentType: "application/json",
    successCallback: {
        fn: function (response) {
            var results = response.json.items;
            // ..

        },

        scope: this

    },

    failureCallback: {

        fn: function (response) {

            // ..

        },

        scope: this

    }

});