Uso de la funciĆ³n ABAP que genera tiempos de espera
Utilice en ABAP la funciĆ³n que genera tiempos de espera, para encontrar la informaciĆ³n en las tablas fĆsicas
En ocasiones es necesario obtener informaciĆ³n de las tablas fĆsicas del sistema luego de una creaciĆ³n de datos. Por ejemplo, cuando en una misma transacciĆ³n, a partir de los datos ingresados para una compaƱĆa en particular, se desea replicar la informaciĆ³n para el resto de las compaƱĆas.
Dependiendo de varios factores, como la cantidad de usuarios accediendo al sistema en ese momento, los tipos de procesos que estĆ”n corriendo, etc., puede suceder que no se puedan obtener los datos requeridos porque aĆŗn no se ha completado la grabaciĆ³n en las tablas.
El mĆ³dulo de funciĆ³n 'AM_PING_AND_WAIT' permite crear "tiempos de espera", expresados en segundos, que al combinarlos con sentencias que manejan ciclos (como DO ... ENDDO) posibilitan retardar la bĆŗsqueda de los datos.
En el siguiente ejemplo, se accede a la tabla ANLA que contiene datos maestros de los activos fijos; si la ejecuciĆ³n de la sentencia SELECT es exitosa, se almacenan los datos en la estructura REC y se abandona el ciclo con la sentencia EXIT; en caso contrario, se invoca a la funciĆ³n y luego reinicia el ciclo:
DO.
SELECT SINGLE * FROM ANLA WHERE BUKRS = C_BUKRS
AND ANLN1 = C_N1
AND ANLN2 = C_N2.
IF SY-SUBRC = 0. "Ya se grabĆ³
REC_ASSET-ANLKL = ANLA-ANLKL.
REC_ASSET-TXT50 = ANLA-TXT50.
REC_ASSET-TXA50 = ANLA-TXA50.
REC_ASSET-ORD41 = ANLA-ORD41.
REC_ASSET-ORD42 = ANLA-ORD42.
REC_ASSET-ORD43 = ANLA-ORD43.
REC_ASSET-ORD44 = ANLA-ORD44.
REC_ASSET-GDLGRP = ANLA-GDLGRP.
REC_ASSET-ANLUE = ANLA-ANLUE.
REC_ASSET-POSNR = ANLA-POSNR.
REC_ASSET-LIFNR = ANLA-LIFNR.
REC_ASSET-LIEFE = ANLA-LIEFE.
EXIT.
ELSE. "TodavĆa no se grabĆ³
CALL FUNCTION 'AM_PING_AND_WAIT'
EXPORTING
I_SECONDS = 1
EXCEPTIONS
OTHERS = 1.
ENDIF.
ENDDO.