Soporte de APIs OData V4

La plataforma Sofia2 ha incorporado un nuevo API de ontología de tipo ODATA V4. Open Data Protocol (OData) es un protocolo abierto que permite la creación y el consumo de API REST de una manera simple y estándar.

odata

 

OData tratar de dar solución a la exposición de orígenes de datos, relacionales o no, a través de un Servicio Web ejecutando operaciones con un lenguaje “estándar” basándose en:

  • La creación de un sistema uniforme de representación de datos estructurados a través de Atom o JSON (JavaScript Object Notation)
  • La utilización de convenciones URL uniformes tanto para la navegación, filtrado, orden y paginación de datos (entre otros)
  • La creación de operaciones uniformes dirigidas por dirección mediante las acciones GET, POST, PUT y DELETE.

Seguir leyendo “Soporte de APIs OData V4”

Soporte de APIs OData V4

Nuevas Funcionalidades en versión Sofia2 Social Media Edition

Con la nueva organización por proyectos de la plataforma, uno de los tipos de proyecto que recoge son los de tipo Social Media. Estos proyectos tienen una pantalla de inicio adaptada a sus necesidades con accesos directos a las funcionalidades más características como procesamiento analítico, visualización y redes sociales: Seguir leyendo “Nuevas Funcionalidades en versión Sofia2 Social Media Edition”

Nuevas Funcionalidades en versión Sofia2 Social Media Edition

Nuevos Motores de Reglas y Scripting sobre lenguajes R y Python

A partir de la última Release se han añadido a las capacidades de Sofia2 la posibilidad de definir las Reglas y los Scripts en R y Python. Este avance nos permite aprovechar el conocimiento y librerías sobre estos dos lenguajes para crear complejas lógicas y se acerca más a la línea de trabajo de Analytics.

De la misma forma que como se estaba realizando anteriormente, los Scripts pueden invocarse ante una inserción, como resultado de una Regla CEP o bien planificarse. Además se incluyen APIs en R y Python para insertar/extraer información de la base de datos de tiempo Real con los comandos insertIntoBDTR y getFromBDTR.

La manera de utilizar estos métodos es la siguiente:

En R dentro de la API ApiSofiaR:

· getFromBDTR(ontology, queryFind = mongo.bson.empty(), sortQuery = mongo.bson.empty(), fieldsQuery = mongo.bson.empty(), limitQuery = 0L, skipQuery = 0L) – Solo es estrictamente necesario incluir la ontología, el resto son parámetros opcionales para realizar la consulta.

· insertIntoBDTR(mongoHost, mongoUser, mongoPass, ontology, mongoInstance) – En este caso es necesario conocer la información sobre la conexión a la BDTR, el nombre de la ontología y la instancia a Insertar. Hay que tener en cuenta que en R se debe convertir la instancia a formato bson previamente:

data_bson<-lapply(data_json,function(x) mongo.bson.from.JSON(x))

insertIntoBDTR("host", "user", "pass", "ontology", data_bson)

En python dentro de la API ApiSofiaPython:

· getFromBDTR(ontology, queryFind = None, sortQuery = None, fieldsQuery = None, limitQuery = 0, skipQuery = 0)– Al igual que en R sólo es estrictamente necesario incluir la ontología, el resto son parámetros opcionales para realizar la consulta.

· insertIntoBDTR(mongoHost, mongoUser, mongoPass, ontology, mongoInstance) – Es necesario conocer la información sobre la conexión a la BDTR, el nombre de la ontología y la instancia a Insertar. Además, permite realizar inserciones de varias instancias, por ejemplo: insertIntoBDTR("host", "user", "pass", "ontology", [{key1:value1},{ key2:value2},{ key3:value3},{ key4:value4}])

Nuevos Motores de Reglas y Scripting sobre lenguajes R y Python

Actualización del visor de scripts

Con la nueva release se ha actualizado el editor del motor de scripting. Además del cambio de tema del editor, se remarcan las palabras clave de cada lenguaje, lo cual resulta muy práctico ahora que se pueden realizar scripts en groovy, python y R.

