当通过 n:n-relation 分配记录时如何触发插件执行
How to trigger a plugin to execute when a record it is assigned via n:n-relation
鉴于实体 contact
和 topic
我创建了一个 nen n:n-relation 基本上说每个联系人都可以是 "expert"关于任意数量的主题,每个主题可以有任意数量的专家。
现在我想要一种快速的方法来确定联系人是否是专家(有主题),以便创建所有专家的过滤视图。
能够做到这一点的最简单方法是 contact
上的布尔值(双选项)字段,表明它有相关主题(true
)或没有(false
), 然后我可以用它来过滤视图等
这是我失败的地方。我尝试将字段设置为 Rollup 和 Calculated 但这两种方法似乎都无法解决问题。
剩下的就是创建一个插件。但这必须在自动创建的交叉实体上注册,这似乎是不可能的。我不想自己创建相交实体,因为我仍然希望拥有丰富的子网格功能等等。
是否可以实现这种行为?
您需要注册插件以将消息、主要和次要实体关联为 none。
在插件中,您需要检查 context.MessageName
("Associate" 或 "Disassociate")和 context.InputParameters[“Relationship”]
- 它等于您的 N:N 的名称关系。
检查条件的代码应该是这样的
//all usual plugin stuff here
if (context.InputParameters.Contains("Relationship")) {
relationshipName = context.InputParameters["Relationship"].ToString();
}
// Check the “Relationship Name” with your intended one
if (relationshipName != "<Your relationship name>") {
return;
}
if (context.MessageName == "Associate") {
//logic when role added
}
if (context.MessageName == "Disassociate") {
//logic when role removed
}
else {
//not interested
}
我还没有编译代码,但它应该让你知道如何继续。
鉴于实体 contact
和 topic
我创建了一个 nen n:n-relation 基本上说每个联系人都可以是 "expert"关于任意数量的主题,每个主题可以有任意数量的专家。
现在我想要一种快速的方法来确定联系人是否是专家(有主题),以便创建所有专家的过滤视图。
能够做到这一点的最简单方法是 contact
上的布尔值(双选项)字段,表明它有相关主题(true
)或没有(false
), 然后我可以用它来过滤视图等
这是我失败的地方。我尝试将字段设置为 Rollup 和 Calculated 但这两种方法似乎都无法解决问题。
剩下的就是创建一个插件。但这必须在自动创建的交叉实体上注册,这似乎是不可能的。我不想自己创建相交实体,因为我仍然希望拥有丰富的子网格功能等等。
是否可以实现这种行为?
您需要注册插件以将消息、主要和次要实体关联为 none。
在插件中,您需要检查 context.MessageName
("Associate" 或 "Disassociate")和 context.InputParameters[“Relationship”]
- 它等于您的 N:N 的名称关系。
检查条件的代码应该是这样的
//all usual plugin stuff here
if (context.InputParameters.Contains("Relationship")) {
relationshipName = context.InputParameters["Relationship"].ToString();
}
// Check the “Relationship Name” with your intended one
if (relationshipName != "<Your relationship name>") {
return;
}
if (context.MessageName == "Associate") {
//logic when role added
}
if (context.MessageName == "Disassociate") {
//logic when role removed
}
else {
//not interested
}
我还没有编译代码,但它应该让你知道如何继续。