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 25/07/14, 16:30:23
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Problema con funcion IN UPDATE TASK

Buenas, quería preguntar si a alguien alguna vez le paso o sabe como resolverlo,

Tengo un EXIT (EXIT_SAPMM06E_013 ) para la creación/modificación de pedidos en ME21N/ME22N al momento de guardar.

Dentro del EXIT llamo a una función CALL FUNCTION nombre IN UPDATE TASK

la idea es que como esta en actualización, primero se hace el COMMIT estándar, se crea el pedido, se llama a la función, y dentro de esta se hacen ciertas validaciones y se llama a la BAPI_PO_CHANGE donde inserto una posición.

La cuestión es que cuando hago que frene en la función de actualización con el debug, el documento se modifica correctamente. Pero si no hago que frene, solo guardo sin hacer debug, no funciona, parece como que a la función ni siquiera la llama.

Alguna idea? Necesito ayuda urgente.

Muchas gracias
Responder Con Cita
  #2  
Viejo 26/07/14, 02:03:12
vanesamacri vanesamacri is offline
Senior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 146
Buenas noches.

En algún momento, tuve el mismo inconveniente que vos. Por debug, el COMMIT se realizaba, mientras que ejecutando online derecho, no.

En ese entonces, investigué un poco acerca de los COMMIT implícitos e explícitos y mediante el uso de una instrucción MESSAGE al momento de querer efectivizar el COMMIT (disparan un tipo de COMMIT denominado 'implícito'), pude lograr lo que estás planteando.

El motivo por el cual el COMMIT funciona cuando hacés debug es porque los COMMIT implícitos se disparan con cada paso ejecutado de debug (por ejemplo, al presionar F5).

En resumen, probá forzando el muestreo de un mensaje en pantalla al momento de finalizar la ejecución de la función.

Adjunto, por si te interesa, un enlace con información acerca de los distintos tipos de COMMIT, y de cómo funcionan:

Espero que te sea de ayuda.

Un saludo.
Responder Con Cita
  #3  
Viejo 26/07/14, 14:26:08
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Muchas gracias por tu respuesta, voy a probar eso, el link que mencionas cual es? pruebo y te comento, fue de gran ayuda la aclaracion
Responder Con Cita
  #4  
Viejo 28/07/14, 00:42:03
vanesamacri vanesamacri is offline
Senior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 146
El link se encuentra haciendo click en la palabra CLICK de mi mensaje.

Ya que estoy, lo escribo acá:
Responder Con Cita
  #5  
Viejo 28/07/14, 12:13:25
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Una consulta sobre la sentencia MESSAGE, igualmente voy a probar.

El problema es que si pongo un MESSAGE en la funcion, esta pasa por un EXIT, y no debo mostrar mensajes, lo que decis funcionara igual que si mando un mensaje dentro de una variable?
Responder Con Cita
  #6  
Viejo 28/07/14, 12:31:45
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110


No funciono, quieres que adejunte el codigo? puse la sentencia message normar y nada, lo puse dentro de una variable y nada, es como si no entrara directamente a la funcion IN UPDATE TASK al correrlo online, pero por debug si y funciona
Responder Con Cita
  #7  
Viejo 29/07/14, 11:25:55
Ddscerezo Ddscerezo is offline
Junior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 17
Es un asunto complejo.

- Puede que no tengas los datos todavía en el sistema (estén aún en memoria intermedia) y por eso no te funcione tu módulo online y sí por debug (al debuguear va más lento el programa y le da tiempo a grabar todos los datos).

Para ver si es por esto, puedes probar a meter un WITde X segundos, para descartar que sea por esto.

- Otra opción es revisar los parámetros del módulo de funciones al que llamas IN UPDATE TASK. y revisar el tipo de sincronización que tiene (creo que tú necesitas que sea síncrona -espere a que acabe la exit para luego ejecutar el módulo-).

Aquí un link con indicaciones al respecto


- Y ahora no lo encuentro por ningún sitio, pero creo que había alguna manera de hacer la llamada y asignarle mínima prioridad para que sea ejecutada en último lugar, del proceso. Por lo que te aseguras tener todos los datos ya en las tablas.

Un saludo.
Responder Con Cita
  #8  
Viejo 29/07/14, 12:39:31
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Hola, muchas gracias por la respuesta, voy a buscar lo que comentas de la prioridad.

Problemas de tiempos no es, ya que he puesto WAIT po varios puntos y hasta un While al hacer la BAPI_PO_CHANGE con un WAIT adentro y no hace abusolutamente nada.

Lo de la prioridad que mencionas puede ser algo que puede funcionar, mientras leo el link que me mostras y hago mas pruebas, espero poder solucionarlo.

Gracias.
Responder Con Cita
  #9  
Viejo 29/07/14, 13:30:06
Ddscerezo Ddscerezo is offline
Junior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 17
Creo que lo de la prioridad podía ser algo como ésto:

He encontrado ésto… con perform, no con call…



Es un perform a una subrutina (en la que puedes poner tu call), aunque ten en cuenta las notas para IN UPDATE TASK.

A ver si te vale.

De todas maneras, revisa lo de el tipo de actualización de la función, que es fácil de probar, prueba con las distintas opciones que tienes en los atributos del módulo, a ver si con eso ya te funciona.

Un saludo.
Responder Con Cita
  #10  
Viejo 29/07/14, 16:12:12
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Hola, muchas gracias, creo haber encontrado la solucion, cuando confirme que de verdad funciona correctamente, comparto con ustedes como lo resolvi, muchas gracias, igualmente si alguien tiene mas sugerencias de como resolver el problema, bienvenido sea, muchas gracias, saludos.
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 18:00:06.


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