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.

2 visualizaciones0 comentarios

Entradas Recientes

Ver todo