top of page

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.

oferta en cursos online
bottom of page