Algunos de los comandos y atajos del teclado más útiles son:

Modo Pantalla Completa – Coloque el cursor en el área de texto y pulse la tecla "F11" o "Esc" para cambiar o salir del ""modo de pantalla completa".

Selección múltiple – Mantenga presionada la tecla Ctrl / Cmd mientras selecciona para obtener múltiples selecciones.

Selección rectangular . Mantenga pulsada la tecla Alt para seleccionar un bloque de columnas alineadas de texto.

Ctrl + Z – Deshacer el cambio anterior

Ctrl + Y -Rehacer

Ctrl + F – Buscar

Ctrl + G – Buscar siguiente

Shift + Ctrl + G – Encuentra anterior

Shift + Ctrl + F – Reemplazar (Ejecutar este después de buscar)

Shift + Ctrl + R – Reemplazar todo (Ejecutar este después de buscar)

Para más información http://codemirror.net/doc/manual.html#commands

Actualización del visor de scripts

API Script para replicar información entre diferentes instancias Sofia2

Se ha creado una nueva API Script APIReplicationRest en el motor de scripting que permite generar/replicar instancias mediante Rest. Contiene dos comandos insertInstance e insertInstanceProxy, dependiendo de si la conexión tiene proxy, necesita autenticación o no.

insertInstance

La sintaxis que utiliza es la siguiente:

apireplicationrest.insertInstance(SERVICE_URL, TOKEN, KP_INSTANCE,ONTOLOGY_NAME,ONTOLOGY_INSTANCE);

Un ejemplo de uso sería como el siguiente:

En este caso, para un script de tipo Ontología se generaría una réplica de esa instancia.

insertInstanceProxy

Tendremos que conocer los datos de conexión del proxy así como la autenticación en caso de que fuera necesario. La sintaxis que utiliza es la siguiente:

apireplicationrest.insertInstanceProxy(SERVICE_URL, PROXY_SERVER, PROXY_PORT, PROXY_USER, PROXY_PASS, TOKEN, KP_INSTANCE,ONTOLOGY_NAME,ONTOLOGY_INSTANCE);

Un ejemplo de uso sería como el siguiente:

A diferencia del caso anterior, en este ejemplo la conexión tiene proxy y se inserta una instancia nueva en la ontología.

Combinando estas operaciones con las existentes en el API Sofia del motor de scripting, esta funcionalidad abre camino a múltiples aplicaciones cuando se necesita replicar la información a otros sistemas.

API Script para replicar información entre diferentes instancias Sofia2

Soporte Informes multiformato

En la versión 2.19 de la plataforma Sofia2 se ha añadido un soporte para la generación de Informes sobre el potente motor de Informes JasperReports.

JasperReports está considerada como una de las mejores soluciones open-source para generar reportes. Permite generar informes de manera flexible y personalizable en formatos PDF, HTML, Word, OpenOffice, Excel…

Desde la consola centralizada y, dependiendo del perfil del usuario se habilitarán las opciones a las que se tenga acceso.

Solo los usuarios con rol administrador o autorizados podrán cargar plantillas en la plataforma. Para ello primero se deberá diseñar una estructura del informe compatible con el motor.

JasperReports se usa comúnmente con iReport Designer, un constructor / diseñador de informes visual, poderoso, intuitivo y fácil de usar. Este instrumento permite que los usuarios desarrollen visualmente informes complejos con cartas, imágenes, subinformes…iReport está además integrado con JFreeChart, una de la biblioteca gráficas open source más difundida.

Una vez realizado el diseño se podrá cargar desde la consola a Sofia2 y recuperará la información de una ontología existente.

A partir de un diseño, se pueden generar tantos informes como se desee desde la sección Generación de Informes, donde, además se puede consultar/editar y eliminar las plantillas a las que se tenga acceso.

En caso de que se trate de un informe parametrizado, tras pulsar sobre el botón de generación del informe, se solicitará mediante un diálogo los parámetros necesarios para su ejecución.

