|
#1
|
|||
|
|||
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! |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
Hola caralbgro, como estas?
Primero gracias por responder! y segundo gracias por tu aporte! tu ejemplo me salvo! Saludos! |
#4
|
||||
|
||||
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
__________________
Que estes, bien. Suerte chau |
#5
|
|||
|
|||
Si, gracias a tu ejemplo lo pude resolver.. en un principio lo tenia como vos decias.. MESSAGE 'Tal' TYPE E
Saludos! |
#6
|
|||
|
|||
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!!! |
#7
|
|||
|
|||
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! |
#8
|
|||
|
|||
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! |
#9
|
|||
|
|||
Eso es porque la declaración de una tabla interna con la palabra reservada OCCURS no se admite en un contexto Orientado a Objetos... y las BADIS están orientadas a objetos... Lo que debes hacer es declarar tu tabla interna de la siguiente manera: * Tabla de mensajes DATA: ex_messages TYPE TABLE OF bapiret2. * Línea o registro a insertar en la tabla de mensajes. DATA: st_ex_messages TYPE bapiret2. Luego, podrás hacer tu append como cualquier tabla interna... Saludos...
__________________
Miguel Ángel Garcés Ramírez Úlima edición por Garces fecha: 04/05/11 a las 14:45:26. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|