PDA

Ver la Versión Completa : Problemas con module en modulpool


cramr
22/10/10, 08:49:33
Vereis,

Tengo un modulpool. En una dynpro hay muchos campos.

Por ejemplo, yo quiero que si cambia el valor del campo "cliente", me calcule y actualice en la dynpro en valor del campo "pais cliente".

Entonces tengo hecho algo así:

CHAIN.
FIELD ZCABECERA-CLIEN
MODULE validar_cliente ON REQUEST.
MODULE cargar_pais ON CHAIN-REQUEST.
ENDCHAIN.

Es decir, cuando el campo cliente cambia, por un lado me comprueba que es un cliente correcto, y por otro lado, dentro del module "cargar_pais" lo que me hace es calcular el valor del pais del cliente, de la KNA1, y guardarlo en el campo de la dynpro ZCABECERA-PAISC.

El problema es que lo calcula bien, pero cuando sale del module, y sigue ejecutando el resto del PAI de la dynpro, dicho valor lo pierde y deja el que tenía anteriormente.

Se supone que si en el FIELD añado el campo pais, si que lo mantiene aunque lo cambie en el MODULE pero claro, no me vale porque entonces entraría en dicho MODULE también cuando cambie en la dynpro el valor del país, y yo solo quiero que esos dos modules se ejecuten cuando cambio el cliente.


No se si me he expresado bien. El tema es que algunas veces, esto mismo en otras dynpros lo hace bien, pero otras no.

Igual es por el lio que tengo de los CHAIN..ENDCHAIN, FIELD, ON REQUEST, ON INPUT...


A ver si alguien pudiera ayudarme con esto por favor.

Muchísimas gracias.

agv1976
26/10/10, 15:38:23
Como tienes echo el modulpool tienes un table control?, tiene que ir en el pai, si es un table control utiliza el asistente, el valor lo guarda en el field on request

Mari.Sole
03/11/10, 23:38:41
Hola, yo he tenido varias veces el mismo problema últimamente y lo he solucionado directamente quitando las opciones:
ON REQUEST.
ON CHAIN-REQUEST.

Prueba ejecutar sin esas opciones los module y ver si mantiene los datos correctamente.

Saludos!

Marlon21
05/11/10, 15:46:53
Solo tienes que declararlos asi como dice mari.sole

CHAIN.
FIELD ZCABECERA-CLIEN
MODULE validar_cliente.
MODULE cargar_pais.
ENDCHAIN.


module validar_cliente input.
(codigo)
endmodule. " validar_cliente INPUT

module cargar_pais input.
(codigo)
endmodule. " cargar_pais INPUT

cramr
08/11/10, 10:47:41
Vamos que decis que lo calcule siempre, cada vez que se hace algo en la dynpro. El problema es que solo quiero hacerlo cuando cambia el valor, ya que el otro campo que calcula, se puede modificar, y si no cambia el campo primero, no tieneq ue calcularse. Lo haría de forma erronea. Pero intentaré jugar con eso.

De todas formas ahora no estoy en ese cliente, ya probaré y os cuento


Gracias por las ideas