Pages

Feb 1, 2011

Validaciones en BPC. Nueva Seguridad

Como sabemos, SAP BPC versión Netweaver tiene algunas características que funcionan de manera diferente a la versión de Microsoft. Las Validaciones de BPC es una de ellos.

Vamos a ver cómo estas validaciones pueden servir de gran ayuda en el mantenimiento de la integridad de datos.


El propósito de tener validaciones, como habrás adivinado, es evitar que registros inválidos o erroneos se graben en el cubo. Ahora bien, esta afirmación puede plantear muchas preguntas.
¿Válidos de acuerdo con quién o qué?

Lo que es válido para una aplicación BPC puede ser válido para otras aplicaciones. Algo puede no ser válido si se introduce de forma manual, pero lo mismo puede ser válido si se carga desde un paquete del Data Manager.

¿En qué se diferencia esto de tener un Script Logic para revisar y borrar los registros "no válidos"? Vamos a tratar de entender esta función y responder a algunas preguntas.

En primer lugar, las validaciones de SAP BPC 7 NW no dejan que registros inválidos se escriban en la base de datos. Esta es la diferencia de tener un Script Logic para corregir o borrar los registros no válidos, porque para corregir los registros no válidos, los registros primero debe estar disponibles en el cubo.

¿Quién determina si un registro es válido o no válido? El usuario controla lo que es válido y lo que no es válida.


Así que la siguiente pregunta lógica es cómo se puede crear dichas validaciones. Bueno, para hacer eso, por ahora, tenemos que ir a SAP GUI de BPC. En SAP GUI, la operación para mantener la validación es UJ_VALIDATION.


Para comenzar con las validaciones, tenemos que definir una dimensión conductora. Una aplicación sólo puede tener una dimensión conductora, pero varias aplicaciones en el mismo conjunto de aplicaciones pueden tener la misma dimensión conductora, si así se quiere. No es obligatorio definir la dimensión conductora para cada solicitud, si queremos crear validaciones para unas pocas aplicaciones. Como se muestra a continuación, podemos elegir la que debe de ser nuestra dimensión controladora para la aplicación, en nuestro conjunto de aplicaciones.







El siguiente paso es establecer reglas de validación por la dimensión. Así que tenemos que elegir primero la dimensión de la que se va a establecer la norma, tal como se muestra a continuación.






En cuarto lugar, a la hora de elegir los miembros asignados al crear la regla, hay que tener en cuenta que un miembro puede asignarse a varias reglas y una regla puede aplicarse a varios miembros. En otras palabras, es una relación N: N entre los miembros de dimensión y las reglas de validación. Si un miembro de dimensión se rige por la regla 1, regla 3 y regla 6, las tres normas deben cumplirse.


Por último, debe tenerse en cuenta que cuando se están definiendo las reglas, estamos definiendo las dimensiones y los miembros de la dimensión pero en ninguna parte se trata la aplicación. Entonces, ¿qué significa esto? Esto significa que las reglas que se definen aquí son aplicables a todas las aplicaciones en las que la dimensión de la que estamos creando las reglas es su dimensión conductora.

Así en el ejemplo anterior, las reglas que hemos creado para P_ACCT serán aplicables a todas las aplicaciones del AppSet donde P_ACCT sea dimensión conductora.

Si las reglas que queremos definir son complejas y no se puede configurar simplemente con = y <>, entonces podemos implementar esas normas como BADI y en el mantenimiento de la regla, podemos seleccionar la aplicación badi como se muestra a continuación.




Podemos establecer varias reglas para cada dimensión y podemos asignar los miembros de la dimensión para cada regla. Cada regla puede incluir más dimensiones y más miembros de la dimensión.


En la captura de pantalla siguiente se muestra un ejemplo de una regla para la dimensión P_ACCT. Esta regla es válida para los miembros dentro del intervalo [ CE0004000 CE0005000 ] y afirma que la dimensión Category no puede tener el valor 'FORECAST'



Debemos tener en cuenta lo siguiente en esta situación. En primer lugar, los miembros asignados son desde CE0004000 a CE0005000 - ¿así que tenemos que tener los miembros CE0004000 y CE0005000 como miembros válidos para la dimensión P_ACCT?

La respuesta es NO.

No es necesario que estos miembros estén definidos como miembros de la dimensión. Esto funciona como si fueran comodines. Si definimos la regla de arriba, será válida para todos los miembros válidos dentro de este rango. Por lo tanto los miembros como CE0004510, CE0004520, etc, deben de obedecer esta regla, pero los miembros como CE0005010,CE0003990, etc, no estarán obligados por esta norma.

Así que esto nos abre una posibilidad para definir un amplia rando, de 000000000 a ZZZZZZZ, para que todos los posibles miembros serán considerados en ese rango.

Para aquellos que han trabajado con SAP R/3 y SAP BW, puede que esten familiarizados con esta forma de trabajar.


En segundo lugar, aunque se pueden tener rangos de los miembros asignados a la dimensión de lo que estamos creando las validaciones, no podemos tener rangos en las dimensiones adicionales que elegimos en la norma.

Así que volviendo al ejemplo de la regla que hemos creado anteriormente para P_ACCT, no podemos definir los rangos de la Category y los miembros que elegimos para la Category deben de ser válidos para los miembros de esa dimensión. Los operadores disponibles son = y <>. Si optamos por <>, entonces podemos definir varios valores en la misma línea.

En tercer lugar, podemos utilizar múltiples dimensiones en una regla.




Hasta ahora hemos visto la manera de crear reglas de validación. La siguiente pregunta es que una vez que hemos definido estas reglas, tenemos que usarlas en todas partes o ¿tenemos opciones ? En la actualidad, tenemos las siguientes tres opciones.




Así que podemos activar las validaciones o desactivarlas para journal, la planificacion manual o Data Manager. El Data Manager incluye Script Logic y las reglas de consolidación.

Estas validaciones evitarán que los registros no válidos se guarden. Por ejemplo, si definimos la regla de validación y existe un dato no valido, nos aparecerá un mensaje de error como se muestra a continuación.



Podemos copiar o borrar las reglas de validación como parte del mantenimiento de la regla. También puede copiar las validaciones de un AppSet a otro si es necesario.

Las autorizaciones para el mantenimiento de las reglas de validación se rigen por las normas de autorización de SAP para la operación de mantener estas validaciones.

¿Qué pasaría si la dimensión, la que elegimos como dimensión conductora de las reglas de validación se eliminara del AppSet? En ese caso todas las reglas de validación para esa dimensión también se eliminan.

¿Y si borramos AppSet? Obviamente, todas las validaciones para este AppSet también se eliminarán.

Por lo tanto, tenemos otra validación que nos ayuda a mantener la integridad de los datos en la versión Netweaver de BPC.

No comments:

Post a Comment