====== Programar lotes de tareas ====== Con la programación de lotes de tareas se puede definir informes o procesos que se deberían ejecutar automáticamente cada cierto tiempo. La planificación de un lote de tareas está compuesto por varios pasos: - Abrir el dialogo de los lotes de tareas con el menú //Herramientas/Programar tareas//. - Con F10 abrir el dialogo de las tareas. Aquí se define una o varias tareas que después van a componer el lote de tareas. - Una vez definidas las tareas se cierra ese dialogo y vuelve al dialogo //Lote de tareas//. Ahora se crea un nuevo lote y se va añadiendo en el detalle las tareas definidas anteriormente. ===== Tareas ===== En el dialogo de las tareas se define los aspectos más técnicos de los informes y procesos que se quiere ejecutar. {{:usu:guia_de_usuario:Tareas.jpg|Tareas}} Los campos más importantes en la cabecera de ese dialogo son los siguientes. ^Campo ^Descripción ^ |Nombre |El nombre que después aparece en el detalle del dialogo de lotes de tareas. | |Descripción |El contenido de ese campo se usa para componer el asunto del email que llega a los usuarios. El asunto siempre tiene el formato ''Informe '//Descripción//' pedido por //nombre del usuario// creado el //fecha y hora//''. | |Nombre fichero de tabla |Se usa ese campo como nombre del fichero que se envía a los destinatarios de email. Si el campo está vacío se usa un nombre por defecto compuesto por la id del lote y el número de la línea del detalle. | Debajo de la cabecera hay que definir la instrucción sql a usar para crear el informe o ejecutar el proceso. Hay que distinguir entre dos tipos de instrucciones, los que devuelven datos (informes) y los que no devuelven datos (procesos). En caso de ser un informe hace falta definir los destinatarios en el detalle abajo izquierda. ^Campo ^Descripción ^ |Cód. usuario |Se puede seleccionar un usuario para usar su dirección electrónica como destino del email. | |Dir. electrónica |Bien se rellena automáticamente desde un código de usuario introducido, o bien se pone una dirección manualmente. En caso de usar un servidor ftp como destinatario, hay que poner aquí su IP o nombre, ej. ''ftp.sss-smart.com''. | |Usuario ftp |También es posible enviar el fichero a un servidor ''ftp''. Entonces se debería poner en ese campo el usuario del servidor ftp. **En caso de usar un servidor ftp hay que poner su IP o su nombre (ej. ''ftp.sss-smart.com'') en el campo //Dir. electrónica//.** | |Clave ftp | La clave para el acceso al servidor ftp. | |Formato |El formato en que se debería guardar los datos del informe, que por defecto es //Excel//. (ver abajo) | La última rejilla en el dialogo es la de los parámetros de la instrucción sql. Se rellena automáticamente al dar al botón F10 y muestra los parámetros usados en la instrucción sql. ^Campo ^Descripción ^ |Nº parámetro |No cambiar. | |Nombre parámetro |No cambiar. | |Valor |Aquí podemos poner el valor que debería tener el parámetro. Eso solo es interesante en caso de parámetros de tipo //fecha//. En ese caso podemos poner aquí la cadena ''FE'' que significa //usar la fecha de ejecución//. Es posible desplazar la fecha de ejecución, ver el siguiente párrafo. | ==== Parámetros de tipo Fecha ==== En los parámtros de tipo //fecha// se puede poner una fecha fija ('21/03/2016') o la cadena ''FE'' que significa //usar la fecha de ejecución//. Es posible desplazar la fecha en días, meses o años. Se puede conseguir añadiendo unos parámetros rodeados por paréntesis: ''FE(d/m/a)''. Cada componente 'd', 'm' o 'a' puede definir un dato fijo o una diferencia a la fecha actual. En ese último caso (diferencia) hay que ponerle delante un '-' o un '+'. Aquí unos ejemplos para una fecha actual 31/07/2009: ^Parámetro ^fecha resultante ^ |FE(1) |'2009-07-01' | |FE(1/1) |'2009-01-01' | |FE(1/-1) |'2009-06-01' | |FE(/-1) |'2009-06-31' (¡ERROR!) | |FE(-40) |'2009-06-21' | |FE(/ /-1) |'2008-07-31' (Entre las dos barras no hace falta ningún espacio, solo lo tenía que meter por un problema con el wiki) | |FE(+10) |'2009-08-10' | ==== Formatos ==== En el dialogo de formatos se define el formato en que se envía un informe a cada destinatario. Por defecto se usa el formato marcado como estándar, que inicialmente es el formato ''SYLK'', que corresponde al formato Excel. {{:usu:guia_de_usuario:formatos.jpg|Formatos}} ^Campo ^Descripción ^ |Código |El código del formato. | |Descripción |La descripción. | |Estándar |Siempre tiene que haber exactamente un formato con 'S' en esta columna. El formato definido como estándar es el que se usar para todos los destinatarios que tienen el campo ''Formato'' en blanco. Inicialmente siempre es el formato ''SYLK'' (Excel). | |Excel |Marcando este campo con 'S' se va a exportar el fichero en formato Excel. Solo se puede marcar uno de los dos campos ''Excel'' o ''Texto'' con 'S'. | |Texto |Marcando este campo con 'S' se va a exportar el fichero en formato de texto. | |Delimitador campos de texto |Para el formato ''Texto'' se puede definir un carácter que //rodea// a campos de texto. Si se pone por ejemplo '"' en ese campo, entonces los campos de texto en el fichero aparecen así: "Nombre del cliente". | |Separador de campos |Para el formato ''Texto'' se puede definir el carácter que va a separar los campos. | |Separador de decimales |Para el formato ''Texto'' se puede definir el carácter para separar los decimales en los campos numéricos. Normalmente aquí solo se usa '.' o ','. | |Formato fecha |El formato de fecha a usar en un fichero de tipo ''Texto''. Si se quiere usar el delimitador '/' hay que ponerlo en " ("/"), porque sino se usa el delimitador estándar del sistema. | |Formato hora |El formato de hora a usar en un fichero de tipo ''Texto''. | |Línea de título |Poner una línea de título con los nombres de los campos del informe. | |Línea de pie |Poner una línea de pie con las sumas de los campos numéricos. | |Nom. fich. añadir fecha |Aquí se puede definir un anexo para el nombre del fichero. Se puede usar las siguientes letras: dd=día actual, mm=mes actual, yyyy=año actual con 4 dígitos. Además se puede desplazar la fecha: yyyymm(-1m) significa añadir el año y el mes de la fecha actual **menos 1 mes**. De la misma forma se puede usar (-1d) o (-1y). | |Comprobar tamaño |Con 'S' en este campo se comprueba el tamaño de fichero a enviar. Si pasa los 50 MegaByte entonces no se envía. | |Nom. fich. extensión |La extensión que debería tener el fichero (ej. ''txt'' o ''slk'') | ===== Lotes de tareas ===== En los lotes de tareas se define **que tareas hay que ejecutar juntos** y **cuando hay que ejecutarlos**. ==== Pestaña General ==== {{:usu:guia_de_usuario:lotes1.jpg|Lotes pestaña General}} ^Pestaña ^Campo ^Descripción ^ |General |Id. |La identificación generado automáticamente. | |General |Nombre |El nombre. | |General |Confirmado |Solo tareas confirmadas se van a ejecutar. **Atención: cada cambio en la pestaña de planificación hace que se desconfirme el lote. Así que después de cambiar la planificación hay que confirmar el lote de nuevo.** | |General |Descripción |La descripción. | |General |Resultado última ejec. |El resultado de la última ejecución. Si aquí no pone ''OK'' entonces hay que revisar el proceso. Después de corregir lo que ha fallado hace falta desconfirmar y confirmar de nuevo el lote. | |General |Ejecutando |Si aquí pone 'S' significa que el lote aún está ejecutándose. | |General |Suspendido |Si aquí pone 'S' significa que el lote ha terminado con un error. En este caso también habrá algún mensaje en el campo ''Resultado última ejec.''. Hay que corregir el problema y desconfirmar y confirmar de nuevo el lote. | |General |Fecha última ejec. |La fecha de la última ejecución. | |General |Última tarea ejecutada |La última tarea ejecutada, que tiene que ser la del final del detalle si no había ningún error. | |General |Fechas próxima ejec. |Después de confirmar el lote se calcula las siguientes fechas de ejecución y se muestran aquí. | ==== Pestaña Planificación ==== {{:usu:guia_de_usuario:lotes2.jpg|Lotes pestaña Planificación}} ^Pestaña ^Campo ^Descripción ^ |Planificación |Fecha fija |Una fecha fija en que se quiere ejecutar el lote. | |Planificación |Cada día de mes |Se puede definir el día del mes en que se quiere ejecutar el lote. **Si al mismo tiempo se marca el campo ''Cada día laboral'' entonces se calcula el x día laboral del mes, si x es el número introducido en ese campo.** En ese caso hace falta definir un calendario en el campo ''Cód. calendario''. | |Planificación |Cada lunes/martes... |Con esas casillas se puede definir uno o varios días de la semana en que se quiere ejecutar el lote. | |Planificación |Cada día laboral |Marcando este campo se ejecuta el lote todos los días laborales. Hace falta definir un calendario en ''Cód. calendario''. Por defecto se coge el calendario estándar de la empresa. | |Planificación |Cada día festivo |Ejecutar el lote cada día festivo. Hace falta definir un calendario en ''Cód. calendario''. Por defecto se coge el calendario estándar de la empresa. | |Planificación |Permitir saltar ejec. |**En general se debería poner 'S' en esa casilla.** Si se deja en 'N' significa que, si el lote termina con un error, el día siguiente se vuelve a intentar hasta que termine con éxito. | |Planificación |Desplazar días |Se puede desplazar la fecha de ejecución definida en los demás campos por los días introducidos en ese campo. Se puede por ejemplo marcar ''Cada día laboral'' y poner en este campo ''-1''. Entonces se ejecuta el lote todos los días **antes** de un día laboral. | |Planificación |Cód. calendario |El código del calendario a usar para calcular los días laborales. | ==== El detalle de los lotes ==== En el detalle se va añadiendo las tareas que se quiere ejecutar dentro del lote. Si una tarea devuelve un error se para todo el lote. Los campos importantes son el usuario, el grupo y la clave de conexión. Hay que rellenar esos campos si se quiere ejecutar la tarea con otro usuario que no sea ''SYSDBA''.