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 12/11/07, 22:47:30
Avatar de c_quintero
c_quintero c_quintero is offline
Junior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 12
Commit Work en User Exit

buenas tardes a todos

tengo un problema existencial

este es el problema , tengo una user exit para la creacion y modificacion de materiales , ahora , esa user exit por si sola no me trae los valores que ocupo para la clasificacion del material que se este creando , entonces opte por poner un commit work al entrar al exit de esa forma puedo llamar a unas funciones estardar que me trae todos los valores de las caracteristicas y de la clase del material pero he leido en muchos foros que nunca se deben poner commits en los user exit , por cuestiones de performance y no se que otras cosas

pero mi duda es , acaso importa en realidad? , es decir , el user exit que estoy usando se activa cuando le doy GRABAR , entonces , que no daria lo mismo ? , lo unico que hago es adelantar el commit , o acaso se hacen muchas otras cosas despues de llamar al user exit?

espero me puedan resolver mi duda
de antemano gracias
Responder Con Cita
  #2  
Viejo 13/11/07, 07:50:55
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Seguramente a esto habra tantas respuestas como personas pero al poner un commit en una user te arriesgas a perder la modificaciones que se hagan posteriormente, por eso intentaria ponerlo en la user mas cercana a la grabacion fisica del documento, por otra parte debes considerar la posibilidad de que un commit colocado en un sitio erroneo puede provocar dump como por ejemplo si pones un commit dentro de un bucle select endselect (u otras operaciones que impliquen el uso de cursores)

En principio si te funciona no hay problema pero piensa que para grabar los datos en tablas de diccionario previamente tienen que estar almacenados en tablas internas asi que seguramente hay alguna tabla interna que tiene los datos que tu buscas
Responder Con Cita
  #3  
Viejo 13/11/07, 13:21:19
Ignatius Ignatius is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 15
Commit en User Exit

c_quintero,

El problema con los COMMIT dentro de un user exit es, como te dice ballan, que podés llegar a perder información en el momento de actualizar ya que estás modificando el orden estándar.
Yo te diría que evites a toda costa poner un COMMIT, porque quizás quede algo mal en la actualización y no te des cuenta.
Por qué estás haciendo el commit? Necesitás algún valor que todavía no está creado?
Podés probar crear una función Z y llamarla IN UPDATE TASK... a veces esto sirve para hacer una grabación y obtener algún valor que en el momento en que se ejecuta el exit no está disponible.
Otra opción que tenés es utilizar memoria ABAP y usar 2 exits en lugar de uno (y que uno le pase la información que necesites a otro).

Avisanos si sirvió!

Saludos
Responder Con Cita
  #4  
Viejo 13/11/07, 15:33:05
Avatar de c_quintero
c_quintero c_quintero is offline
Junior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 12
buenos dias

gracias por sus respuestas ya me quedo mas claro

Ignatius , como que una funcion Z y llamarla IN UPDATE TASK? podrias darme un ejemplo de como se hace y como funciona? eso podria ayudarme mucho mas

y pues los datos que ocupo son los de clasificacion de un material en las tx mm01 o mm02

normalmente esos datos los triago con una serie de funciones las cuales son estas:

CALL FUNCTION 'CLMA_CLASS_READ'
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
CALL FUNCTION 'CLME_FEATURES_OF_CLASS'
CALL FUNCTION 'CLA2_GET_ALL_ALLOCATIONS'

pero obviamente no puedo usar esas funciones en la user exit porque el material aun no esta grabado, por eso queria usar el commit al momento de entrar en la user exit la cual , repito , se activa cuando le doy SAVE a la tx , y por mas que debugueo no encuentro la tabla interna donde guarda esos valores

igual y si se han topado con algo como esto y lograron solucionarlo porfavor diganme

saludos
Responder Con Cita
  #5  
Viejo 13/11/07, 17:41:33
Ignatius Ignatius is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 15
c_quintero,

Lo que te digo de llamar a una función IN UPDATE TASK es lo siguiente:

Creás un módulo de funciones Z con el código que pusiste en el User Exit, y en el Exit lo que hacés es llamar a la función así:

CALL FUNCTION 'tu_funcion' IN UPDATE TASK...

Eso lo que hace es poner la llamada en la cola de actualización. Cuando se ejecuta el COMMIT se va a ejecutar esta función que llamaste.

En las funciones que llamás, tenés que poner el número de material?

Me podés decir el User Exit que estás usando para poder ubicarme un poco mejor en lo que necesitás?

Saludos
Responder Con Cita
  #6  
Viejo 13/11/07, 20:11:57
Avatar de c_quintero
c_quintero c_quintero is offline
Junior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 12
esta es la user exit que uso

MGA00001
EXIT_SAPLMGMU_001

y si , en esas funciones ocupo el numero del material , de hecho es lo unico que ocupo se van llenando los campos necesarios unas a otras

pero ya con lo que me dices me di una buena idea de como hacerlo

de todas formas te paso el codigo de las funciones por si acaso

esto es lo que haria normalmente si corriera algun programa Z una vez guardados los datos


cualquier otra cosa es bien recibida
Responder Con Cita
  #7  
Viejo 20/02/08, 23:12:44
Sonia Sonia is offline
Junior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 3
Help

Buenas tardes,
me gustaria saber como solucionaste tu problema.
Pues tengo un desarrollo en el cual debo validar algunas caracteristicas de material y en ese momento de la user exit no tengo los valores en ninguna tabla.

Saludos.
Responder Con Cita
  #8  
Viejo 23/03/09, 15:00:15
TUESDAY TUESDAY is offline
Member
 
Fecha de Ingreso: may 2006
Mensajes: 32
Hola,
Para obtener los valores de las caracteristicas de un material yo uso la user EXIT_SAPLCTMS_002, de aqui saco los valores, los mando a memoria y luego los leo en mi user.
Espero que os sirva.
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 22:10:12.


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