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.
...
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.
...
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:
...
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.
...
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.
...
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.
...
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:
...