gpt4 book ai didi

dynamics-crm - 用于发布和发布所有消息的 CRM 插件

转载 作者:行者123 更新时间:2023-12-01 11:24:04 26 4
gpt4 key购买 nike

我想知道我们是否可以编写插件来执行 Dynamics CRM(任何版本)中的“发布”和“全部发布”等消息。如果可以,您能否分享相同或代码片段的任何示例引用。

最佳答案

这是一个适用于 Publish 和 PublishAll 消息的插件,它将使用我为此目的创建的实体记录事件(您可以更改以执行任何您想要的操作)。

当事件为 Publish 时,插件使用 ParameterXml 参数 ( MSDN ) 记录正在发布的组件。对于 PublishAll 消息,此参数不存在,因此没有详细信息(这是有道理的,因为您要发布所有)。

public class PublishPlugin : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

if (context.MessageName != "Publish" && context.MessageName != "PublishAll")
return;

string parameterXml = string.Empty;
if (context.MessageName == "Publish")
{
if (context.InputParameters.Contains("ParameterXml"))
{
parameterXml = (string)context.InputParameters["ParameterXml"];
}
}

CreatePublishAuditRecord(service, context.MessageName, context.InitiatingUserId, parameterXml);
}

private void CreatePublishAuditRecord(IOrganizationService service, string messageName, Guid userId, string parameterXml)
{
Entity auditRecord = new Entity("fjo_publishaudit");
auditRecord["fjo_message"] = messageName;
auditRecord["fjo_publishbyid"] = new EntityReference("systemuser", userId);
auditRecord["fjo_publishon"] = DateTime.Now;
auditRecord["fjo_parameterxml"] = parameterXml;

service.Create(auditRecord);
}
}

这是它在 CRM 中的样子:

enter image description here

您可以从我的GitHub 下载插件项目和CRM 解决方案。 .

关于dynamics-crm - 用于发布和发布所有消息的 CRM 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39265795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com