|
#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 |
#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! |
#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. |
#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! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|