Cómo bloquear o desbloquear celdas de datos individuales en una cube view de OneStream

Controlar entrada de datos en OneStream

Caso de uso: Tenía una cube view en la que necesitaba activar o desactivar selectivamente la entrada de datos para celdas de datos específicas dentro de la vista, según ciertos criterios. Sí, existe la propiedad Modify Data para toda la cube view, así como para columnas individuales dentro de la cube view. Pero, ¿qué sucede si desea activar o desactivar la entrada para celdas de datos específicas dentro de una columna de datos? Sí, se puede hacer.

La solución: Para este caso decidí usar Cube Business Rules, específicamente Conditional Input. Las reglas financieras de negocio de Conditional Input controlan la entrada de datos haciendo que una celda de datos sea de solo lectura o no, según la lógica definida en la regla. Deben asociarse al cubo y se ejecutan cada vez que se renderiza una cube view. Tenga en cuenta que, como se ejecutan para cada celda en una recuperación de datos, el rendimiento debe ser una alta prioridad. Sin embargo, permiten un enfoque controlado por código para gestionar el acceso a los datos.

Cómo hacerlo:

1. Cree una Finance Business Rule y asígnela a su cubo. Dentro de las propiedades del cubo hay una sección de business rules, asígnela allí. En mi ejemplo la asigné a la Business Rule 8, por lo que se ejecutará al final del orden.

Propiedades del cubo de OneStream

Ejemplo de la Finance Business Rule usando el caso de Conditional Input.

Editor de regla financiera de entrada condicional

2. Cree su Cube View. Para este ejemplo, quiero establecer el estado de entrada condicional para cuentas específicas en la columna de datos “Feb 2021”. Quiero que algunas celdas de datos de esta columna queden bloqueadas para el ingreso de datos, pero no todas. Por eso no puedo usar simplemente la propiedad “Can Modify Data” de la cube view, ya que esa propiedad aplica a toda la columna de datos.

Ejemplo de cube view febrero 2021

3. Asegúrese de que la propiedad Can Modify Data esté configurada en True. El acceso adicional será determinado por la Finance Business Rule de Conditional Input.

Propiedad Can Modify Data en true

4. En la Finance Business Rule de Conditional Input necesito evaluar varias condiciones, tanto de Time como de Account. Lo logro usando llamadas de API como api.pov.time.name o api.pov.account.name y asignando su valor a variables.

Variables de tiempo y cuenta en regla de entrada condicional

5. El siguiente paso es probar condicionalmente el contenido de estas variables y cambiar el estado de entrada de datos de la celda en consecuencia. Para este ejemplo, modifico el estado de entrada de datos si Time es igual a 2021M2 y Account es igual a A_6002A.

Condición de entrada si tiempo 2021M2 y cuenta A_6002A

6. Luego necesito devolver el tipo de entrada condicional usando ConditionalInputResultType y asignarle el valor NoInput.

Código de retorno NoInput
Código completo de la business rule

Observe cómo una celda de datos tiene una propiedad en su Cell Status llamada Read Only con un valor true o false. Eso es lo que cambia el código.

Estado de celda de solo lectura

Ahora, cuando se ejecuta la cube view, la celda de datos que cumple los criterios de la business rule pasa a ser una celda de solo lectura.

Resultado final de celda bloqueada

Como recordatorio final, siempre tenga en cuenta que esta regla se ejecutará para cada celda de datos que se recupere, por lo que el rendimiento de su código es esencial. Sin embargo, le brinda la capacidad de ajustar con gran precisión el acceso a los datos hasta el nivel de celdas individuales.