MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 14/07/07, 20:04:59
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
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...
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #2  
Viejo 15/07/07, 03:38:40
Avatar de abapedro
abapedro abapedro is offline
Member
 
Fecha de Ingreso: mar 2007
Mensajes: 83
Smile

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)

Úlima edición por abapedro fecha: 15/07/07 a las 03:51:24.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:15:18.


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