让我们首先确定一些D365开箱即用的功能有时会有些笨拙。
对于1:N关系,当您按下子网格上的“ +新建”按钮时,行为会根据关系是配置为“可选”还是“需要业务”而改变。它要么让您搜索并添加现有记录(可选),要么总是使您创建新记录(需要业务)。
很好。我可以控制。
对于N:N关系,子网格上的“ +新建”按钮只能让我搜索现有记录。在这种情况下,我每次只想创建一个新记录。
该场景将systemuser
实体与自定义实体相关联(通过N:N关系),以指示其在字段中的“专业化”,这被称为。我有另一个查找实体,它指示该字段,而我的自定义专业化实体具有以下字段:
如果我要重用现有记录,那么它将也与另一个用户的专业化相关联。如果我要更改他们在该字段中拥有的能力水平,将会影响与该记录相关的所有其他用户。
我每次都需要创建一个新记录。如果可以替换该单击功能,则可以弹出一个新对话框,然后自己创建记录。
如果失败,我需要将整个子网格控件替换为自定义Web资源,请不要让我这么做!
答案 0 :(得分:1)
在我的项目中,我有一个类似的实现叫做Banker Skillset。您可以搜索并添加现有记录,但是会出现错误消息:“已将记录与另一个记录关联”。我不明白为什么在这种N:N方案中使用内联搜索查找才能允许“添加现有”按钮。就像您说的那样,谁会重新映射(取出并交给其他人)这样的其他记录。
您仍然可以在“手册N:N”实体-用户专业化中强制执行systemuser和专业化查找。如果您启用了该N:N相交实体的快速创建功能,则在您单击子网格中的(+)时,QC表单将放在顶部
另一个选项是使用Xrm.Utility.lookupObjects
来允许用户选择多个特殊化,然后为所有选定记录添加具有默认级别(特殊化度)的N:N。然后,用户可以使用可编辑的网格选择单个级别。为此,您必须隐藏现有的(+)按钮并开始使用Ribbon工作台