<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Hierarchical row level security Dax using Pathcontains in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4146136#M164757</link>
    <description>&lt;P&gt;Thank you, the data comes as forward slash so I converted it to the Pipe symbol, the the following DAX works!&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;V&lt;/STRONG&gt;&lt;STRONG&gt;AR EmployeeName = LOOKUPVALUE(Employee[Employee Name], Employee[Email], USERPRINCIPALNAME())&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;RETURN&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;PATHCONTAINS(Employee[Hierarchy], EmployeeName)&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 12 Sep 2024 05:02:53 GMT</pubDate>
    <dc:creator>Hyuna_8000</dc:creator>
    <dc:date>2024-09-12T05:02:53Z</dc:date>
    <item>
      <title>Hierarchical row level security Dax using Pathcontains</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4140852#M164549</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to create a new role in Manage Roles to set up a row level security according to our hierarchy. I tried to use Pathcontains in the dax but still can't get the code working correctly. Appreciated if anyone can point me the right direction.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my sample data:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Employee Name&lt;/TD&gt;&lt;TD&gt;Email&lt;/TD&gt;&lt;TD&gt;Hierarchy&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Tom Gland&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Tom.Gland@example.com" target="_blank" rel="noopener"&gt;Tom.Gland@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Lily Wy&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Lily.Wy@example.com" target="_blank" rel="noopener"&gt;Lily.Wy@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland/Lily Wy&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Incy Wincy&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Incy.Wincy@example.com" target="_blank" rel="noopener"&gt;Incy.Wincy@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland/Lily Wy/Incy Wincy&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Kent Ford&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Kent.Ford@example.com" target="_blank" rel="noopener"&gt;Kent.Ford@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland/Lily Wy/Incy Wincy/Kent Ford&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Russell Barrow&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Russell.Barrow@example.com" target="_blank" rel="noopener"&gt;Russell.Barrow@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland/Lily Wy/Incy Wincy/Kent Ford/Russell Barrow&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mary Lance&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Mary.Lance@example.com" target="_blank" rel="noopener"&gt;Mary.Lance@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland/Lily Wy/Incy Wincy/Kent Ford/Russell Barrow/Mary Lance&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Beatrix Tong&lt;/TD&gt;&lt;TD&gt;&lt;A href="mailto:Beatrix.Tong@example.com" target="_blank" rel="noopener"&gt;Beatrix.Tong@example.com&lt;/A&gt;&lt;/TD&gt;&lt;TD&gt;/Tom Gland/Lily Wy/Incy Wincy/Kent Ford/Russell Barrow/Mary Lance/Beatrix Tong&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Basically when employees login using their email in PowerBI, they should be able to see every employee reporting to them, directly and indirectly. For example, Kent Ford should see himself, Russell Barrow, Mary Lance, and Beatrix Tong in the dataset when he logs in.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my first DAX, it only returns the employee's record themselves, for example for Kend Ford, only the row with his name was visible to him when he logged in:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;PATHCONTAINS(Employee[Hierarchy],&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;MaxX(&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;Filter(&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;Employee,&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;[Email]=USERPRINCIPALNAME()&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;,Employee[Hierarchy]&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;This is my second dax, but it returns nothing:&lt;SPAN&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;V&lt;/STRONG&gt;&lt;STRONG&gt;AR EmployeeName = LOOKUPVALUE(Employee[Employee Name], Employee[Email], USERPRINCIPALNAME())&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;RETURN&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;PATHCONTAINS(Employee[Hierarchy], EmployeeName)&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Sep 2024 14:26:32 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4140852#M164549</guid>
      <dc:creator>Hyuna_8000</dc:creator>
      <dc:date>2024-09-09T14:26:32Z</dc:date>
    </item>
    <item>
      <title>Re: Hierarchical row level security Dax using Pathcontains</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4141310#M164576</link>
      <description>&lt;P&gt;Use the Pipe symbol, not the forward slash. Use the email address in the hierarchy, not the name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then all you need is&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;EM&gt;PATHCONTAINS(Employee[Hierarchy],&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;USERPRINCIPALNAME()&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/STRONG&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 09 Sep 2024 20:25:44 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4141310#M164576</guid>
      <dc:creator>lbendlin</dc:creator>
      <dc:date>2024-09-09T20:25:44Z</dc:date>
    </item>
    <item>
      <title>Re: Hierarchical row level security Dax using Pathcontains</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4146136#M164757</link>
      <description>&lt;P&gt;Thank you, the data comes as forward slash so I converted it to the Pipe symbol, the the following DAX works!&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;V&lt;/STRONG&gt;&lt;STRONG&gt;AR EmployeeName = LOOKUPVALUE(Employee[Employee Name], Employee[Email], USERPRINCIPALNAME())&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;RETURN&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;PATHCONTAINS(Employee[Hierarchy], EmployeeName)&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Sep 2024 05:02:53 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Hierarchical-row-level-security-Dax-using-Pathcontains/m-p/4146136#M164757</guid>
      <dc:creator>Hyuna_8000</dc:creator>
      <dc:date>2024-09-12T05:02:53Z</dc:date>
    </item>
  </channel>
</rss>

