Restringir Centro Costos Me51n

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • johava
    Member
    • abr
    • 79

    #1

    Restringir Centro Costos Me51n

    Hola a tod@s, hoy tengo problema que resolver y que según he leído en el foro otras personas han tenido pero no encontré que haya una solución así que la volveré a plantear a ver si alguien puede ayudar.

    Se necesita restringir que en la transacción ME51N a través de un rol solo pueda acceder a un centro de costos especifico. Se han activado los objetos K_CCA K_CSKS A_S_KOSTL pero permite ingresar cualquier centro de costos.



    Gracias por la Colaboración.

    JOHAVA
  • bruky
    Senior Member
    • may
    • 555

    #2
    Buenos días johava,

    Leyendo una nota correspondiente comenta lo siguiente "There is no authorization object for Cost Center in the standard." por lo que me dá que la validación o authority-check no es estandar en las PR.

    Quizá tendrías que echar un vistazo con algún desarrollador para analizar la posibilidad de añadir en la correspondiente user-exit/enhancement etc. un authority-check que chequee el objeto que necesites para CeCos (K_CSKS, etc.).

    Te dejo el numero de la nota revisada por si quisieras echarle un vistazo:
    1874514

    Espero que puedas solucionar tu restricción pronto.
    Avisanos con cualquier novedad.
    Un saludo.
    Persigue tu objetivo, nunca te rindas!

    Comentario

    • johava
      Member
      • abr
      • 79

      #3
      BRUKY gracias por responder, había leído que por el lado de roles y objetos de autorización dicho control no se puede, por tal razón también he considerado la posibilidad que a través de un código se pudiera incluir dicha validación y en tal sentido ya tengo identificado dentro del programa ABAP que ejecuta la Trx ME51N en que parte hace la validación de que el centro de costos exista y que previo a esa lectura deberia incluir el código que aplique el control que requiero.

      Se que en SAP se puede incluir código sobre el estandar user-exit/enhancement e incluso que algunas BADIS pueden hacer validaciones, lo que requiero ahora es que algún ABAP me pudiera indicar como encontrar los user-exit del programa y como incluir mi código.

      NOTA: Anexo imagnes de donde se debe hacer la validación, el include que se debe afectar y las tablas de roles y objetos para combinar el control que se requiere.
      Archivos Adjuntos

      Comentario

      • bruky
        Senior Member
        • may
        • 555

        #4
        Buenos días johava,

        La verdad es que yo de ABAP tengo muy poca idea, por lo que no se si voy a poderte ser de ayuda con el tema de la incrustación del authority-check.

        Buscando en internet, he encontrado la siguiente url en la que describe un programa para realizar busquedas de user-exits según transacciones:



        El programa consistiría en el siguiente:

        ************************************************** ****
        REPORT ZUSER_EXIT.
        tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
        tables : tstct.
        data : jtab like tadir occurs 0 with header line.
        data : field1(30).
        data : v_devclass like tadir-devclass.
        parameters : p_tcode like tstc-tcode obligatory.

        select single * from tstc where tcode eq p_tcode.
        if sy-subrc eq 0.
        select single * from tadir where pgmid = 'R3TR'
        and object = 'PROG'
        and obj_name = tstc-pgmna.
        move : tadir-devclass to v_devclass.
        if sy-subrc ne 0.
        select single * from trdir where name = tstc-pgmna.
        if trdir-subc eq 'F'.
        select single * from tfdir where pname = tstc-pgmna.
        select single * from enlfdir where funcname =
        tfdir-funcname.
        select single * from tadir where pgmid = 'R3TR'
        and object = 'FUGR'
        and obj_name eq enlfdir-area.

        move : tadir-devclass to v_devclass.
        endif.
        endif.
        select * from tadir into table jtab
        where pgmid = 'R3TR'
        and object = 'SMOD'
        and devclass = v_devclass.
        select single * from tstct where sprsl eq sy-langu and
        tcode eq p_tcode.
        format color col_positive intensified off.
        write:/(19) 'Transaction Code – ',
        20(20) p_tcode,
        45(50) tstct-ttext.
        skip.
        if not jtab[] is initial.
        write:/(95) sy-uline.
        format color col_heading intensified on.
        write:/1 sy-vline,
        2 'Exit Name',
        21 sy-vline ,
        22 'Description',
        95 sy-vline.
        write:/(95) sy-uline.
        loop at jtab.
        select single * from modsapt
        where sprsl = sy-langu and
        name = jtab-obj_name.
        format color col_normal intensified off.
        write:/1 sy-vline,
        2 jtab-obj_name, "hotspot on,
        21 sy-vline ,
        22 modsapt-modtext input on,
        95 sy-vline.
        hide: jtab-obj_name.
        endloop.
        write:/(95) sy-uline.
        describe table jtab.
        skip.
        format color col_total intensified on.
        write:/ 'No of Exits:' , sy-tfill.
        else.
        format color col_negative intensified on.
        write:/(95) 'No User Exit exists'.
        endif.
        else.
        format color col_negative intensified on.
        write:/(95) 'Transaction Code Does Not Exist'.
        endif.

        at line-selection.
        * get cursor field field1.
        * check field1(4) eq 'JTAB'.
        * set parameter id 'MON' field sy-lisel+1(10).
        * call transaction 'SMOD' and skip first screen.

        set parameter id 'MON' field jtab-obj_name.
        call transaction 'SMOD' and skip first screen.

        ************************************************** **********

        Una vez tengas localizada la user-exit del evento (por ejemplo: justo después de darle al botón de guardar), habría que añadir el authority-check correpondiente, pero esta lógica de validación no la conozco, a ver si nos puede echar un cable un desarrollador que esté viendo el post. Si no, podrías colgar tu duda sobre el authority-check en el apartado de ABAP del foro?

        Espero que puedas solucionar tu requerimiento lo antes posible.
        Un saludo.
        Persigue tu objetivo, nunca te rindas!

        Comentario

        Trabajando...