Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Rinku21
Helper III
Helper III

CalculateTable con condición If

Hola

Estoy trabajando en la seguridad dinámica de nivel de fila.

El requisito es, si el Username() está presente en Emp_ad a continuación, evaluar la tabla 1 expresión else evaluar la expresión de tabla 2.

1a expresión es:

VAR user_Var
CALCULATETABLE (
VALUES ( WC_EMPLOYEE_HIERARCHY_DASH_DI[emp_ad] ),
WC_EMPLOYEE_HIERARCHY_DASH_DI[Supervisor_ad]

UserName()

)
devolución
EmpIds[emp_ad] IN user_Var

2a expresión es:

var proxy
CALCULABLE(
valores(Proxy_Table[Proxy_Username]),
Proxy_Table[Nombre de usuario]-NombreDeUsuario()

))
devolución
proxy_Table[proxy_username] en proxy

Ambos están funcionando bien individualmente, pero quiero agregar la condición de que si username() presente en la 1a tabla, entonces evalúe la 1a expresión si no entonces 2a expresión.

Hemos detectado un problema desconocido. ¿Alguien puede ayudarme en eso?

VAR user_Var
if(CONTAINS(WC_EMPLOYEE_HIERARCHY_DASH_DI,WC_EMPLOYEE_HIERARCHY_DASH_DI[emp_ad] ,

nombre de usuario()
))
,
CALCULATETABLE (
VALUES ( WC_EMPLOYEE_HIERARCHY_DASH_DI[emp_ad] ),
WC_EMPLOYEE_HIERARCHY_DASH_DI[Supervisor_ad]

nombre de usuario()
)
)
,
if(CONTAINS(Proxy_Table, Proxy_Table[Nombre de usuario],
nombre de usuario()
)),

CALCULATETABLE (
VALUES ( proxy_Table[proxy_username] ),
nombre de usuario()
)
)))
devolución

if((CONTAINS(WC_EMPLOYEE_HIERARCHY_DASH_DI,WC_EMPLOYEE_HIERARCHY_DASH_DI[emp_ad] ,
nombre de usuario()))
), EmpIds[emp_ad] IN user_Var,

proxy_Table[proxy_username] en user_Var)

Gracias

Rinku

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Incluso yo me quedé atascado en este paso, sin embargo, encontré la solución mientras lo intentaba. Por favor, utilice si todavía está buscando esta solución

Puede crear una tercera variable y proporcionar la condición OR en el filtro y llamar a esta variable a cambio

Empecé con la creación de una tabla. Puede reemplazar var vtable1 y vtable2 por el suyo
Tabla =
var vtable1 =
SELECTCOLUMNS(FILTER(Sheet1,LOOKUPVALUE('RLS Sample Data'[User_Account_Name],'RLS Sample Data'[Role_Code],"Admin",'RLS Sample Data'[User_Account_Name],"person email id")="person email id"),"__Email",Sheet1[Email])
var vtable2 =
SELECTCOLUMNS(FILTER(Sheet1,[Email] = "ID de correo electrónico de la persona"
|| [L5] = "ID de correo electrónico de la persona"
|| [L4] = "ID de correo electrónico de la persona"
|| [L3] = "ID de correo electrónico de la persona"
|| [L2] = "ID de correo electrónico de la persona"
|| [L1] = "ID de correo electrónico de la persona"
),"__Email",CALCULATE(VALUES(Sheet1[Email]),Sheet1[Email]<>"persona email id"))

Esta es la variable que debe crear y que seleccionará entre vtable1 o vtable2

var vtable3 =
SELECTCOLUMNS(FILTER(Sheet1,Sheet1[Email] en vtable1 || Sheet1[Email] en vtable2),"Email",Sheet1[Email])

devolución
SELECTCOLUMNS(FILTER(Sheet1,Sheet1[Email] en vtable3),"Email",Sheet1[Email])

Por favor, marque como solución si esto le ayuda a 😊

amitchandak
Super User
Super User

@Rinku21 , Dudo que pueda nombre de usuario en la tabla de cálculo. Pero usted debe ser capaz de utilizar en la tabla dentro de la medida

Hola @amitchandak ,

Gracias por su respuesta. Agregué username() sólo para simplificar la expresión. No estoy usando username() en su lugar estoy usando la siguiente expresión:

If ( IFERROR(SEARCH("-",USERNAME()),-1) <> -1,

IZQUIERDA(SUBSTITUTE(NOMBRE DE USUARIO(),"-","-"),SEARCH("-",SUBSTITUTE(USERNAME(),"-","-"))-1),

RIGHT(USERNAME(), LEN(USERNAME())-9)

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.