Árvore de páginas

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

Se recomienda el uso de BIRT Report Designer para el desarrollo de informes para Fluig. BIRT puede integrarse a Studio o Eclipse (ya instalado para utilizar Fluig Studio, según la Guía de Instalación Fluig Studio), sólo debe instalar el plugin de BIRT. P ara ello es necesario acceder a la opción Ayuda -> Instalar Nuevo Software y seguir los siguientes procedimientos: 

  1. Work with: Seleccionar Indigo.
  2. Búsqueda: Después de enumerar las opciones de BIRT, ingresar Birt en el campo de búsqueda.
  3. Marcar la casilla de selección de Business Intelligence, Reporting and Charting.
  4. A continuación, presionar Avanzar.

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:

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

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

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

Colleague Report.zip


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.

  • En el proyecto Fluig previamente creado, haga clic en el botón derecho del mouse en la carpeta reports, y a continuación en Nuevo -> Informe Fluig.
  • Luego, sólo debe informar el Nombre del informe y hacer clic en Finalizar.

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.

Siga los siguientes pasos:


    • Al crear el nuevo informe, seleccione la perspectiva Report Design y luego la pestaña Data Explorer, haga clic con el botón derecho del mouse sobre el ítem Data Source a continuación, seleccione la opción New Data Source

    Figura 5 - Nuevo Data Source.



    • Al abrir la ventana New Data Source, seleccione la opción Scripted Data Source y defina el nombre dsColleague como Data Source Name a continuación haga clic en el botón Finalizar.

    Figura 6 - Tipo de Data Source.



    • En la pestaña Data Explorer haga clic con el botón derecho del mouse sobre el ítem Data Sets a continuación haga clic en la opción New Data Set como muestra la figura 7. Data Set es una tabla temporal de BIRT en la que se almacenan los datos de Data Source y se renderizan en el informe.

    Figura 7 - Nuevo Data Set.



    • Al abrir la ventana New Data Set defina colleagueDataSet como Data Set Name, haga clic en el botón Next en Output Columns haga clic en el botón Add y agregue todos los registros del DataSet. A continuación haga clic en el botón Finalizar


    Column Name

    Data Type

    Column Alias

    Display Name

    colleagueId

    String

    Vacío

    Vacío

    Login

    String

    Vacío

    Vacío

    colleagueName

    String

    Vacío

    Vacío

    E-mail

    String

    Vacío

    Vacío

    active

    String

    Vacío

    Vacío

    adminuser

    String

    Vacío

    Vacío

    Figura 8 - Columnas del Data Set.



    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:


      • Selecione la pestaña Data Explorer, a continuación haga clic con el botón derecho del mouse en el ítem Report Parameters, seleccione la opción New Parameter. 

      Figura 9 - Parámetros del Informe.



      • La figura 10 muestra la ventana de inclusión de parámetros.

      Figura 10 - Configuración de parámetros.


      Al abrir la ventana New Parameter incluya los siguientes parámetros:


      Matrícula

      Campo
      Valor
      Name Matrícula
      Prompt text Matrícula del Usuario o "*" para mostrar todos
      Data type String
      Display type Text Box
      Is Required true


      Muestra Usuarios

      Campo
      Valor
      Name paramEnable
      Prompt text Mostrar usuarios
      Data type String
      Display type List Box
      Is Required true

      Selection Values

      Value
      Display Text
      * Todos
      true Activos
      false Inactivos


      Ordenar Por

      Campo
      Valor
      Name paramSort
      Prompt text Ordenar por
      Data type String
      Display type List Box


      Selection Values

      Value
      Display Text
      c.colleaguePK.colleagueId Matrícula
      c.collegueName Nombre
      c.login Login


      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.

      BIRT renderiza el informe a través de la ejecución de sus eventos, son muchos los eventos proporcionados por BIRT, en este ejemplo se utilizarán:

      • initialize: primer evento activado por BIRT, se recomienda utilizar este evento para importar bibliotecas e inicializar variables;
      • beforeOpen: evento activado, antes de BIRT abrir la conexión con la fuente de datos (Data Source);
      • fetch: evento activado por BIRT después de buscar cada registro en el Data Set y antes de aplicar los filtros y los campos calculados.

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



        • Seleccione la pestaña Script en la página del informe y a continuación seleccione el evento initialize, incluya el siguiente código como muestra la figura 11:
        importPackage(Packages.com.datasul.technology.webdesk.dataset.service);
        importPackage(Packages.com.datasul.technology.webdesk.dataset);
        importPackage(Packages.com.datasul.technology.webdesk.search.controller);
        importPackage(Packages.java.util);
        var count = 0;
        var dataset = null;
        
        

        Figura 11 - Evento initialize.




          • El código anterior importa las bibliotecas Java ™ y la biblioteca proporcionada por Fluig para consultar los datos de productos, y además realizar la inicialización de las variables utilizadas en el informe.

            Detalles sobre el código:

              • importPackage: comando responsable de la importación de bibliotecas Java™.
              • Package.java.util: biblioteca responsable de las Clases utils de Java™.
              • Packages.com.datasul.technology.webdesk.dataset.service: biblioteca ofrecida por Fluig para consultar la base de datos del producto.




        • Seleccione la pestaña Data Explorer, abra el ítem Data Sets y haga clic en colleagueDataSet, a continuación haga clic en la pestaña Script y luego seleccione el evento beforeOpen e incluya el siguiente código, como se muestra en la figura 12.
        try{
        	var factory = DatasetFactory.getInstance(${WKCompany});
        	var constraints = new Array();	
        	var sortingFields = new Array();
        	var i = 0;		
        	 
        	//Filtra sólo por la matrícula del colaborador informado
        	if(params["Matricula"].value != null &amp;&amp; params["Matricula"].value != "*") {		
        		constraints[i] = factory.createConstraint("colleaguePK.colleagueId", params["Matricula"].value, params["Matricula"].value, ConstraintType.MUST);
        		i++;
        	}
        	
        	//Filtra activos si está seleccionada
        	if(params["paramEnable"].value != null &amp;&amp; params["paramEnable"].value != "*"){
        		constraints[i] = factory.createConstraint("active", params["paramEnable"].value, params["paramEnable"].value, ConstraintType.MUST);
        		i++;
        	}
        	
        	//Ordena según la selección
        	if(params["paramSort"].value != null &amp;&amp; params["paramSort"].value != "*"){
        		sortingFields[0] = params["paramSort"].value;
        	}	
        	
        	//Dataset
        	dataset = factory.getDataset("colleague", null, constraints, sortingFields);
        	
        }catch (e) {
        }finally {
        }
        

        Figura 12 - Evento BeforeOpen.


        • El código anterior presenta la consulta del informe a través de la consulta por dataset e incluye los filtros de la solicitud de acuerdo con los parámetros definidos por el usuario.

          Detalles sobre el código:

          • ${WKCompany}: TAG ofrecida por Fluig, devuelve el código de la empresa en la cual el usuario está autenticado;
          • params["Matricula"]: parámetro de informe, devuelve el código de la matrícula definido por el usuario;
          • params["paramEnable "]: parámetro de informe, devuelve el tipo de usuario;
          • params["paramSort "]: parámetro de informe, devuelve el modo de ordenar;


        • Para incluir el resultado de la consulta en el Data Set y  formatear los datos del informe, seleccione el evento fetch en el área de Script e incluya el siguiente códigocomo se muestra en la figura 13.
        if (dataset != null) {
        	if (count <	dataset.rowsCount){
        		//instala el objeto de la línea
        		row["colleagueId"] = dataset.getValue(count, "colleaguePK.colleagueId");
        		row["login"] = dataset.getValue(count, "login");
        		row["colleagueName"] = dataset.getValue(count, "colleagueName");
        		row["mail"] = dataset.getValue(count, "mail");
        		
        		if(dataset.getValue(count, "active") == true){
        			row["active"] = "Sí";
        		}else{
        			row["active"] = "No";
        		}
        		
        		//Actualiza el contador  
        		count++;
        		return true;
        	}
        	return false;
        }

        Figura 13 - Evento fetch.



        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.


          • Seleccione la pestaña Data Explorer, haga clic con el botón derecho del mouse en el ítem Data Source y a continuación, seleccione la opción New Data Source como se muestra en la figura 14.

            Figura 14 – Nuevo Data Source



          • Al abrir la ventana New Data Source, seleccione la opción JDBC DataSource y defina el nombre JDBC-DataSource como Data Source Name a continuación, haga clic en el botón Next, como muestra la figura 15.

            Figura 15 – Tipo Data Source



          • En la siguiente ventana se debe configurar la conexión a la base de datos. 

            En el campo Driver Class seleccione el driver de conexión a la base de datos, en este caso, la conexión se realizará a la base MySQL®. Si el driver necesario no está en la lista, simplemente debe agregarlo haciendo clic en Managed Drivers...

            Informe también los valores de Database URL, User Name Password de acuerdo a la base de datos elegida, como muestra la figura 16.

            Figura 16 – Configuración de la conexión con base de datos.



          • En la pestaña Data Explorer haga clic con el botón derecho del mouse sobre el ítem Data Sets a continuación, haga clic en la opción New Data Set.

            Figura 17 – Creación del Nuevo Data Set.



          • Seleccione  DataSource creado (JDBC-DataSource), en el campo Data Set Type seleccione SQL Select Query, informe un nombre para el  Data Set y haga clic en next, como muestra la figura 18.

          Figura 18 – Configuración del Data Set.



          •  En la siguiente pantalla informe a SQL que busca los datos en la base de datos, en este ejemplo, se buscarán los volúmenes de la empresa autenticada en TOTVS Fluig Plataforma.

          Figura 19 – Creación de Query SQL


          • El siguiente Query busca en la base de datos todos los volúmenes de la empresa del usuario autenticado en TOTVS Fluig Plataforma, este código se obtiene a través de la TAG ${WKCompany}.

          SELECT vol_fisic.CD_VOL_FISIC,
                   vol_fisic.COD_EMPRESA,
                   vol_fisic.NOM_DIR_FISIC,
                   vol_fisic.ID_TIP_VOL_FISIC
          FROM vol_fisic
          WHERE vol_fisic.COD_EMPRESA = ${WKCompany}

          Nota

          Puede ocurrir algún error al finalizar la creación del Data Set ya que la TAG  ${WKCompany} no existe en el contexto de BIRT. La siguiente figura muestra el error debido al uso de la TAG, se trata de un error de sintaxis en SQL e indica que ${WKCompany} no es un comando SQL. Pero cuando el informe se ejecuta en Fluig, devuelve el código de la empresa normalmente, así la TAG se reemplazará por el código de la empresa del usuario autenticado en TOTVS Fluig Plataforma, corrigiendo el error de sintaxis..

          Figura 20 – Error de Birt por el uso de la TAG ${WKCompany}


          Atención

          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.

          Figura 21 – Informe en blanco.

          En la pestaña Pallets se pueden incluir varios componentes de visualización y renderización de datos entre ellos se encuentran:

          • Label: Texto corto y estático.
          • Text: Texto largo se puede formatear con TAG’s HTML.
          • Dynamic Text: Texto dinámico proveniente del Data Set.
          • Image: Inclusión de imágenes.
          • Grid: Formateador de datos en Grid.
          • Table: Tabla de datos.
          • Chart: Gráficos de torta, línea, tubo, etc.


            • Es posible incluir imágenes de internet, incluir imágenes de archivo o incluso integrar la imagen en XML del informe. En este ejemplo, se utilizará una imagen adjunta para posteriormente mostrar cómo publicar informes con adjuntos.

              Arraste un componente Image en el informe, al abrir la ventana Edit Image Ítem, seleccione la opción Image file in shared resources, seleccione el archivo de imagen en la opción Enter resource file e a continuación, haga clic en el botón Insert.

              Figura 22 – Componente Image.



            • Arraste un componente Text en el informe, al abrir la ventana Edit Text Item seleccione la opción HTML y en el área de texto incluya la siguiente información formateada en HTML:

            <br>
            <a href="http://www.fluig.com/">http://www.fluig.com/</a>
            <br><b>E-mail:</b> <a href="mailto:[email protected]">[email protected]</a>
            <br><b>Telefone:</b> 0800 882 9191
            <br>
            • A continuación haga clic en el botón OK como muestra la figura 23.

            Figura 23 - Componente Text.



            • Arraste un componente Label en el informe, haga doble clic sobre el componente incluido  e ingrese Informe de Usuarios, en la pestaña Property Editor - Label -> General defina el formato de label, como muestra la figura 24.

             

            Figura 24 - Título del informe.



            • Arraste un componente Table, al abrir la ventana Insert Table defina 6 columnas y 1 detalle y, haga clic en el botón OK como muestra la figura 25.

            Figura 25 - Configuración de la Tabla.



            En la tabla agregada al informe incluya un componente Label para cada columna de la línea Header Row defina los siguientes valores:

            • Matrícula.
            • Nombre.
            • Login.
            • E-mail.
            • Activo.
            • Administrador.

            Formatee las labels incluidas definiendo el color de la fuente y el color del fondo como muestra la figura 26.

            Figura 26 - Título de las Columnas.



            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.


              Para ello, haga clic sobre la carpeta del informe con el botón derecho del mouse y presione Exportar.

              Figura 28 – Exportación de Informe.


              Nota

              Los adjuntos se exportan junto con el informe. En la exportación, el archivo .rptdesign se identifica automáticamente como archivo principal, y los otros archivos se clasifican como adjunto.


              • En la pantalla de Exportación, haga clic sobre Expotar al servidor Fluig y a continuación, presione Avanzar.


                Figura 29 – Exportación de informe.



              • En la pantalla Exportar Informe, es necesario informar el nombre del Servidor, identificar si será la publicación de un Nuevo Informe, definir el nombre del informe, la Carpeta de Destino (como en la imagen se informó el código de la carpeta de destino) y, a continuación, mencionar el tipo de Versión (como se está realizando una nueva publicación, se debe seleccionar Mantener Actual).

                Figura 29 – Exportación de informe.



              • En la carpeta Informe de la Navegación de Documentos se podrá observar que el informe se publicó con éxito.

              Figura 29 – Publicación de informe.



              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

              La herramienta de visualización de informe de Fluig posee varias funcionalidades:

              • Verificar Indice: Si el informe desarrollado posee índice es posible ponerlo en la lista.
              • Ejecutar informe: Permite que el informe se ejecute nuevamente.
              • Exportar datos: Exporta los datos generados del informe en archivo, permitiendo seleccionar las columnas deseadas y el separador de datos.
              • Exportar informe: Convierte los datos del informe en diferentes formatos de archivos: Microsoft® Excel®, PostScript®, PDF, Microsoft® Word e Microsoft® Power Point®, permite también la selección de páginas que se exportarán.
              • Imprimir informe: Imprime informe seleccionando las impresoras instaladas en el ordenador del usuario autenticado y le permite imprimir en formato DF o HTML.
              • Imprimir informe en el servidor: Imprime informe desde las impresoras instaladas en el servidor de Fluig.
              • Navegación de páginas: permite navegar entre las páginas del informe.

              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

              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:

              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:

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

              • Nombre del Dataset: Nombre del servicio de datos del formulario;
              • Campos: Devuelve sólo los campos recibidos en el array informado. Si es null, devuelve todos los campos.
              • Constraints: Vector con las condiciones de búsqueda de Dataset. En cada condición de búsqueda (constraint) se debe informar el nombre del campo del formulario que se filtrará, el rango de valores inicial y final y el tipo de Constraint. Los tipos pueden ser:
                • MUST: Indica que todos los registros del Dataset deben satisfacer esta condición.
                • SHOULD: Indica que los registros del Dataset pueden o no satisfacer esta condición. Este tipo es más común cuando se necesita que un mismo campo tenga valores A o B (donde cada uno será una constraint SHOULD).
                • MUST_NOT: indica que ninguno de los registros puede satisfacer la condición.
                • Orden: Vetor con la lista de campos que se utilizará para ordenar los registros en el Dataset.

              La fuente del ejemplo citado anteriormente se puede bajar del siguiente link:

              Customer CardIndex.zip

              Búsqueda de datos de Formulario con filtro por fecha

              Para realizar consultas a través de Dataset con filtros del tipo Fecha, es necesario antes guardar el campo de la ficha en el formato aaaa/mm/dd (año/mes/día)  para que se pueda realizar la búsqueda a través de Dataset.

              Ejemplo de consulta:

              //Instala las constraints para consulta
              var factory = DatasetFactory.getInstance(${WKCompany});
              //Filtra Clientes de 1 a 5
              var c1 = factory.createConstraint("campo_data", "2010/01/25", "2010/05/02", 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);