VA01 con referencia; campo grisado

Tengo un caso que no puedo resolver con una variante de transacción (trx. SHD0) y me estoy volviendo loco.

Quieren que cuando el pedido se cree con referencia, un determinado campo que tiene “copiado” de la referencia, no pueda ser modificable.

La idea es muy buena, y muy útil. Considero que no piden magia, de hecho está bien fundamentada.

Sé que con la VOV8 puedo ponerle la variante de transacción a la VA01, para “x” clase de pedido.
La he probado y funciona, puedo hacer que desaparezca el campo, para que no sea editable. El problema es que ocurre con todas las VA01, y necesito que eso se aplique “solo” cuando es con referencia.

Entonces cómo haríamos?
Ideas?

Solo se me ocurre aplicar algún desarrollo @SidV, aunque creo que la opción mas económica es educar a los usuarios.

1 me gusta

Jajajjaa, no aca… parece que aca quieren robots.
Tarde o temprano contratan monos, para que le den enter al teclado nomás.

No comparto la filosofía, pero bueno… no es la primera vez que veo que las empresas que tienen SAP quieren este tipo de cosas. :wink:

Si fueses por un desarrollo Samuel, por cuál irías? Una badi? EH?

Prueba con esto @SidV :

Programa SAPMV45A
Include MV45AFZZ

userexit_field_modification.

Creo que este se adapta a tu condición.

Me avisas

2 Me gusta

Que tal @SidV @Shadowdancer, interesante tema. Presentamos un caso similar, para se utilizo lo que indica @Shadowdancer.

te dejo parte del código por si te sirve.

IF vbak-auart EQ ‘ZZZZ’.
IF screen-name = ‘KUAGV-KUNNR’.
screen-input = 0.
ENDIF.
ENDIF.

con esto bloqueas que el código del cliente no lo puedan modificar.

2 Me gusta

Todavía no lo probé, estoy esperando que mi Basis me libere el código developer (muaaajajajajjaja) ← risa diabólica! jajajajajajjaja :wink:

Gracias por la MEGA info, apenas pruebe les actualizo el tema.


Actualizo, definitivamente es el include y el exit que pasó @Shadowdancer, usé una lógica parecida a la que pasó Mauricio:

IF sy-tcode = 'VA01'.
    IF VBAK-VKGRP IS NOT INITIAL AND
          screen-name = 'VBAK-VKGRP'.
        screen-input = 0.
    ENDIF.
ENDIF. 

Básicamente indica que si estamos en una VA01, y sel campo viene lleno (de otro lado), no permita que el usuario lo modifique. :slight_smile:

Ahora tengo que transportar esto a Calidad para que prueben los usuarios :thumbsup:

1 me gusta

A modo informativo, esto también se puede conseguir a través del layout localizando el dynpro, si el campo viene informado (de cualquier sitio) muestra la información pero no la puedes modificar (esto puede configurarse). El problema que le veo a este modo es que si el campo no viene informado tampoco se podrá modificar…

Antes de recurrir a ABAP, y exits, probé hacerlo vía variantes de imagen (SHD0).
El tema es que no te permite condicionar nada. O aparece, o no aparece.
Y yo necesitaba el “IF” (la condición). :wink:

2 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.