No permitir acceso a ciertos infotipos desde PA30

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • playa82
    Member
    • abr
    • 34

    #1

    No permitir acceso a ciertos infotipos desde PA30

    Hola!!

    Tengo un "problemilla": hemos creado un nuevo infotipo y no debemos permitir que el usuario acceda a él por la PA30. De manera que he implementado el siguiente código dentro de la implementación ZHRPAD00INFTY de la badi HRPAD00INFTY(dentro del método BEFORE_OUTPUT).
    El problema es que el error me sale en forma de popup y luego me sale de la PA30. ¿Hay alguna manera de que salga un error normal y que no me saque de la PA30?

    Un saludo y muchas gracias!
    Editado por última vez por playa82; 05/04/2011, 06:04:21.
    Yo misma
  • Floren
    Senior Member
    • abr
    • 209

    #2
    Hola apañá,

    Se me ocurre algo, a ver que te parece:

    Entiendo que el problema es que al pasar por el mensaje de error siempre te devuelve a la pantalla de inicio. La idea sería que cuando se acceda directamente al infotipo por la PA30 se pase por el mensaje y te saque, pero cuando vengamos del otro infotipo no se pase, y se pueda trabajar el infotipo de cliente desde la PA30 con normalidad.

    Esto creo que se podría conseguir vía código utilizando las sentencias IMPORT y EXPORT a memoria.

    En el PAI del infotipo estandard se puede hacer un EXPORT memory, donde la variable memory tenga el valor "X".

    En el PBO del infotipo de cliente, el código sería el siguiente:
    WHEN '9112'.
    clear memory.
    IMPORT memory.
    IF ( memory NE "X" ) and ( sy-tcode EQ 'PA30' ).
    MESSAGE e043(zrh_mc_mensajes) WITH 'PA9112' sy-tcode.
    ENDIF.

    Luego me dices si funciona.

    Un saludo
    Florentín Navarrete Moya
    SAP HCM Consultant
    Mail: administracion@blogdefloren.com
    Blog: www.blogdefloren.com

    Comentario

    • playa82
      Member
      • abr
      • 34

      #3
      Hola Floren!

      Muchas gracias por tu idea, no funcionaba como yo quería pero haciéndole unos cambios ya me funciona bien:


      IMPORT l_mem = g_memoria FROM MEMORY ID '9112'.
      IF ( g_memoria NE 'X' ) AND ( sy-tcode EQ 'PA30' ).
      MESSAGE i043(clase) DISPLAY LIKE 'E'.
      LEAVE TO SCREEN 0.
      ENDIF.

      Un saludo!
      Editado por última vez por playa82; 05/04/2011, 06:04:59.
      Yo misma

      Comentario

      Trabajando...