MUNDOSAP

MUNDOSAP (foro/index.php)
-   Administración de Sistemas SAP (foro/forumdisplay.php?f=15)
-   -   Restringir Centro Costos Me51n (foro/showthread.php?t=75839)

johava 08/06/16 20:32:17

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 09/06/16 09:46:47

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.

johava 09/06/16 20:17:16

2 Adjunto(s)
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.

bruky 10/06/16 08:49:17

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.


Husos Horarios son GMT. La hora en este momento es 19:33:05.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web