如何显示基于多对多关系的画廊项目在PowerApps / Dataverse?



我需要帮助显示基于多对多关系的库项。

背景:

到目前为止,我构建了一个单独的画布屏幕,可以在"雇员"one_answers"雇员"之间建立关系。许多"部门";基于此文档:https://powerapps.microsoft.com/et-ee/blog/option-sets-and-many-to-many-relationships-for-canvas-app…

现在在另一个屏幕上,我的Event"屏幕,由编辑表单和垂直图库组成,用户(员工)可以提交一个Event表单(在下拉框中包含单个Department),该表单连接到Event">

这是我的问题:

在垂直图库的"项目"中,我如何进行过滤,以便登录的员工可以根据属于他们的部门查看事件。

下面是一个示例/场景:

Pedro属于"财务部"。和"产品部">

爱子属于"计算机工程系"。Department"

Suraj属于"产品部"。和"机械工程"。Department"

Ahlem属于"财务部">

这是基于上面的场景我想要的结果:

- Pedro在他的垂直图库中看到的只是一个拥有"财务部门"的事件列表。所选值和具有"产品部"的事件。选择价值。

- Aiko在她的垂直图库中看到的只是一个带有"计算机工程"字样的事件列表。Department"选择价值。

- Suraj在他的垂直图库中看到的只是一个有"产品部门"的事件列表。所选值和具有"机械工程"的事件。Department"选择价值。

- Ahlem在她的垂直画廊中看到的只是一个有"财务部门"的事件列表。选择价值

数据表和列(带数据类型):

  1. 事件(s)
  • id event (primary)

  • department(查找到单个department)

  • 该表的其他字段/列不重要

  • 员工(s)
    • id empl (primary)

    • 员工姓名(Text: Plain Text)

    • email (Text: email)

    • (Department(s)在Dataverse中是一个隐藏列,因为它是一个多对多关系)

  • 部门(s)
    • id department (primary)

    • 部门名称

    • (Employee(s)在Dataverse中是一个隐藏列,因为它是一个多对多关系)

    的关系:

    • Many Employees To Many Departments (Many To Many)

    • 多个事件到一个部门

    提示:

    "员工(s)"。email = User()。电子邮件

    在垂直图库的'Items'中,我如何进行筛选,以便登录的员工可以根据属于他们的部门查看事件

    这将是2-3个步骤的过程。首先,您必须获得登录用户的Guid/UserID。您必须过滤systemuser表(dynamics/dataverse表)。注意用户()。Email给你Office365用户的Email,但你可以很容易地找到如何登录用户id。

    那么您必须获取用户所属的部门。看这里

    现在您从100个部门列表中筛选了3-4个部门,其中登录用户是其中的一部分。

    一旦你有了部门,你可以很容易地得到事件一个事件和部门是1-N或N-1的关系。在这里,您可以根据查找字段进行筛选。

    注意:在后面的阶段,你可能要考虑/考虑委托。委派是一种限制,如果你有超过2K条记录,Powerapps将只对前2K条记录执行所有操作。它不会给你正确的结果。