MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Funcion SM37 (foro/showthread.php?t=6541)

DCErick 14/07/07 20:04:59

Funcion SM37
 
Tengo una funcion que esta algo lenta...Y como esta es llamada via RFC algunos usuarios optan por tronar el sistema no sap e intentarlo d enuevo, esto causa que un mismo usuario estè ejecutando 2 veces la misma funcion..

Como puedo hacerle para saber si el usuario esta haciendo una segunda ejecucion de la funcion y asì poder evitar que la funcion se corra dos veces al mismo tiempo por el mismo usuario...

abapedro 15/07/07 03:38:40

Hola,

Una solución un tanto "no elegante" sería que la función se apoye en una tabla de control donde se almacene el estado de llamadas (algo así deben tener los controles de los lenguajes que permiten recursividad).

La tabla que sugiero sería una tabla transparente con dos campos:

Usuario
Número de instancias

El procedimiento sería:

1. Al iniciar la función consulta la tabla con el nombre de usuario actual
2. Si el "número de instancias":

Caso A. Está en cero, todo está correcto y se asigna "1" al número de instancias
Al terminar la ejecución de la función (inmediatamente antes de salir de la función) se asigna "0" al número de instancias

Caso B. No está en cero, se podría abortar la función informando con un mensaje al usuario sobre la situación erronea

Con esto se impide que se ejecute doble, pero no se mata la instancia que quedó "pendiente".

Otro frente de investigación es investigar (con el equipo Basis) si hay algún parámetro general de sistema que determine el comportamiento al matar procesos "huerfanos" (procesos lanzados por un usuario y que se siguen ejecutando cuando el usuario ya se desconectó). Supongo que ese parámetro existe por razones obvias: si un cliente se bloquea deja procesos inconclusos en el servidor de aplicaciones. Posiblemente existan parámetros específicos para los RFC distintos de los correspondientes a sesiones normales abiertas a través del GUI.

Espero que estas sugerencias sean de ayuda aun cuando no son realmente soluciones sino ideas

Postdata: En todo caso la solución ideal y deseable es lograr que la función sea mas eficiente o que por lo menos informe al usuario acerca del avance para que el usuario no se impaciente (una barra de avance o algo que informe al usuario que el proceso no está congelado)


Husos Horarios son GMT. La hora en este momento es 21:09:47.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web