MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   User Exit Me51n (foro/showthread.php?t=30355)

ballan 02/06/09 11:16:16

A ver ni balla ni ballar es ballan :P

Si quieres chequear si el pedido tiene mas de 3000 euros y dar un mensaje

Implementa la badi que te he dicho y utiliza el metodo check, en este metodo se para cuando pulsas el boton verificar del pedido o bien cuando le das al boton de grabacion primero verifica y luego graba

El codigo seria algo por el estilo

data: lt_items type PURCHASE_ORDER_ITEMS.

data: lt_item like line of lt_items,
ls_po_item type mepoitem.

data: lv_importe type mepoitem-menge.

clear: lv_importe.

lt_items = im_header->get_items( ).

loop at lt_items into ls_item.

ls_po_item = ls_item->get_data( ).

add ls_po_item-menge to lv_importe.

endloop.

if lv_importe > 3000.

mmpur_message ... aqui iria el mensaje
ch_failed = 'X'.

endif.

Paola79 02/06/09 11:21:52

No me para en ningun lado el break que puede ser he revisado que este todo activado y es correcto... Pero no para... Para ver cual es el dato del precio...



Me podrias dar una pistilla...

Muchas gracias y siento ser tan pesada...

Paola79 02/06/09 11:27:38

Perdon por lo del nombre. Ya esta...

Un saludo ygraicas

Paola79 15/06/09 14:47:15

Hola buenas tardes,

Ya me funciona la validación correctamente, desde hace ya días, el consultor ha echo pruebas, y le salta en el resto de tipo de pedidos, y solo queremos que salga en un determinado tipo de pedidos.

La validación la estoy haciendo en las items, ya que es ahi que el importe no sea superior a 3000, pero ahi no tengo la clase de pedido, que en mi caso será tipo de pedido SD, ya que se encuentra este dato en la cabecera (header).

Mi pregunta es: ¿Cómo puedo pasar el tipo de pedido en la BADI a las posiciones para que solo me salga en ese tipo de pedido?

Muchas gracias

torrescano 18/08/09 13:14:53

buen dia Ballan.

vi tus post's, resulta q tengo q hacer una validacion en la ME51N en la solicitud de pedido con imputacion a un centro de costo.

implemente la bdai ME_PROCESS_REQ_CUST en el metodo CHECK,
tengo el siguiente codigo:

METHOD if_ex_me_process_req_cust~check.
break vandrade.
DATA: lt_items TYPE mmpur_requisition_items.
DATA: ls_item LIKE LINE OF lt_items.
DATA: ls_pr_item TYPE mereq_item.
DATA: ls_po_item TYPE mepoitem.

lt_items = im_header->get_items( ).

LOOP AT lt_items INTO ls_item.

ls_po_item = im_item->get_data( ).

IF ls_po_item-kostl NE '223'. "este es mi CeCo
*mensaje
ENDIF.
ENDLOOP.
ENDMETHOD.

bueno pues resulta q no puedo activar el metodo pues me dice el sigueinte error.

Clase ZCL_IM_ME_PROCESS_REQ_CUST,Método IF_EX_ME_PROCESS_REQ_CUST~CHECK
The field "IM_ITEM" is unknown, but there is a field with the similar
name "LS_ITEM" . . . .

si me pudieras orientar por favor, muchas gracias, saludos.

torrescano 21/08/09 15:12:30

saludos foro. pos aki de nuevo, ya resolvi mi problema.

pues resulto q el metodo fue process_account.

aki le sdejo el codigo por si alguien le sirrviera.

METHOD if_ex_me_process_req_cust~process_account.

DATA: ls_item TYPE mepoitem,
ls_exkn TYPE exkn.
DATA: v_kostl TYPE kostl.

break vandrade.

ls_item = im_account->get_exknx( ).

ls_exkn = im_account->get_exkn( ).

CHECK NOT ls_exkn-kostl IS INITIAL.

* MOVE: ls_exkn-kostl TO v_kostl.

AUTHORITY-CHECK OBJECT 'Z_MM_CECO' "'K_CSKS'
ID 'ACTVT' FIELD '03'
ID 'KOSTL' FIELD ls_exkn-kostl.

IF sy-subrc NE 0.
MESSAGE 'Verificar Centro de Costo' TYPE 'E'.
ENDIF.


ENDMETHOD.


Husos Horarios son GMT. La hora en este momento es 17:54:51.

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