====== Configuración de SmartPdf para el envío inmediato de documentos ====== ===== Tipos de tareas ===== **Menú //Configuración/Tipos de tareas//** Para cada documento que queremos imprimir tenemos que definir un tipo de tarea distinto, como indica la siguiente imagen. {{ :usu:smartpdf:spdftipotarea.png?600 |Tipos de tareas}} Además del nombre de cada tipo tenemos que definir la longitud de cada campo principal (clave primaria) que pueda tener la tabla detrás de cada tipo. ===== Lista de destinatarios ===== Hay que definir una lista de destinatarios. Lo más fácil es usar una lista **estática** activando la opción correspondiente. {{ :usu:smartpdf:spdflistadestestat.jpg?600 |Lista estática}} /*{{ :usu:smartpdf:spdflistdestestat2.png?600 |Lista estática}}*/ No hace falta añadir ningún registro a esta lista, los registro se añaden automáticamente, por ejemplo al confirmar un contrato. Información avanzada:\\ Cada registro que se añade a esta lista tiene que tener asignado un //Tipo tarea// en el campo correspondiente. El programa de servidor //SmartServicesPdf// escoge todos los registros de esta lista y del tipo de tarea, crea y envía el documento, y marca el registro como enviado en el campo //Fecha enviado//. La ventaja de una lista estática es que sirve para varios tipos de tareas, porque es genérica. Para cada documento a enviar se pueden poner hasta 4 códigos, el código y razón social de un tercero, y lógicamente el correo el. de destino. Si estos campos no son suficientes, por ejemplo porque queremos usar la dirección del cliente en la plantilla del email, entonces tenemos que definir una **lista de destinatario dinámica**. Para el envío inmediato, la instrucción de selección siempre tiene que basarse en select ID, CORREO_E from SS_LISTA_DEST_LIN where COD_LIST = 'El código de la lista' and TIPO_TAREA = 'El código del tipo de la tarea' and FECAH_ENVIADO is null order by ID Un ejemplo sería: SELECT A.ID, A.CORREO_E AS EMAIL_DEST, B.COD_OFERTA, B.RAZON_SOCIAL, B.DESC_OBRA, B.ATENCION_DE, C.DENOMINACION AS DENOMINACION_EMP, C.TELEFONO AS TELEFONO_EMP, C.CORREO_E AS EMAIL_EMP FROM SS_LISTA_DEST_LIN A JOIN CAB_OFERTA_VENTA B ON A.VALOR_1 = B.COD_OFERTA LEFT JOIN TERCERO C ON C.TIPO = B.TIPO_TERCERO_EMP AND C.CODIGO = B.COD_TERCERO_EMP WHERE A.COD_LISTA = 'ENV_INMED' AND A.TIPO_TAREA = 'OV' AND A.FECHA_ENVIADO IS NULL ORDER BY A.ID {{ :usu:smartpdf:spdflistadestdinsel.jpg?600 |Lista dest. dinámica selección}} Para las listas dinámicas también hay que rellenar la pestaña de actualización como se ve en la siguiente imagen. La instrucción de esta pestaña se ejecuta después del envío de cada registro sacado con la selección de la lista de destinatarios. {{ :usu:smartpdf:spdflistadestdinact.jpg?600 |Lista dest. dinámica actualización}} **Hay que tomar en cuenta que normalmente es necesario crear una lista de destinatarios dinámica por cada tipo de tarea que queremos enviar**. ===== Lote ===== Hay que crear un lote para el envío inmediato de documentos. {{ :usu:smartpdf:spdfloteenvioinmediato.jpg?600 |Lote}} Este lote, en el formulario de //Planificación//, que se abre con ''Mayús.+F6'' desde el campo ''Cód. palnificación'', tiene que ejecutarse cada 2 minutos. {{ :usu:smartpdf:spdfplanenvioinmediato.jpg?600 |Planificación}} Para cada tipo de documento que queremos enviar, añadimos una tarea nueva, y luego editamos estas tareas. ===== Tareas ===== {{ :usu:smartpdf:spdftareageneralenvioinmediato.jpg?600 |Tarea}} En cada tarea hay que poner los siguientes datos: - //Cód. lista destinatarios//: la lista de destinatarios definida anteriormente. - //Tipo tarea//: el tipo de esta tarea. - //Parar lote al error//: desactivar. - //Suspender lote al error//: desactivar. **En cualquier momento puede haber solo una tarea de cada tipo de tarea en un lote confirmado.** La pestaña //E-Mail// se configura igual que cualquier lote normal, según las necesidades de la empresa. {{ :usu:smartpdf:spdftareaemailcuerpoed.jpg?600 |Email cuerpo}} Recuerda que se pueden usar los campos de la lista de destinatarios para asignarlos a los parámetros de la plantilla. {{ :usu:smartpdf:spdftareaemailparamsed.jpg?600 |Email parámetros}} ===== Documentos ===== {{ :usu:smartpdf:spdfdocenvioinmediato.jpg?600 |Documentos}} Los documentos se definen de la misma manera como en cualquier lote normal, y como explica la guía de iniciación. Normalmente el documento se va a basar en el procedimiento de impresión del documento de SmartOffice, por ejemplo ''IMPRES_OFERTA_VENTA'', y los parámetros serán los valores de la lista estática (''VALOR_1'', ''VALOR_2'', etc.). Si se ha usado una lista dinámica, lógicamente habrá que usar los campos que devuelve su selección. Ver ejemplo en la imagen arriba. ===== Adaptación base de datos ===== Este paso se realiza en el mantenimiento o bajo presupuesto. Información avanzada:\\ Hay que llamar al procedimiento ''SS_GEN_ENVIO_ESTANDAR'', con los siguientes parámetros: ^Parámetro ^Descripción ^Obligatorio ^ |P_TIPO_TAREA |El tipo de tarea. |Si | |P_TIPO_TERCERO |El tipo de tercero principal del documento. |No | |P_COD_TERCERO |El código de tercero principal del documento. |No | |P_CORREO_E |El destinatario del envío. |Si | |P_VALOR_1 |El código de la primera clave principal del documento. Se levanta una excepción si la longitud excede la longitud definida en SS_TIPO_TAREA para el tipo actual. Para las ofertas de venta sería el número de la oferta, por ejemplo. |No | |P_VALOR_2 |(igual que P_VALOR1 para la segunda clave, si el documento la tiene) |No | |P_VALOR_3 |(igual que P_VALOR1 para la tercera clave, si el documento la tiene) |No | |P_VALOR_4 |(igual que P_VALOR1 para la cuarta clave, si el documento la tiene) |No | |P_EX_ON_ERROR |Si ponemos el valor ''N'' y hay algún error, no se levanta ninguna excepción, pero solo se envía un mensaje al usuario.|No | También es posible llamar el procedimiento directamente desde el formulario, por ejemplo al dar en un botón //Enviar//, como sucede en la unidad ''UnitOfertasClientes.pas''.