Manual de instalación de Viafirma Documents

Configurar un informe

Para añadir un informe hay que añadir una subcarpeta en la carpeta documents-home/reports que contenga un JSON con el nombre report.json que contenga los siguientes campos:

{
"code": "{si se indica debe coincidir con el nombre de la subcarpeta}",
"description": "{nombre descriptivo del informe}",
"queryOracle":"SELECT last_update,code,title,user_code,status FROM vd_message_view where last_update BETWEEN TO_DATE('$LASTMONTH', 'DD/MM/YYYY') AND TRUNC(sysdate)",
"queryPostgres":"SELECT last_update,code,title,user_code,status FROM vd_message_view where last_update BETWEEN TO_DATE('$LASTMONTH', 'DD/MM/YYYY') AND current_date",
"columnNames":"Fecha;Título;Usuario;Estado",
"mailTo": "{email a quien se enviará el informe}",
"mailSubject":"{asunto del email}",
"mailBody":"{cuerpo del email}"
}
atributo descripción
code si se indica debe coincidir con el nombre de la subcarpeta; es opcional
description nombre descriptivo del informe; es opcional
queryOracle query oracle
queryPostgres query postgres
columnNames Fecha;Título;Usuario;Estado; es opcional
mailTo email a quien se enviará el informe; permite varias direcciones separadas por coma; es opcional
mailSubject asunto del email; es opcional si no se indica ningún destinatario
mailBody cuerpo del email; es opcional si no se indica ningún destinatario

Para las querys tenemos disponibles las variables $LASTDAY$,$LASTMONTH$,$LASTYEAR$ (se corresponden con ayer, el mes pasado y el año pasado) y otras variables como: $FIRSTDAYMONTH, $LASTDAYMONTH$, $FIRSTDAYPREVIOUSMONTH$, $LASTDAYPREVIOUSMONTH$, $FIRSTDAYYEAR$, $TODAY$

Una vez indicado este JSON hay que configurar el nuevo informe en el fichero documents-home/quartz-config.xml

 <schedule>
        <job>
            <name>ExampleReportJob</name>
            <group>DocumentsGroup</group>
            <description>Example Report Job</description>
            <job-class>com.viafirma.mobile.services.jobs.ReportsJob</job-class>
            <job-data-map>
                <entry>
                    <key>code</key>
                    <value>example (nombre de la carpeta)</value>
                </entry>
            </job-data-map>         
        </job>
        <trigger>
            <cron>
                <name>ExampleReportTrigger</name>
                <job-name>ExampleReportJob</job-name>
                <job-group>DocumentsGroup</job-group>
                <cron-expression>0 0 0 0/1 * ?</cron-expression>
            </cron>
        </trigger>
    </schedule>

Como se puede ver en el XML hay que indicar en el job el código y la base de datos que puede ser (oracle o postgres). Una vez configurado el job hay que indicar cada cuanto tiempo se quiere crear el informe en el trigger indicando la expresión del cron en el campo cron-expression

Los informes se generan en la misma carpeta donde está configurado el fichero report.json en formato CSV. Si se indica en el json valores para el atributo mailTo se enviará un correo con el informe a la dirección indicada (o direcciones si se indican más de una dirección separada por comas)