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
  #11  
Viejo 01/06/09, 09:33:51
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Muchas gracias david, ya lo recibi pero la badi no hace lo que quiero yo...

Necesito solo meter un mensaje que diga que el grupo de compras no corresponde al grupo de articulos introducido, he mirado todo de arriba a bajo y no me vale nada y hay una user exit pero no me para en la ME51N...

Alguien me puede ayudar.

Saludos,
Responder Con Cita
  #12  
Viejo 01/06/09, 09:47:51
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Tienes que implementar la BADI ME_PROCESS_REQ_CUST

1.- Vas a la transaccion SE19 marcas el flag de badi clasico y metes el nombre ME_PROCESS_REQ_CUST

2.- Le das al boton implementar y le asignas un nombre a tu implementacion (por ejemplo ZME_PROCESS_REQ_CUST)

3.- Una vez que la hayas implementado dispones de los metodos PROCESS_HEADER y PROCESS_ITEM que se disparan cada vez que se produce un cambio en un campo de cabecera o posicion, tambien dispones del metodo check salta antes de la creacion y tambien cuando el usuario pulsa el boton de verificar
Responder Con Cita
  #13  
Viejo 01/06/09, 10:09:51
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Muchas gracias,

Tengo que hacer la comprobación en una tabla z creada por mi y si no se corresponde darle el error, donde pudo encontrar los datos cargados por pantalla en esta BADI.

Saludos,
Responder Con Cita
  #14  
Viejo 01/06/09, 11:32:19
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Por ejemplo

El metodo process_header te da un parametro llamado IM_HEADER, tu podrias hacer lo siguiente

data: ls_header type MEREQ_HEADER.

ls_header = im_header->get_data( ).

*ahora en ls_header tendrias los datos de cabecera

En el metodo process_item seria lo mismo solo que te da el parametro IM_ITEM en lugar del IM_HEADER

data: ls_item type mereq_item.

ls_item = im_item->get_data( ).

*ahora en ls_item tendrias los datos de la posicion



En el metodo check tienes el objeto cabecera (IM_HEADER), tambien dispones del parametro CH_FAILED que lo puedes utilizar para que el pedido sea invalido

Por ejemplo

data: lt_items type MMPUR_REQUISITION_ITEMS.

data: ls_item like line of lt_items.

data: ls_pr_item type mereq_item.

*Con esto obtengo una tabla con todos los objetos posicion
lt_items = im_header->get_items( ).

loop at lt_items into ls_item.

*Ahora en ls_pr_item tendria los datos de posicion (algo parecido a los *campos de la eban)
ls_pr_item = ls_item->get_data( ).

if ls_pr_item-menge <= 0.

*Con esto introduciria el mensaje de error correspondiente en el colector
mmpur_message sy-msgty sy-msgid sy-msgno sy-msgv1 sy-msgv2
sy-msgv3 sy-msgv4.

ch_failed = mmpur_yes.
endloop.
Responder Con Cita
  #15  
Viejo 02/06/09, 09:53:06
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Exclamation

BALLA muchisimas gracias ya lo tengo funcioando, una pregunta podría utlizar la misma badi para hacer una validación en la ME21N.

Un saludoa
Responder Con Cita
  #16  
Viejo 02/06/09, 10:13:44
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Para los pedidos dispones de la badi ME_PROCESS_PO_CUST en lugar de la ME_PROCESS_REQ_CUST que es para solicitudes de pedido

El funcionamiento es exactamente el mismo en las dos badis solo que evidentemente una te proporcionara informacion de la EBAN y la otra de la EKKO/EKPO
Responder Con Cita
  #17  
Viejo 02/06/09, 10:36:02
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Gracias BALLAN tengo una duda el ls_items de que tipo lo creo¿?...

Saludos
Responder Con Cita
  #18  
Viejo 02/06/09, 10:51:39
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
La cabecera seria de tipo MEPOHEADER y la posicion del tipo MEPOITEM

De todas formas para poder saber eso yo hago lo siguiente:

Haciendo un resumen muy superficial una BADI es una INTERFAZ que se puede ver a traves de la transaccion SE24 (si miramos la definicion de la badi a traves de la SE18 veremos que la badi ME_PROCESS_PO_CUST tiene definida la interfaz IF_EX_ME_PROCESS_PO_CUST)

Si miramos la IF_EX_ME_PROCESS_PO_CUST en la SE24 veremos todos los metodos de la badi, al ser una interfaz solo vienen las definiciones y los parametros de los metodos DENTRO NO TIENE CODIGO

Si nos vamos al metodo PROCESS_ITEM por ejemplo veremos que como parametro recibe el parametro IM_ITEM cuyo tipo es otra interfaz IF_PURCHASE_ORDER_ITEM_MM si vamos a ver esa interfaz por la SE24 veremos que en dicha interfaz existe un metodo llamado GET_DATA que si miramos los parametros veremos que devuelve una estructura del tipo MEPOITEM

Bueno no se si he aclarado algo o lo he liado mas pero espero que se me entienda
Responder Con Cita
  #19  
Viejo 02/06/09, 10:51:39
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Exclamation

Le he puesto el BREAK para ver si me para donde quiero yo porque el chequeo que quiero es que si el importe es superior a 3.000 que de error...

Muchas gracias
Responder Con Cita
  #20  
Viejo 02/06/09, 10:54:23
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Muchas gracias BALLAR, me ah quedado claro, porque yo y las badis no nos llevabamos hasta ahora pero el problema como te he expuesto anteriormente no me para el break donde quiero.

Un saludo
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 16:09:20.


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