Herramientas de usuario

Herramientas del sitio


usu:smartgendoc:sgd_genpdf_conf

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: Perfil de documento

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

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. Diseño CS

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.

usu/smartgendoc/sgd_genpdf_conf.txt · Última modificación: 2023/06/26 19:32 por stefan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki