【问题标题】:CRM Post Operation Opportunity Create PluginCRM Post Operation Opportunity Create Plugin
【发布时间】:2018-02-12 16:46:09
【问题描述】:

我想制作一个插件,在创建机会后将潜在客户的名称插入到我的数据库中,然后将我的网络服务返回的 id 保存到机会注释中。

我设法创建和部署了一个插件以从 Web 服务插入,但我不知道如何获取我想要的数据,并保存返回的 id。你能帮帮我吗?

这是我的代码,其中包含用于测试 Web 服务功能的虚拟数据,它会在保存机会后插入到我的数据库中。

public void Execute(IServiceProvider serviceProvider)
        {
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); // Obtain the execution context from the service provider.                
            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); // Obtain the organization service reference.                
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

            if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
            {
                // Obtain the target entity from the input parameters.
                Entity entity = (Entity)context.InputParameters["Target"];

                // Verify that the target entity represents an opportunity.                   
                if (entity.LogicalName != "opportunity")
                    return;

                nom = "Jerry";
                app = "Seinfeld";
                apm = "Costanza";                                       

                crmPlugins.crmPlugInsert.WebReference.websCRM webService = new crmPlugins.crmPlugInsert.WebReference.websCRM();
                folioS = webService.Insert(nom, app, apm);
            }
        }

【问题讨论】:

    标签: c# dynamics-crm


    【解决方案1】:

    如果我正确理解您的问题,Target 实体将拥有详细信息,您必须在使用 Web 服务创建时提取所需信息并在 nom、app 和 apm 中分配它。

    创建后,您在 folioS 中拥有创建的 Id,使用它在机会记录中使用以下代码创建关联的注释。

                Entity annotation = new Entity("annotation");
    
                annotation.Attributes["objectid"] = new EntityReference("opportunity", new Guid(entity.Id));
                annotation.Attributes["objecttypecode"] = "opportunity";
                annotation.Attributes["subject"] = "Prospect note";
                annotation.Attributes["notetext"] = folioS;
    
                crmService.Create(annotation);
    

    【讨论】:

    • 我收到“AccessRights:WriteAccess Detail”的“拒绝访问”警报。我必须做一些额外的事情来创建或更新价值吗?
    • @user3063952 确保安全角色在机会、注释等方面拥有必要的特权和访问权限,无论您使用什么......
    猜你喜欢
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2017-12-18
    相关资源
    最近更新 更多