Configurar RSL en el empleado para ver sus productos y los productos de sus subordinados

Un usuario Pregunto ✅

Anónimo

¡Hola!

He estado pensando en esta tarea por un tiempo y necesito ayuda con DAX, por favor.

Configuración actual: Una empresa AB tiene un sistema PBI para visualizar transacciones de productos.
Los productos están en: segmentos, que se subdividen en centros de costos, los que se subdividen en centros de costos detallados. Cada segmento tiene una identificación; cada centro de costos tiene su ID y un ID padre de un segmento; cada centro de costos detallado tiene su ID y un ID padre de un centro de costos.
Cada sector, centro de costes y centro de costes detallado tiene un empleado que lo gestiona.

Los empleados están organizados en una jerarquía ellos mismos, esa información se almacena en la tabla EMPLOYEE, donde cada empleado tiene una CLAVE y un MANAGER_ID; se calcula una ruta para cada empleado.

La tabla de hechos con las transacciones está vinculada al detallado_costcenter y a la tabla de empleados, cada transacción tiene un ID de empleado y un ID de detallado_costcenter. El «aprobador» de la transacción no es necesariamente el administrador del centro de costos.

Necesito organizar la seguridad de acceso de manera que el gerente del centro de costos pueda ver las transacciones del propio centro de costos y las de sus subordinados. Es decir, Bob debería ver sus transacciones + de Tom y Marc; John Doe debería verlo todo; Alice debería ver su centro de costos y el centro de costos detallado de Jerry. Jerry debería ver solo sus propias transacciones.

¿Alguien podría ayudarme con cómo usar DAX aquí, para que USERPRINCIPALNAME pueda ver las transacciones del centro de costos propio y subordinado?

Las muestras de datos y el modelo de datos se encuentran a continuación.
MODELO:model.PNG

MUESTRAS DE DATOS:

SEGMENTO
SEGMENT_NAME SEGMENT_MANAGER SEGMENT_ID SEGMENT_MANAGER_EMAIL
productos cosméticos 1 productos cosméticos john.doe@ab.com
comestibles 1 comestibles john.doe@ab.com
CENTRO DE COSTOS
CC_NAME CC_ID CC_PARENT CC_MANAGER CC_MANAGER_EMAIL
cosméticos para el cabello HCC productos cosméticos 21 bob@ab.com
cosmética corporal BCC productos cosméticos 22 alice@ab.com
maquillaje MUP productos cosméticos 23 jack@ab.com
vegetales VG comestibles 22 alice@ab.com
Fruta FG comestibles 22 alice@ab.com
CENTRO DE COSTOS DETALLADO
CCD_NAME CCD_ID CCD_PARENT CCD_MANAGER CCD_MANAGER_EMAIL
champú sh HCC 31 tom@ab.com
gel ge BCC 32 jerry@ab.com
lápiz labial ls MUP 33 pedro@ab.com
tomate tm VG 34 marc@ab.com
pera pr FG 31 tom@ab.com
acondicionador cnd HCC 32 jerry@ab.com
crema cr BCC 33 pedro@ab.com
rubor licenciado en Derecho MUP 34 marc@ab.com
pimenton ppr VG 31 tom@ab.com
plátano bnn FG 32 jerry@ab.com
EMLEADO
EMPLOYEE_KEY EMPLOYEE_EMAIL MANAGER_ID SENDERO
1 john.doe@ab.com 0 1
21 bob@ab.com 1 1 yo 21
22 alice@ab.com 1 1 de 22
23 jack@ab.com 1 1 yo 23
31 tom@ab.com 21 1 yo 21 yo 31
32 jerry@ab.com 22 1 yo 22 yo 32
33 pedro@ab.com 23 1 yo 23 yo 33
34 marc@ab.com 21 1 yo 21 yo 34

¡Cualquier ayuda muy apreciada! Cualquier comentario sobre el modelo de datos también es muy bienvenido.

Anónimo

Encontré este tutorial https: //community.powerbi.com/t5/Desktop/Implementing-RLS-to-account-for-dual-roles-possible/mp/238 …
Donde puede asignar un usuario a un visor y especificar userprincipalname () a través de un viewerUPN.

Esta solución creó algo de redundancia de datos, pero ayudó.

Anónimo

Encontré este tutorial https: //community.powerbi.com/t5/Desktop/Implementing-RLS-to-account-for-dual-roles-possible/mp/238 …
Donde puede asignar un usuario a un visor y especificar userprincipalname () a través de un viewerUPN.

Esta solución creó algo de redundancia de datos, pero ayudó.

¿Has visto la presentación de Reza de MBAS?

https: //community.powerbi.com/t5/MBAS-Gallery/Microsoft-Power-BI-Unleash-row-level-security-patterns …

Anónimo

En respuesta a MattAllington

Hola,

Sí, he visto esa solución. Desafortunadamente, no ayudó, ya que tengo 2 jerarquías: jerarquía de empleados y de productos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *