#21
|
|||
|
|||
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. |
#22
|
|||
|
|||
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... |
#23
|
|||
|
|||
Perdon por lo del nombre. Ya esta...
Un saludo ygraicas |
#24
|
|||
|
|||
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 |
#25
|
||||
|
||||
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.
__________________
Saludos amigos SAPeros |
#26
|
||||
|
||||
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.
__________________
Saludos amigos SAPeros |
Herramientas | Buscar en Tema |
Desplegado | |
|
|