PDA

Ver la Versión Completa : Batch Inputs - Claracion


Tabula Rasa
25/04/10, 20:37:56
Buenas Tardes, estoy haciendole mantenimiento aun programa que usa batch inputs de varias transacciones, el programa es inmenso, pero a tenido algunos problemas solo con algunas opciones, ya comence a arreglar algunas cosas, pero no tengo mucha experiencia con los batch inputs. El problema en el que estoy trabajando ahora es uno de desfase, cuando se ejecuta el batch input de transaccion 1 y luego se ejecuta el batch input de la transaccion 2, a veces la transaccion 2 se graba primero que la 1, algo que no deberia pasar. Ahora he encontrado un form en el programa que segun entiendo es un Sleeper, solo sirve para hacer tiempo mientras se esta ejecutando una tarea, hasta su finalizacion y poder empezar otra que debe ser el siguiente paso logico. Nunca me habia topado con Sleepers antes en ABAP, la persona que desarrollo este programa no le gustaba mucho el ABAP asi que lo hizo al estilo Oracle. Ya me he encontrado con cosas extrañas en este programa antes, quisiera saber si hay alguna funcion en ABAP que sirva como sleeper o si es posible seguir estos pasos logicos de otra manera, y asi hacer el programa mas eficiente.

Muchas gracias de antemano !!

oarranzli
26/04/10, 12:15:22
Hola,

Existe la sentencia WAIT UP TO x SECONDS que te podría servir. Así dejas tiempos de espera entre el fin del primer batch input y el inicio del segundo.

Espero te sirva.

Buenas Tardes, estoy haciendole mantenimiento aun programa que usa batch inputs de varias transacciones, el programa es inmenso, pero a tenido algunos problemas solo con algunas opciones, ya comence a arreglar algunas cosas, pero no tengo mucha experiencia con los batch inputs. El problema en el que estoy trabajando ahora es uno de desfase, cuando se ejecuta el batch input de transaccion 1 y luego se ejecuta el batch input de la transaccion 2, a veces la transaccion 2 se graba primero que la 1, algo que no deberia pasar. Ahora he encontrado un form en el programa que segun entiendo es un Sleeper, solo sirve para hacer tiempo mientras se esta ejecutando una tarea, hasta su finalizacion y poder empezar otra que debe ser el siguiente paso logico. Nunca me habia topado con Sleepers antes en ABAP, la persona que desarrollo este programa no le gustaba mucho el ABAP asi que lo hizo al estilo Oracle. Ya me he encontrado con cosas extrañas en este programa antes, quisiera saber si hay alguna funcion en ABAP que sirva como sleeper o si es posible seguir estos pasos logicos de otra manera, y asi hacer el programa mas eficiente.

Muchas gracias de antemano !!

emerson.tosin
26/04/10, 14:42:17
Se puede también utilizar el "COMMIT WORK AND WAIT". Puede ayudar...

Tabula Rasa
27/04/10, 00:54:20
Gracias por su ayuda, estoy usando ambas sentencias, el COMMIT WORK AND WAIT despues de CALL TRANSACTION de ambas transacciones y entre los FORMS estoy poniendo un WAIT UNTiL 2 SECONDS, solo para asegurarme que espere lo necesario. Hasta ahora en las pruebas todo ha salido bien, mañana hare mas pruebas, y si algo se presenta le aviso.

Muchas gracias de nuevo !!!