📘ABAP - Starting NEW Task
Definición de Starting NEW Task
La sentencia ABAP STARTING NEW TASK se utiliza en la declaración de módulos de función RFC asincrónicos.
STARTING NEW TASK nos permite llamar a un módulo de funciones que se ejecutará de forma asíncrona en una tarea de procesamiento independiente, de modo que la lógica del programa ABAP no espere a que este módulo de funciones finalice su procesamiento, sino que continúe con la siguiente línea de código de abap.
La gran ventaja que presenta la sentencia STARTING NEW TASK es que una vez que el módulo de funciones haya terminado de procesar, entonces ejecutará el FORM especificado dentro del programa original para continuar el procesamiento.
Veamos a continuación un pequeño ejemplo:
CALL FUNCTION 'Z_FMODULE'
starting new task 'UPDATE'
destination 'NONE'
performing processing_done on end of task
EXPORTING
P_UNAME = sy-uname.
"program does not wait for FM to finish processing and continues with next line of ABAP code
break-point.
"...perform display_report.
FORM processing_done.
* In the mean time once processing of FM Z_FMODULE is complete this abap FORM is then executed.
WIthin here you can perform any processing you like, including re-displaying a report
"...perform display_report.
ENDFORM.
El programa llama a un módulo de función en una nueva tarea que luego espera unos segundos (espera 10 segundos).
Una vez que regresa al programa y realiza el formulario de devolución, básicamente vuelve a ejecutar todo el informe de nuevo.
Esto crea especialmente un bucle sin fin, por lo que el informe se mantiene actualizando hasta que es cancelado por el usuario.