PDA

Ver la Versión Completa : crear JOBS y LOG de errores


romario2
25/02/09, 09:05:02
Hola,

tengo un programa en el cual me piden 2 tareas:

-Definir y crear jobs para lanzar las funciones de acuse de recibo

-Crear log de recepción de envío y recepción de archivos

Me gustaría saber como creo un JOB y un LOG de errores de forma sencilla.

Muchas gracias!:o

Jonathan Barrio Rodriguez
25/02/09, 23:01:41
El log es facil. mira el perform que te pego, donde DATA_TAB es una tabla interna que tú le pasa al Form para ponerlo de parametro en la función.
File, creo recordar, que es el directorio donde se descargará el fichero (C:/log_errores/) o el nombre del fichero (comviene ponerle un nombre y pasarle la variable de siste sy-datum para saber la fecha)


*&---------------------------------------------------------------------*
*& Form baja_fichero
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_T_ERROR text
* -->P_P_FILE_E text
*----------------------------------------------------------------------*
FORM baja_fichero TABLES data_tab
USING file.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
codepage = 'IBM'
filename = file
filetype = 'ASC'
TABLES
data_tab = data_tab
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7.

ENDFORM. " baja_fichero


En cuanto al Job, no lo he hecho nunca porque siempre lo configuraban los de Basis o sistemas, consultalo con tu superior no vayas hacer cosas para nada -a mi me ha pasado-, te diré que se crean en Sistema – Servicios – Lista de jobs, o bien por Ir a – Job Overview (transacción SM37).

también se pueden generar por código con funciones, con los siguiente códigos (parecido ha abrir una sesicon de Batch Imput):

CALL FUNCTION 'JOB_OPEN'
EXPORTING
* DELANFREP = ' ' "borrar report interno
jobname = "nombre del job
* IMPORTING
* JOBCOUNT = "número de job devuelto
* EXCEPTIONS
* CANT_CREATE_JOB = 1
* INVALID_JOB_DATA = 2
* JOBNAME_MISSING = 3
* OTHERS = 4

CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = "nombre del usuario propietario del job
jobcount = "número de job
jobname = "nombre del job
* REPORT = ' ' "nombre del report (el "step")
* VARIANT = ' ' "variante de ejecución del report
* EXCEPTIONS
* INVALID_JOBDATA = 1
* JOBNAME_MISSING = 2

.


CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = "número de jo
jobname = "nombre del job
* SDLSTRTDT = NO_DATE "nombre del report (el "step")
* SDLSTRTTM = NO_TIME "variante de ejecución del report
* STRTIMMED = ' ' "flag de inicio inmediato
* EXCEPTIONS
* INVALID_STARTDATE = 1
* JOBNAME_MISSING = 2

.

Saludos.

romario2
03/03/09, 11:26:50
Hola Jonathan!

gracias por la información!

El job lo voy a hacer por la transacción, me gustaría saber como obtener los logs de allí, por ejemplo como trato y bajo los spools.

Voy a aprovechar tu función download como complemento de log de errores si alguien sabe alguna otra función será bienvenida.

Gracias por todo:p