Histórico da Página
Índice
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
Objetivo
El propósito de esta guía es describir el desarrollo, la publicación y la visualización de informes en TOTVS Fluig Plataforma,y para facilitar su comprensión se detallará un ejemplo de informe de usuario.
Entorno de desarrollo
Para el desarrollo de informes es necesario tener Java™ JDK/JRE superior a 1.6. Dirección para download: http://java.sun.com/javase/downloads/index.jsp.
TOTVS Fluig Plataforma utilizar BIRT como motor de ejecución de informes, por eso para el desarrollo de informes se debe utilizar el estándar y la metodología de BIRT.
...
BIRT Report Designer cuenta con varias funcionalidades que ayudan en el desarrollo de informes. Entre ellas se destacan: el ajuste de layout, la configuración de acceso a datos y el formateo de informe.
Seguridad Entorno SaaS
En caso de ejecución de Fluig en entorno SaaS, no se recomienda el uso de informes, ya que se pueden crear informes que devuelvan información de otras empresas a través de la consulta JPQL o Dataset. Para garantizar la no ejecución, se debe definir el valor true para la variable SaaS ubicada en: %JBOSS_HOME%\jboss-as-7.2.0.Final\standalone\configuration\standalone.xml. Ej:
Bloco de código |
---|
<simple name="java:global/webdesk/SaaS" value="true"/> |
...
Conexión directa a la base de datos
Se pueden publicar informes que se comuniquen directamente con la base de datos.
Utilice en su informe las siguientes configuraciones prestando atención a los valores de las propiedades 'odaDriveClass' y 'odaURL'.
Para realizar una conexión directa con la base de datos SQLServer es necesario utilizar el siguiente estándar:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<property name="odaDriverClass">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="odaURL">jdbc:sqlserver://IP:1433;databaseName=DATABASE</property> |
Para realizar una conexión directa con la base de datosMySQL es necesario utilizar el siguiente estándar:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<property name="odaDriverClass">com.mysql.jdbc.Driver</property> <property name="odaURL">jdbc:mysql://IP:3306/databaseName=DATABASE</property> |
Desarrollo de un informe de Usuarios
A través de BIRT Report Designer se pueden crear varios informes para Fluig, acceder a datos de la base de datos del producto a través de la consulta JPA, JDBC. Es posible acceder a los datos de otros productos por conexión JDBC, Web Service o archivos XML.
Para facilitar la comprensión sobre el desarrollo de informes para Fluig, se mostrará un ejemplo de creación de informes. A continuación se detallan los pasos necesarios para la creación de informe de usuarios, contando con datos proporcionados por Fluig por medio de consultas a través de dataset. La fuente del ejemplo citado se puede descargar desde el siguiente link:
Creación de un nuevo proyecto y un nuevo informe
Abra la herramienta en la que se instaló el plugin de BIRT Report Designer para seguir el paso a paso, en este ejemplo vamos a utilizar Fluig Studio.
...
Figura 1 - Creación de informe en el proyecto Fluig.
...
Configuración de acceso a los datos
Un Data Source es el mecanismo que almacena los datos de conexión con la fuente de datos, por ejemplo, configuraciones JDBC, Web Service, entre otros. En el caso de este informe se utilizará el acceso a los datos a través de Javascript.
...
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Inclusión de parámetros en el informe
Es posible incluir parámetros en el informe que se solicita al usuario antes de su renderización, ayudando al filtro de consulta de datos generando un informe específico. Siga los siguientes pasos:
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TAG's
TOTVS Fluig Plataforma ofrece TAG’s de reemplazo que ayudan al desarrollo y la seguridad de la generación de información del informe, estas son:
• ${WKCompany}: sustituye a la variable por el código de la empresa autenticada en TOTVS Fluig Plataforma.
• ${WKUser}: sustituye a la variable por el código del usuario autenticado en TOTVS Fluig Plataforma.
Las TAG’s son útiles en los casos de información que sólo deben generarse sobre la empresa en la cual el usuario está autenticado, o en informes que muestran sólo información sobre el usuario autenticado en TOTVS Fluig Plataforma.
Completar el Data Set
En el ejemplo que se presenta en este documento se completará el informe a través de datos proporcionados por consultas JPA ingresando a la base de TOTVS Fluig Plataforma, pero se pueden utilizar otros recursos para completar el Data Set: XML, Web Service y JDBC.
...
A través de los eventos se puede desarrollar la lógica de consulta y generación de datos a través del lenguaje de programación JavaScript, también es posible utilizar varios recursos y bibliotecas del lenguaje Java ™.
Deck of Cards | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
|
Obtención de datos por conexión JDBC
Una forma alternativa de obtención de datos para crear informes es el uso de JDBC. Es necesario crear un Data Source que se conecte a la base de datos, en él se almacenarán los datos para la conexión, a través de JDBC a la base de datos.
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nota | ||
---|---|---|
| ||
La creación de informe en Birt usando conexión JDBC exige atención con respecto a la seguridad de la publicación del informe en Fluig, ya que el archivo .rptdesign (XML de informe Birt) deja expuestos los parámetros de conexión a la base de datos, pero el campo contraseña queda oculto con base64. Por este motivo y por la facilidad de búsqueda de información de Fluig, siempre recomendamos crear informes con fuentes de datos a través de Dataset de Fluig o Query JPA. Si la creación de informes utilizando JDBC es necesaria, se recomienda que cuando se publica un informe en Fluig la configuración de permisos se defina como sólo lectura. Los usuarios que poseen permiso de mantenimiento pueden realizar el download de los adjuntos y por lo tanto tendrán acceso a los datos de conexión a la base de datos. |
Formatear la visualización del informe
Se requiere la inclusión de los componentes de renderización del informe. Haga clic en la pestaña Layout para visualizar la página del informe que está en blanco y, a continuación, seleccione la pestaña Palette como muestra la figura 21.
...
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||
|
...
Renderización de datos del Data Set
Seleccione la pestaña Data Explorer y abra colleagueDataSet creado anteriormente y, a continuación arrastre cada ítem del Data Set a la columna Detail Row de la tabla creada anteriormente, como muestra la figura 27.
Figura 27 - Data Set.
Publicación de Informes
Publicación
Al completar el desarrollo del informe, es necesario realizar la exportación del mismo para la navegación de documentos TOTVS Fluig Plataforma.
Deck of Cards | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||
|
Visualizador de Informes
Después de completar la publicación, para poder verla, haga clic en el informe en la carpeta en el cual se hizo la publicación en TOTVS Fluig Plataforma.
Una nueva ventana se abrirá, para iniciar la ejecución del informe de colaboradores desarrollado previamente, se necesita la inclusión de parámetros, defina sus valores y a continuación haga clic en el botón OK .
...
Figura 33 – Informe de Usuarios– Resultado.
El informe deberá mostrar todos los usuarios registrados en TOTVS Fluig Plataforma para la empresa en la cual el usuario está autenticado.
...
Figura 33 – Relatório de Usuários– Resultado.
...
Opciones del visualizador
...
Figura 34 – Funcionalidades de visualizador de informes.
JPA - Funciones de Agregación
Funciones de Agregación
Fluig soporta a través de consultas JPA y su base de datos, el uso de las funciones de agregación, como por ejemplo: AVG, SUM, COUNT, MAX y MIN. Permite también utilizar agrupaciones: GROUP BY y HAVING
Tabla de entidades
La siguiente tabla hace referencia a la relación entre el código de dataset, la entidad de persistencia JPA usada en las consultas, y la tabla correspondiente a la base de datos. Las columnas de las entidades de persistencia son las mismas presentadas en dataset.
Código dataset | Entidad JPA | Tabla base de datos |
AccessLog | AccessLog | HISTOR_ACES |
ActivityDim | ActivityDim | ACTIVITY_DIM_CAP |
advancedProcessProperties | AdvancedProcessProperties | PROPRIED_AVANCAD_PROCES |
businessPeriod | BusinessPeriod | PERIOD_EXPED |
destinationArea | DestinationArea | AREA_DEST |
document | Document | DOCUMENTO |
documentSecurityConfig | DocumentSecurityConfig | CONFIGUR_SEGUR_DOCTO |
FactActivityCost | FactActivityCost | FACT_ACTIVITY_COST_CAP |
FactFlowVolume | FactFlowVolume | FACT_FLOW_VOLUME_CAP |
FactProcesCost | FactProcesCost | FACT_PROCES_COST_CAP |
FactProcesVolume | FactProcesVolume | FACT_PROCES_VOLUME_CAP |
FlowDim | FlowDim | FLOW_DIM_CAP |
globalCalendar | GlobalCalendar | CALEND_GLOBAL |
knowledge | Knowledge | CONOCIMIENTO |
processAttachment | ProcessAttachment | ANEXO_PROCES |
processDefinition | ProcessDefinition | DEF_PROCES |
processDefinitionVersion | ProcessDefinitionVersion | VERS_DEF_PROCES |
processHistory | ProcessHistory | HISTOR_PROCES |
processState | ProcessState | ESTADO_PROCES |
processTask | ProcessTask | TAR_PROCES |
ProcesVersionDim | ProcesVersionDim | PROCES_VERSION_DIM_CAP |
TimeDim | TimeDim | TIME_DIM_CAP |
topic | Topic | ASUNTO |
UserDim | UserDim | USER_DIM_CAP |
workflowProcess | WorkflowProcess | PROCES_WORKFLOW |
Exemplo de Utilização
Bloco de código | ||
---|---|---|
| ||
importPackage(Packages.com.datasul.technology.webdesk.dataset.service); importPackage(Packages.java.util); var qd = null; var rs = null; var rowMap = null; var sqlJpa = ""; qd = new QueryDelegate(); sqlJpa = "SELECT count(d.documentPK.documentId), d.publisherId from Document d WHERE d.documentPK.companyId = ${WKCompany} GROUP BY d.publisherId"; rs = qd.getResultQuery(sqlJpa); var rowMap = rs.get(0); //Busca el valor de Count rowMap.get("d.publisherId"); //Busca el Código del documento rowMap.get("count(d.documentPK.documentId)"); |
...
Acceso a datos de Formularios
Importación de bibliotecas
A partir de la clase DatasetFactory se puede accede a los datos de formularios publicados en Fluig.
Para llenar un informe a través de datos del fichero es necesario importar las siguientes bibliotecas:
Bloco de código | ||
---|---|---|
| ||
importPackage(Packages.com.datasul.technology.webdesk.dataset.service); importPackage(Packages.com.datasul.technology.webdesk.dataset); importPackage(Packages.com.datasul.technology.webdesk.search.controller); |
Devolución de datos del formulario
A través de la clase DatasetFactory es posible buscar datos de formularios, incluir filtros y ordenar. Ejemplo de uso:
Bloco de código | ||
---|---|---|
| ||
//Instala las constraints para consulta var factory = DatasetFactory.getInstance(${WKCompany}); //Filtra Clientes de 1 a 5 var c1 = factory.createConstraint("cod_cli", "1", "5",ConstraintType.MUST); var constraints = new Array(c1); //Ordena el resultado por el nombre del Cliente var sortingFields = new Array("name_cli"); dataset = factory.getDataset("cad_cli", null, constraints, sortingFields); |
...
El ejemplo anterior invoca el método getDataSet pasando algunos argumentos adicionales como parámetros:
...