Tips, Soluciones y Novedades en Tecnología

26/09/2015

Save As saiku


En la entrada anterior vimos como integrar adhoc con nuestra aplicación  en el cual nosotros tenemos el control del repositorio de pentaho

en este post explicaremos como hacemos con saiku

 

Saiku es una de las mejores por no decir la mejor de los plugin para hacer análisis OLAP y es además open source

si queremos la independencia de la consola de pentaho, podemos hacer el mismo paso que el post anterior y podremos guardar nuestro análisis saiku según nuestra necesidad

puesto que este también dispone de un plugin:

\pentaho-solutions\system\saiku\ui\js\saiku\plugins\BIServer\plugin.js

el proceso es exactamente el mismo del post anterior para el proceso de guardado.

image

Vamos hacer algo mas, para darle a saiku la independencia total.

si abrimos saiku en modo edición en una ventana vemos que que no dispone de un botón guardar, solo dispone de un botón guardar como

entonces si modificamos el análisis no podemos guardarlo automáticamente salvo que tendríamos que navegar y remplazar el archivo y esto para mi

es un proceso engorroso cuando ya hay parámetros y esta en modo edición

 

entonces hagamos un script para poder guardar el análisis saiku sin que nos este solicitando navegar por el repositorio de soluciones de pentaho

lo primero es que tenemos que agregar un nuevo botón en la plantilla index.html para que figure como un icono mas.

 

save

después agregamos un class css .save_action y le agregamos un icono, recuerden el nombre: href=”#save_action”

.workspace_toolbar .save_action{
   background-image: url('../../../../../../mantle/images/save_32.png');
   height: 16px !important;
   width: 16px !important;
}

podemos ver que nuestro botón se agrego correctamente. obviamente que el botón save as también lo he cambiado de icono

buttom

 

Ubiquemos los siguientes archivos:

 

\pentaho-solutions\system\saiku\ui\js\saiku\views\WorkspaceToolbar.js

y en la línea 157 des pues de la función open_query crear esta función

 

save_action: function(event) {

  var SaveSolution = Settings.GET.SOLUTION;
   var SavePath = Settings.GET.PATH;
   var SaveName = Settings.GET.ACTION;

   if (SaveSolution == undefined || SavePath == undefined || SaveName == undefined) {
           if(top.mantle_initialized !== undefined && top.mantle_initialized &&
           top.parent.enableAdhocSave ) {
               if (window.ALLOW_PUC_SAVE === undefined || ALLOW_PUC_SAVE) {
                   top.parent.enableAdhocSave(isAllowed);
               }
           } else {
               this.save_query(event);
           }
   } else {
       var nwPath;
       var temp = SavePath.toString();
       if (temp == 'NaN') {
           nwPath = '';
       } else {
           nwPath = Settings.GET.PATH;
       }
       puc.save_to_solution(SaveName, SaveSolution, nwPath, null, true);
   }
    },

Lo que hace la función es  recoger las variables globales capturadas en iniciar la ejecución del análisis por las librerías de saiku.

si el análisis esta en modo edición, entonces estas variables tiene un valor valido asignado y como decía al inicio

(No podemos estar preguntando donde guardar si tenemos la ruta y queremos actualizar el análisis).

 

ahora si el análisis no tiene valores validos quiere decir que es un nuevo análisis, y entonces si no esta integrado a pentaho re direcciono al SAVE_QUERY,

para que me muestre el explorador de soluciones, también podemos directamente  llamar a SAVE_QUERY, sin preguntar si esta en un iframe de la consola de pentaho

 

save_action: function(event) {

  var SaveSolution = Settings.GET.SOLUTION;
   var SavePath = Settings.GET.PATH;
   var SaveName = Settings.GET.ACTION;

   if (SaveSolution == undefined || SavePath == undefined || SaveName == undefined) {
               this.save_query(event);
          
   } else {
       var nwPath;
       var temp = SavePath.toString();
       if (temp == 'NaN') {
           nwPath = '';
       } else {
           nwPath = Settings.GET.PATH;
       }
       puc.save_to_solution(SaveName, SaveSolution, nwPath, null, true);
   }
    },

image

Al hacer click me re direcciona a save_query, por que las variables no están definidas

 

image

Al hacer click, ya existe valores validos para las variable

- solution

- path

- name

Por ello procedemos a guardarlo sin estar preguntando donde queremos guardarlo.

 

Cualquier consulta no duden en escribir.

Saludos cordiales

3 comentarios:

  1. En la ultima version de saiku que tengo tambien se puede hacer esto?
    uso la version comunity de saiku 3.14 y no permite guardar las consultas
    por que no se ven las carpetas en donde almacenar el archivo
    de antemano gracis por la aydua proporcionada

    ResponderEliminar
    Respuestas
    1. Efectivamente, esta modificación se ha realizado con la versión community y la estructura es la misma

      Eliminar
  2. Ufff me pasa lo mismo de Kalen ayuda!!

    ResponderEliminar