MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 10/07/09, 19:01:27
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195
Crear Job mediante codigo (abap)

Alguien sabe si es posible crear un job mediante codigo abap?? me podeis pasar un codigo de ejemplo o indicarme donde puedo encontrar informacion al respecto??

Gracias por la atencion
Responder Con Cita
  #2  
Viejo 10/07/09, 19:49:38
marianoa marianoa is offline
Member
 
Fecha de Ingreso: jun 2007
Mensajes: 77
hola como estas? tenes que usar las funciones open_job y close_job. entre esas funciones pones lo que queres que se corra en ese job. a las funiciones le tenes que pasar el nombre de job que creas. no recuerdo si el numero. si tenes que agregar el numero de job tenes que levantar el ultimo job de una tabla que no recuerdo el nombre y asignarle uno mas.
saludos
Responder Con Cita
  #3  
Viejo 13/07/09, 11:02:01
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195

Hola gracias por la respuesta... investigare al respecto....
Responder Con Cita
  #4  
Viejo 13/07/09, 13:34:13
ibecerra
 
Mensajes: n/a
aqui esta lo q necesitas
Responder Con Cita
  #5  
Viejo 13/07/09, 13:44:56
sconoredhot sconoredhot is offline
Senior Member
 
Fecha de Ingreso: feb 2008
Localización: Argentina, Rosario
Mensajes: 341
Cool Ejemplo

Hola...

Te mando un ejemplo...

Crear job desde un report




Gracias a Pablo Pérez 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,
añadir 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
el nombre que tendra el job, de manera que puedas distinguirlo claramente al
ir a ver su log en la transaccion SM37. Yo utilizo esta tecnica para impedir
que los usuarios ejecuten online determinados reports que se que van a
tardar mucho y que probablemente provoquen un dump por time-out. Espero que
te sirva. *&---------------------------------------------------------------------*
*& Form CREACION_JOB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FOTR_CREACION_JOB.
CONCATENATE 'NOMBRE-JOB' SY-DATUM SY-UZEIT INTO JOBNAME
SEPARATED BY SPACE.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
JOBNAME = JOBNAME
IMPORTING
JOBCOUNT = JOBCOUNT
EXCEPTIONS
CANT_CREATE_JOB = 1
INVALID_JOB_DATA = 2
JOBNAME_MISSING = 3
OTHERS = 4.

IF SY-SUBRC NE 0.
MESSAGE E219(Z5).
* No se ha podido lanzar el programa como proceso de fondo.
ELSE.
SUBMIT NOMBRE-PROGRAMA
TO SAP-SPOOL " Parametros de impresion
DESTINATION 'LOCL'
IMMEDIATELY ' '
KEEP IN SPOOL ' '
WITHOUT SPOOL DYNPRO
USER SY-UNAME " Usuario para el auth-check
VIA JOB JOBNAME " Job al que se la añade el
NUMBER JOBCOUNT " step.
WITH P_VERSN = P_VERSN " Aqui se ponen todos los
WITH P_GJAHR = P_GJAHR " parametros de seleccion del report
WITH P_KOSTV = P_KOSTV
WITH P_PRCTR = P_PRCTR
WITH P_ACTV = P_ACTV
WITH S_AUFNR = S_AUFNR
WITH SO_AUFNR IN SO_AUFNR
WITH S_KAGRU = S_KAGRU
WITH SO_KAGRU IN SO_KAGRU
AND RETURN.

CALL FUNCTION 'JOB_CLOSE'
EXPORTING
JOBCOUNT = JOBCOUNT
JOBNAME = JOBNAME
STRTIMMED = 'X'
EXCEPTIONS
CANT_START_IMMEDIATE = 1
INVALID_STARTDATE = 2
JOBNAME_MISSING = 3
JOB_CLOSE_FAILED = 4
JOB_NOSTEPS = 5
JOB_NOTEX = 6
LOCK_FAILED = 7
OTHERS = 8.
IF SY-SUBRC NE 0.
MESSAGE E219(Z5).
* No se ha podido lanzar el programa como proceso de fondo.
ELSE.
MESSAGE I218(Z5).
* El programa se ha lanzado en proceso de fondo.
EXIT.
ENDIF.
ENDIF.

ENDFORM. " CREACION_JOB

Saludos, Sebas
__________________
Sebas

Desarrollador ABAP.
Responder Con Cita
  #6  
Viejo 15/07/09, 20:51:45
RAMONES RAMONES is offline
Member
 
Fecha de Ingreso: mar 2009
Localización: Capital - Buenos Aires
Mensajes: 69
te dejo un codigo que yo uso...saludos...

este codigo lo uso para crear el job desde codigo abap...


FORM criar_job.
DATA:
vc_jobname LIKE tbtcjob-jobname, " Nome do job
vc_jobcount LIKE tbtcjob-jobcount, " Número do job
vc_rele LIKE btch0000-char1. " Indica se o job foi liberado

vc_jobname = 'I0002'.

CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobgroup = 'INTERFACE'
jobname = vc_jobname
IMPORTING
jobcount = vc_jobcount
EXCEPTIONS
OTHERS = 1.

IF sy-subrc IS INITIAL.
SUBMIT (sy-repid)
USER sy-uname
VIA JOB vc_jobname NUMBER vc_jobcount
WITH cb_job = 'X'
AND RETURN.

IF vn_uzeit <= sy-uzeit AND vn_datum = sy-datum.

CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = vc_jobcount
jobname = vc_jobname
strtimmed = 'X'
targetsystem = ''
IMPORTING
job_was_released = vc_rele
EXCEPTIONS
OTHERS = 1.
ELSE.

IF sy-uzeit >= c_dat1.
vn_datum = sy-datum + 1.
vn_uzeit = sy-uzeit + 900.
ELSE.
vn_datum = sy-datum .
vn_uzeit = sy-uzeit + 600.
ENDIF.


CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = vc_jobcount
jobname = vc_jobname
sdlstrtdt = vn_datum
sdlstrttm = vn_uzeit
targetsystem = ''
IMPORTING
job_was_released = vc_rele
EXCEPTIONS
OTHERS = 1.
ENDIF.

IF NOT sy-subrc IS INITIAL.
MESSAGE s043 WITH vc_jobname.
ENDIF.
ELSE.
MESSAGE s043 WITH vc_jobname.
ENDIF.
ENDFORM. " CRIAR_JOB
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 14:11:01.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web