Tabla de Contenidos
SmartGenDoc - guardar PDFs en carpetas o servidores ftp
Cambios base de datos
Hay que llamar al procedimiento CREA_GEN_DOC_PERFIL
para crear un registro en la tabla DOC_PERFIL
, que es la base para generación de PDFs desde SmartGenDoc.
Para facturas de venta se podría llamar así en el trigger after update de CAB_FACTURA_VENTA
:
IF (NEW.CONFIRMADA = 'S' AND (M_CLAVE IS DISTINCT FROM 'CPA' OR EXISTS (SELECT 1 FROM TERCERO_FT WHERE TIPO_TERCERO = NEW.TIPO_TERCERO AND COD_TERCERO = NEW.COD_TERCERO AND CLAVE = 'PORTAL' AND VALOR LIKE 'S%'))) THEN EXECUTE PROCEDURE CREA_GEN_DOC_PERFIL 'CAB_FACTURA_VENTA', NEW.NRO_FACTURA, NULL, NEW.FECHA_REGISTRO RETURNING_VALUES :M_NRO_DOC;
El primer campo es la tabla principal del documento a imprimir, a la que tiene que existir exáctamente una foreign key desde la tabla DOC_PERFIL
. En este ejemplo la foreign key es del campo DOC_PERFIL.NRO_FRA_VENTA
.
Además tiene que existir exáctamente un registro en TIPO_DOCUMENTO
con ciertas características que se van a explicar en el siguiente párrafo.
Cuando se ejecuta el procedimiento CREA_GEN_DOC_PERFIL
nos crea un registro como el siguiente:
La UUID la genera el proceso SmartGenDoc y esta UUID única va a ser el nombre del fichero.
El registro lleva un campo no visible, CREAR_INFORME
, que en este momento está en N
y después de generar el informe se cambia a S
.
Configuración en SmartOffice
En primer lugar tenemos que abrir el informe que queremos generar con SmartGenDoc y seleccionar el menú Edición/Información informe:
Nos apuntamos el código del informe (QRFACTURAVENTAUGA
) y el nombre del procedimiento (UGA_IMPRES_FACTURA_VENTA
).
Ahora tenemos que crear la información clave para la generación del documento, que es el tipo de documento. Se define en la tabla TIPO_DOCUMENTO
a la que accedemos desde el menú Configuración/Web/Tipos de documentos.
Tiene que haber exáctamentente un código con las siguientes características:
Campo | Valor |
---|---|
Externo | Tiene que ser N . |
Campo en DOC_PERFIL | El campo de DOC_PERFIL que enlaza por foreign key a la tabla principal del informe. |
Campo informe | Se explica abajo. |
Es tipo para activos | Tiene que ser N . |
Cód. informe | El código del informe que hemos apuntado arriba. |
Carpeta local | El destino de los documentos. Se tiene que poner algo en este campo o en el siguiente. |
Cód. servidor interno | Los datos del servidor ftp al que se tienen que enviar los documentos. |
Carpeta interna | Se puede añadir una subcarpeta para el servidor ftp. |
El Campo informe se tiene que llenar con los valores para los parámetros del procedimiento base del informe, en el ejemplo UGA_IMPRES_FACTURA_VENTA
, que hemos apuntado arriba. Este procedimiento necesita 7 parámetros, que tenemos que poner separado por punto y coma:
Parámetro | Valor | Descripción | |
---|---|---|---|
P_FEC_INI | NULL | Se asigna NULL al parámetro. | |
P_FEC_FIN | NULL | ||
P_NRO_FRA_INI | NRO_FRA_VENTA | Se asigna el valor del campo DOC_PERFIL.NRO_FRA_VENTA al parámetro. | |
P_NRO_FRA_FIN | NRO_FRA_VENTA | Se asigna el valor del campo DOC_PERFIL.NRO_FRA_VENTA al parámetro. | |
P_LOTE | NULL | ||
P_SIM | 1 | Se asigna 1 al parámetro. | |
7 | N | FrasMail=NULL | Se asigna NULL al parámetro. Además se define en el dataset CS el campo FrasMail con el mismo valor. |
El parámetro 7 es especial, porque además de asignar un valor al parámetro del procedimiento define el valor del campo FrasMail
del dataset CS
. Esto es importante porque se usa este campo CS.FrasMail
en el diseño del informe y hay que definirlo.
Del mismo modo podemos definir campos adicionales para el dataset CS, que no estén entre los parámetros para el procedimiento, como es el campo número 8, IMPLOGO=S
, que define el valor S
para el campo CS.ImpLogo
, que también se usa en el informe.
HAY QUE TOMAR EN CUENTA QUE DESDE SMARTGENDOC NO HAY INTERACCIÓN CON EL USUARIO, POR LO CUAL NO SE PUEDEN CONTESTAR A PREGUNTAS DESDE EL DISEÑO DE UN INFORME (MESSAGEBOX). CUALQUIER PREGUNTA SE CONTESTARÁ AUTOMÁTICAMENTE CON “0”.
Fichero con datos descriptivos (meta-datos)
Además del mismo fichero PDF se puede generar un fichero adicional descriptivo para cada documento.
La generación de este fichero adicional se controla con el procedimiento GEN_META_DOC_PERFIL
. El procedimiento recibe como parámetro el número del perfil de documento (DOC_PERFIL.NRO_DOC). Si el procedimiento devuleve nulo en S_DATOS, no se creará el fichero adicional.