Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
2 years ago
Solved

RLS y USERELATIONSHIP

Hola a todos.

Tengo esta relación entre dos tablas:

Creé esas medidas:


Funciona perfecto, pero cuando implemento el rol RLS obtengo este error:



Entiendo que sucedió porque estoy filtrando mi Dim Table pero no sé cómo solucionarlo, sé que puedo dividir la tabla principal en dos tablas, pero tal vez alguien tenga una mejor idea.

Gracias.

  • ¡Gracias!

    fórmula =
    DÓNDE Lista de ID =
    CALCULABLETABLE (
    VALORES ( 'DWH Dim_Neighborhoods'[ID de barrio] ),
    TODO ( 'DWH Dim_Neighborhoods'[NeighberhoodNameENG] )
    )
    DEVOLUCIÓN
    CALCULAR (
    SUMA ( 'DWH Fact_ImigrationInCity'[Cantidad] ),
    FILTRO (
    TODOSEXCEPTO( 'DWH Fact_ImigrationInCity','DWH Dim_Date'),
    'DWH Fact_ImigrationInCity'[NeigheberhoodTargetID] EN Lista de ID
    )
    )
    Hice algunos cambios y ahora funciona, ¡¡Gracias de nuevo!!

6 Replies

  • @BIDEVOO,

    Tal vez pueda intentar extraer el valor de otra tabla y aplicarlo manualmente en los cálculos de expresión en lugar de usar funciones de relación. No deben afectar a los usos de RLS.

    Saludos

    Xiaoxin Sheng

  • Gracias por su arrullo.

    Probé este código DAX:
    #test = CALCULATE( sum('DWH Fact_ImigrationInCity'[Cantidad]), FILTER( 'DWH Fact_ImigrationInCity', 'DWH Fact_ImigrationInCity'[NeigheberhoodTargetID] = CALCULATE( MAX('DWH Dim_Neighborhoods'[NeighborhoodID]), 'DWH Dim_Neighborhoods'[NeighberhoodNameHEB] = SELECTEDVALUE('DWH Dim_Neighborhoods'[NeighberhoodNameHEB])) ),ALL('DWH Fact_ImigrationInCity') )

    ¿Eso es lo que quieres decir?
    A mí no me funciona.

  • @BIDEVOO,

    Es decir, puede extraer la lista de elementos correspondiente de la tabla de destino sin una relación de hechos activa. A continuación, puede usar esta lista como condición en la expresión de Dax para filtrar los registros de cálculo.

    formula =
    VAR IDlist =
        CALCULATETABLE (
            VALUES ( 'DWH Dim_Neighborhoods'[NeighborhoodID] ),
            ALLSELECTED ( 'DWH Dim_Neighborhoods' ),
            VALUES ( 'DWH Dim_Neighborhoods'[NeighberhoodNameHEB] )
        )
    RETURN
        CALCULATE (
            SUM ( 'DWH Fact_ImigrationInCity'[Quantity] ),
            FILTER (
                ALLSELECTED ( 'DWH Fact_ImigrationInCity' ),
                'DWH Fact_ImigrationInCity'[NeigheberhoodTargetID] IN IDlist
            )
        )
    

    Saludos

    Xiaoxin Sheng

  • Realmente lo aprecio, gracias.

    Funciona bien, pero corto mi gráfico también con la tabla de fechas, ¿qué debo agregar a la fórmula con la que funcionará también para cortar el gráfico por años?

    Este es el nombre de la columna de la tabla de fechas:

    'DWH Dim_Date'[Año]

  • ¡Gracias!

    fórmula =
    DÓNDE Lista de ID =
    CALCULABLETABLE (
    VALORES ( 'DWH Dim_Neighborhoods'[ID de barrio] ),
    TODO ( 'DWH Dim_Neighborhoods'[NeighberhoodNameENG] )
    )
    DEVOLUCIÓN
    CALCULAR (
    SUMA ( 'DWH Fact_ImigrationInCity'[Cantidad] ),
    FILTRO (
    TODOSEXCEPTO( 'DWH Fact_ImigrationInCity','DWH Dim_Date'),
    'DWH Fact_ImigrationInCity'[NeigheberhoodTargetID] EN Lista de ID
    )
    )
    Hice algunos cambios y ahora funciona, ¡¡Gracias de nuevo!!