Una vez generado el informe, si es PDF se visualizará desde el navegador y el resto de formatos se descargará para poder revisar el resultado del informe.

Se generan en múltiples formatos:

Si se pone de carácter público, cualquier usuario tendrá acceso al informe generado. De otra forma, sólo el propietario (o usuarios administradores) podrá descargar o eliminar el informe.

Los informes generados se pueden almacenar en la plataforma. Para ello se accede desde la sección Mis Informes desde donde se podrán buscar todos los informes que estén marcados como públicos o a los que se tenga acceso.

Con el perfil de Administrador se pueden descargar/eliminar informes y asignar permisos de consulta a otros usuarios. La opción Autorización Informes no estará disponible para usuarios con rol Usuario o Colaborador.

Soporte Informes multiformato

Pentaho report designer: una solución para crear informes a partir de mongodb

Pentaho Report Designer(PRD) es una herramienta de reporting fácil de utilizar y con multitud de aplicaciones. Los informes que genera se dividen en secciones o grupos de datos en los que los elementos del informe pueden ser posicionados. Esta forma de trabajar tiene algunas limitaciones, que se pueden superar con el uso de subinformes.

Pentaho Report Designer nos permite trabajar con múltiples orígenes de datos. (JDBC, Olap4J, Pentaho Analysis, Pentaho Data Integration, XML) incluido el metadata que tengamos definido en nuestro sistema. En particular y para este ejemplo vamos a utilizar una colección de MongoDB. El resultado de los informes que hemos diseñado se puede ver con las opciones de previsualización, y nos permite la salida de resultados en diferentes formatos como PDF, HTML, XLS, RTF y CSV.

Para realizar un informe necesitamos:

  • MongoDB: Necesitaremos que esté arrancada la base de datos y saber la dirección y el puerto.
  • Kettle: Una versión para usuario conocida como Spoon desde donde descargaremos la información de MongoDB.
  • Pentaho Report Designer: la herramienta para crear informes que vamos a mostrar en este post.

Primer paso: Generar una transformación en Kettle de una colección de MongoDB

En la entrada Cómo generar una transformación en Kettle de una colección de MongoDB hemos visto como crear un fichero de extensión .ktr desde el que enlazaremos la información recuperada de Mongo DB con nuestro informe.

Segundo paso: Generar un informe simple con PRD

Arrancamos la herramienta y seleccionamos Report Wizard, una versión más sencilla que luego se puede adaptar a nuestras necesidades y gustos.

Seguimos el asistente y seleccionamos el fichero .ktr que hemos generado con Spoon. Debemos indicar el último paso del proceso, en otro caso, no utilizaremos toda la información que hemos procesado. Informamos los campos que se van a utilizar en el report y elegimos el formato y el estilo con el que se van a mostrar.

Siguiendo el resto de los pasos se creará una plantilla que podremos editar a nuestro gusto y conveniencia. Además, tenemos muchas posibilidades para tratamiento de la información y su visualización.

Si pulsamos en el icono de previsualización podemos hacernos una idea de la forma que va adquiriendo nuestro informe. Incluimos un pie chart al final del informe que muestre la proporción de distintas calificaciones por provincia.

Tercer paso: Añadir un parámetro al informe

Necesitaremos un fichero XML con los distintos valores que puede adquirir el parámetro. Se puede realizar también desde Kettle (ver cómo).

Desde el menú lateral de la derecha en Data, seleccionamos el fichero XML. En este ejemplo utilizaremos este:

Incluimos la query /Rows/Row para seleccionar todos los valores del parámetro.

En el mismo menú lateral, pulsamos le icono para enlazar el parámetro con el fichero XML.

Enlazamos ahora el parámetro con el informe, seleccionando en nuestro Data Set la opción de editar parámetro.

Con este último paso tenemos terminado nuestro informe parametrizado. Podemos guardar el resultado en diferentes formatos como PDF, HTML, XLS, RTF y CSV.

Sulfato1 sulfato2

Para más información:

Pentaho:Create a Parameterized Report with MongoDB

Pentaho report designer: una solución para crear informes a partir de mongodb