#2
|
|||
|
|||
Ya solucione
A la final solucione, utilice la BADI ZME_PROCESS_REQ_CUST, en la Interface PROCESS_ITEM, tuve que crear una Tabla Z, donde guardaba el usuario, la Sol. Pedido y el estado de Liberacion. Aqui anexo el codigo para, espero sirva de ayuda
* Para la Interface PROCESS_ITEM. IF sy-tcode = 'ME54N' OR sy-tcode = 'ME55'. solpedido = w_eban-banfn. usuario = sy-uname. estado = mreqitem-frgzu. SET PARAMETER ID 'BAN' FIELD solpedido. SET PARAMETER ID 'USER' FIELD usuario. SET PARAMETER ID 'ESTA' FIELD estado. * Tabla Z donde guardo el usuario, la Sol. Ped y el estado de Liberacion SELECT SINGLE * FROM zval_solped_user INTO w_zval_solped_user WHERE uname = usuario AND banfn = solpedido. IF sy-subrc = 0. n = STRLEN( estado ). n1 = STRLEN( w_zval_solped_user-frgzu ). IF n > n1. MESSAGE e012(zco) WITH 'El usuario' usuario 'ya ha liberado, no puede volver a liberar'. ENDIF. ENDIF. * Fin para la Interface PROCESS_ITEM * En la Interface POST que es cuando se intenta grabar o Anular. GET PARAMETER ID 'BAN' FIELD solpedido. GET PARAMETER ID 'USER' FIELD usuario. GET PARAMETER ID 'ESTA' FIELD estado. SELECT SINGLE * FROM zval_solped_user INTO w_zval_solped_user WHERE uname = usuario AND banfn = solpedido. IF sy-subrc = 0. n = STRLEN( estado ). n1 = STRLEN( w_zval_solped_user-frgzu ). IF n < n1. DELETE FROM zval_solped_user WHERE banfn EQ solpedido AND uname EQ usuario. COMMIT WORK. ENDIF. ELSE. MOVE: usuario TO w_zval_solped_user-uname, solpedido TO w_zval_solped_user-banfn, estado TO w_zval_solped_user-frgzu. INSERT INTO zval_solped_user VALUES w_zval_solped_user. COMMIT WORK. ENDIF. * Fin para la Interface POST |
Herramientas | Buscar en Tema |
Desplegado | |
|
|