MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Exit para ME51N (foro/showthread.php?t=37933)

mystic_soul 28/07/10 14:34:47

Exit para ME51N
 
hola gente! como estan?
Bueno, necesito la ayuda de ustedes. Estoy necesitando una exit para la trx ME51N para cuando pueda grabar un pedido, pueda chequear si el documento sea de un determinado tipo (o sea, para el campo BSART).
Se me habia ocurrido utilizar la exit EXIT_SAPLMEREQ_010, pero haciendo la validacion aca, me termina la transaccion..
Existe la exit? y si no existe, que podria hacer?

Mil gracias por la ayuda!!

cmacvicar 28/07/10 16:04:55

Mensajes de Error
 
Hola mystic_soul,

Cuando dices:
"Me Termina la Transacción"

Es porque le tiras un mensaje de Error y te saca de la Transacción??

mystic_soul 28/07/10 16:52:30

Hola cmacvicar..

Gracias por responder!.. si, tira el mensaje de error y me sale de la transaccion.
La idea es que, si me tira un error, que el usuario pueda modificarlo.

Saludos!

caralbgro 28/07/10 18:29:01

Te explico lo que realiaze
 
yo tengo la implementado esta user exit pero para validar me cree una tabla en donde busco que validar, por eje centro invalido o grupo de compra invalido según condicion previa en la tabla lo defini asi el error para que el usuario pueda cambiar el dato:

DATA: st_ex_messages TYPE bapiret2.

LOOP AT im_t_eban INTO vl_eban WHERE loekz IS INITIAL.
IF ( sy-ucomm = 'MESAVE' OR sy-ucomm = 'MECHECKDOC' ) AND ( sy-tcode = 'ME51N' OR sy-tcode = 'ME52N' OR sy-tcode = 'ME53N' ) AND vl_eban-zzbudget IS INITIAL.
st_ex_messages-type = 'E'.
st_ex_messages-id = '1'.
st_ex_messages-message = 'ERROR BUDGET'.
CONCATENATE 'Ingrese el BUDGET en la Posición: ' vl_eban-bnfpo INTO st_ex_messages-message_v1.

* st_ex_messages-field = 'EBAN-ZZBUDGET'.
APPEND st_ex_messages TO ex_messages.
ENDIF.

o esto:

SELECT SINGLE *
FROM zcentroclase
WHERE centro = vl_eban-werks AND
clase_doc = vl_eban-bsart.

IF sy-subrc NE 0.
st_ex_messages-type = 'E'.
st_ex_messages-id = '3'.
st_ex_messages-message = 'ERROR CENTRO CLASE'.
st_ex_messages-message_v1 = 'Centro invalido para la clase,'.
CONCATENATE 'Centro'vl_eban-werks'invalido para la clase'vl_eban-bsart ',' INTO st_ex_messages-message_v1 SEPARATED BY space.
CONCATENATE 'Pos:' vl_eban-bnfpo INTO st_ex_messages-message_v2 SEPARATED BY space.
APPEND st_ex_messages TO ex_messages.

ENDIF.
endloop.

espero que te sirva

mystic_soul 28/07/10 20:16:58

Hola caralbgro, como estas?

Primero gracias por responder! y segundo gracias por tu aporte! tu ejemplo me salvo!

Saludos!

cmacvicar 28/07/10 20:37:35

Como Validar en una User Exit
 
Los Mensajes en Una User Exit

No se pueden:

MESSAGE 'Clase de Documento no Corresponde' TYPE 'E'.

* Esto no es correcto porque recuerda que el Mensaje de tipo 'E' interrumpe el Flujo del Programa Normal.

Si se puede:

en el Estatus de la estructura estándar cambiarlo a tipo 'E'

st_ex_messages-type = 'E'.

* Esto es correcto porque impide su Ej: contabilización pero deja modificarlo

Busca el Estatus de Posición o Cabecera de las estructuras estándar que maneja la User Exit y modifica su estatus cuando no cumpla con la lógica que tu quieres.

PD: Espero que te sirva :D

mystic_soul 29/07/10 18:17:02

Si, gracias a tu ejemplo lo pude resolver.. en un principio lo tenia como vos decias.. MESSAGE 'Tal' TYPE E

Saludos!

Klare 03/05/11 15:22:15

Consulta
 
Estoy intentando implementar este codigo en una badi, peor me sale error en :
APPEND st_ex_messages TO ex_messages. expecificamente en ex_messages,
asi q' lohe declarado como:
data: ex_messages type bapiret2 occurs 0.
y me sige saliendo un error.
the addition OCCURS IS NO LONGER SUPPORTED IN THE OO CONTEXT . USE TABLE OF... INITIAL SIZE"

Si alguien me puede ayudar .

Gracias!!!

mystic_soul 03/05/11 15:38:34

Justamente el error esta en como declaraste la tabla..

En vez de
data: ex_messages type bapiret2 occurs 0.

deberia ir
data: ex_messages type bapiret2.

Saludos!

Klare 04/05/11 09:09:15

ps si lo pongo como :
data: ex_messages type bapiret2 occurs 0.
me sale un error en el codigo el campo ex_message es desconocido pero es un campo similar al st_ex_message.
asi q' tambien procedo a declararlo los 2 campos de la siguiente forma.

DATA: st_ex_messages type bapiret2.
DATA: ex_messages TYPE bapiret2 occurs 0.<-----(error)

st_ex_messages-type = 'E'.
st_ex_messages-id = '3'.
st_ex_messages-message = 'ERROR CENTRO CLASE'.
st_ex_messages-message_v1 = 'Centro invalido para la clase,'.
CONCATENATE 'Centro' 'invalido para la clase'',' INTO st_ex_messages-message_v1 SEPARATED BY space.
APPEND st_ex_messages TO ex_messages. <-----(error)

Y me sigue dando el mensaje de error : q' el OCCURS 0, no puede ser soportado q' ingrese un tipo table of....initial size.

Espero y me puedas ayudar!




Husos Horarios son GMT. La hora en este momento es 16:53:55.

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