Ver Mensaje Individual
  #2  
Viejo 20/11/06, 13:27:31
cams493 cams493 is offline
Junior Member
 
Fecha de Ingreso: sep 2006
Localización: Caracas - Venezuela
Mensajes: 17
Lightbulb 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
Responder Con Cita