检索插件未被触发
Retrieve Plugin not getting triggered
我们使用的是 Dynamics CRM 2016 On-Premise。使用插件,我试图在用户打开 CRM 帐户表单时自动更新字段,在此示例中为值“5”。这是我的代码:
var targetEntity = (Entity)context.OutputParameters["BusinessEntity"];
if (targetEntity == null)
throw new InvalidPluginExecutionException(OperationStatus.Failed, "Target Entity cannot be null");
var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.UserId);
if (targetEntity.Attributes.Contains("MyField"))
fedTaxId = targetEntity.Attributes["MyField"].ToString();
targetEntity.Attributes.Add("MyField"d, "5");
targetEntity["MyField"] = "5";
service.Update(targetEntity);
我在消息类型 10 中列出了它(在事务外的主要操作之前)。
在插件注册中,我将其列为 Post 操作阶段和同步。
但是,当我打开“帐户”表单时,页面会闪烁一次,但不会自动填充值。也没有 javascript 可以操纵此表单或值。
有什么建议吗?谢谢
两个选项:
在表单上添加脚本以设置字段值 加载时。请记住,只有当表单类型 = 2 时,此脚本才应该执行它的操作。
(不推荐)在实体的同步postretrieve
消息上注册一个插件。确保此步骤在 OutputParameters
集合中的实体对象上设置字段值。现在,请记住您的表单不会意识到该字段已被修改,因此它不会被标记为 dirty 并且在记录更改时不会自动提交保存。因此,在这种情况下,您仍然需要添加一些 JavaScript 或者您需要在实体设置字段的前 update
消息中注册一个额外的插件。
我们使用的是 Dynamics CRM 2016 On-Premise。使用插件,我试图在用户打开 CRM 帐户表单时自动更新字段,在此示例中为值“5”。这是我的代码:
var targetEntity = (Entity)context.OutputParameters["BusinessEntity"];
if (targetEntity == null)
throw new InvalidPluginExecutionException(OperationStatus.Failed, "Target Entity cannot be null");
var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.UserId);
if (targetEntity.Attributes.Contains("MyField"))
fedTaxId = targetEntity.Attributes["MyField"].ToString();
targetEntity.Attributes.Add("MyField"d, "5");
targetEntity["MyField"] = "5";
service.Update(targetEntity);
我在消息类型 10 中列出了它(在事务外的主要操作之前)。 在插件注册中,我将其列为 Post 操作阶段和同步。
但是,当我打开“帐户”表单时,页面会闪烁一次,但不会自动填充值。也没有 javascript 可以操纵此表单或值。 有什么建议吗?谢谢
两个选项:
在表单上添加脚本以设置字段值 加载时。请记住,只有当表单类型 = 2 时,此脚本才应该执行它的操作。
(不推荐)在实体的同步post
retrieve
消息上注册一个插件。确保此步骤在OutputParameters
集合中的实体对象上设置字段值。现在,请记住您的表单不会意识到该字段已被修改,因此它不会被标记为 dirty 并且在记录更改时不会自动提交保存。因此,在这种情况下,您仍然需要添加一些 JavaScript 或者您需要在实体设置字段的前update
消息中注册一个额外的插件。