====== 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: {{ :usu:smartgendoc:sgddocperfil.png?600 |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//: {{ :usu:smartgendoc:sgdinforme.png?600 |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//. {{ :usu:smartgendoc:sgdtipodocumento.png?600 |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. {{ :usu:smartgendoc:sgddisenocs.png?400 |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.