Professional Documents
Culture Documents
Las siguientes funciones se realizan una tras otra, asi debe ser. Los comentarios que vez en la funcin JOB_SUBMIT se lo puedes quitar. La parte del submit que no tiene comentarios la hice porque necesitaba mandarle una tabla al programa de fondo esa parte la puedes comentarizar y la del comentario activarla si asi conviene a tu programa. Form Ejecuta_Job_Fondo. * Call Function 'JOB_OPEN' Exporting JobName = 'ZDME0047' Importing jobcount = Tbtcjob-Jobcount Exceptions Others = 0. ** * Call Function 'JOB_SUBMIT' * Exporting * authcknam = Sy-Uname * Jobcount = Tbtcjob-jobcount * Jobname = 'ZDME0047' * Report = 'ZDME0047' ** Variant = '' * Exceptions * Bad_Priparams = 1 * Bad_Xpgflags = 2 * Invalid_Jobdata = 3 * Jobname_Missing = 4 * Job_Notex = 5 * Job_Submit_Failed = 6 * Lock_Failed = 7 * Program_Missing = 8 * Prog_Abap_And_Extpg_Set = 9. * Submit ZDME0047 With p_Oferta In R_Ofertas To Sap-Spool Spool Parameters Print_parameters WithOut Spool Dynpro Via Job 'ZDME0047' Number Tbtcjob-Jobcount User Sy-Uname And Return.
******************************************************** Crear job desde un report En el start-of-selection del programa NOMBRE-PROGRAMA empiezas poniendo esto: -----------------------------------------------------------------------START-OF-SELECTION. * CUANDO EL USUARIO EJECUTE EL REPORT, SY-BATCH ESTARA A BLANCO. * ENTONCES CREAMOS UN JOB, METEMOS EL REPORT EN EL JOB Y CERRAMOS EL * JOB EJECUTANDOLO INMEDIATAMENTE. * ESE REPORT EJECUTADO EN EL JOB (PROCESO DE FONDO) NO VA A VOLVER A * EJECUTARSE A SI MISMO PORQUE AHORA SY-BATCH YA VALE 'X'. IF SY-BATCH = ' '. PERFORM CREACION_JOB. EXIT. ENDIF. ------------------------------------------------------------------------ De esta manera estas obligando al programa a ejecutarse en fondo. El codigo del perform CREACION_JOB viene a continuacion. Lo que hace es crear un job, aadir un paso que consiste en la propia ejecucion del programa NOMBRE-PROGRAMA con los propios parametros que el usuario ha metido y luego cerrar el job con ejecucion inmediata. El primer concatenate es para crear