PDA

Ver la Versión Completa : Problema con las validaciones


gabantxo
16/05/07, 07:14:06
Hola a todos,

Tengo un problema con una validación, mi intención es de crear un validación mediante la tranx. ob28 , lo que quiero es que sólo me deje contabilizar en una clase de doc especifica para unos usuarios en concreto. Pues bien tengo un problema no me funciona correctamente la validación.

En la condición introduzco la siguiente sentencia (si el codigo de tranx es fb01 y (la clase de doc es z1 o z2);

SYST-TCODE = 'FB01' AND ( BKPF-BLART = 'Z1' OR BKPF-BLART = 'Z2' )

El la verificación introduzco lo siguiente (si el usuario no es que me muestre el mensaje)

BKPF-SNAME <> 'usu1'

Esta validacion no me funciona sabe alguno pq???

En lugar de poner BKPF-SNAME <> 'usu1' pongo BKPF-SNAME = 'usu1' hace la validacion que ami no me sirve es decir deja contabilizar a todos menos al usu1,

Espero que me haya esplicado correctamente si tienen alguna duda o sugerencia por favor mandeme un email o escreiban una respuesta

Gracias

email: rgabantxo@i3s.es

Escono
16/05/07, 13:02:24
Hola Gabantxo, yo creo que éste problema lo deberías solucionar por medio de roles de seguridad, dado que cuando tu creas una clase de documento existe un campo que es grupo de autorización.
Y dicho campo es tomado en cuenta con su correspondiente objeto de autorizacion y el nombre técnico es F_BKPF_BLA.
Te comento que en nuestra organización lo utilizamos de esa manera y no hemos tenido ningún inconveniente.
Espero que te sirva mi consejo.
Saludos.

Esteban

RGOMEZ
16/05/07, 17:41:24
Hola,

Usa el campo SYST-UNAME en lugar de BKPF-SNAME .

RGOMEZ
16/05/07, 17:42:11
Hola,

Usa el campo SYST-UNAME en lugar de BKPF-SNAME.

Saludos,

abapedro
17/05/07, 02:30:44
Hola,

Estoy completamente de acuerdo con Escono. EL objetivo es manejar una autorización, lo cual no es materia de una validación.

Lo apropiado y conveniente es manejar el punto incluyendo la autorización en un rol y asignando el rol al usuario. De esta manera la autorización es visible y además es dinámica pues se puede asignar y desasignar facilmente. Es obvio que el usuario autorizado no es eterno y seguramente en el futuro se querra autorizar a otros usuarios.

Por otra parte, asignar autorizaciones a través de caminos diferentes a los roles (a través de validaciones, poniendolas directamente en el código ABAP, mediante field-exits, etc) genera esquemas de seguridad débiles. En el caso presente, quien pueda manejar validaciones puede modifcar la autorización y con esto se crea un agujero de seguridad. (asumo claro está, que la edición y asignación de roles está controlada y reservada a un grupo dedicado a esa labor)

gabantxo
17/05/07, 15:38:10
Muchas gracias por vuestras respuestas, lo de los roles ya lo habiamos pensado pero es una empresa muy grande y hay un monton de users y con un monton de rolles... y en algunos tienen para contabilizar en todas las clases de doc. otros solo en algunos... un jaleo....

Al final si que lo he conseguido con la validación funciona correctamente lo q estaba mal era la sentencia en lugar de OR hay que poner un AND puesto que al poner la siguiente sentencia (syst-uname <> 'usu1' or syst-uname <> 'usu1') las 2 negaciones dan un giro a la sentencia por lo cual hay que poner (syst-uname <> 'usu1' AND syst-uname <> 'usu1').

Muchas gracias por vuestra colaboración,

Ahora tengo un problema al transportarlos , hay alguna forma especial para transportar las validaciones???

gracias de nuevo

Escono
17/05/07, 18:26:18
Hola, me alegro que hayas encontrado la solución a tus problemas. Igualmente en cuanto al tamaño de la empresa no debería restrigirte una solución estandar propuesta por SAP, es mas es una de las recomendaciones que hacen los auditores de sistemas, en cuanto a seguridad.
No obstante ello te cuento, que el transporte se realiza de la misma manera que cualquier otra orden de transporte. Pero tenés que tener en cuenta que deberá tener que ejecutar el programa RGUGBR00, que te sirve para generar las sustituciones y validaciones.
Espero que te sirva mi consejo.
Saludos.

Esteban

gabantxo
21/05/07, 10:15:33
Hola, gracias por tu respuesta... pero me podías explicar que es lo que hace ese programa exactamente¿¿¿ Cuando tengo que ejecutarlo? si puedes por favor explicame como transportarías tu la validación , gracias de nuevo

Email: rgabantxo@i3s.es

Escono
21/05/07, 13:49:51
Hola, te cuento que éste programa genera y re-genera las validaciones, como también los set que tengas vinculados a las mismas.
En cuanto al transporte, deberías ejecutar la transacción STMS desde el ambiente de desarrollo indicando el mandante de destino y una vez hecho dicho transporte, deberías ejecutar el programa que te mencioné anteriormente en el mandante destino.
Por lo que creo si tu no eres de basis, seguramente no tengas autorización para hacer el transporte de la orden. De ser así tendrías que solicitarlo a la persona autorizada, es decir, aquella persona que lo realiza habitualmente.
Saludos.

Esteban

gabantxo
21/05/07, 15:03:12
Efectibamente no soy de Basis, yo solo tengo que generar y liberar la orden para que los de sistemas la pasen a producción, muchas gracias por tus respuesta claras y rápidas, esto lo tengo qu hacer el miercoles que viene te mantendré informado, espero que me salga bien,

Muchas gracias de nuevo, lo intentaré el miercoles.

Rober,