MS CRM插件出现一般错误

本文关键字:错误 CRM 插件 MS | 更新日期: 2023-09-27 18:25:23

我正在尝试为MS CRM运行一个示例插件。但我得到以下错误:

出现错误。请与系统管理员联系或参阅Microsoft Dynamics CRM SDK疑难解答指南。

这是代码:

public void Execute(IServiceProvider serviceProvider)
    {
        // Obtain the execution context from the service provider.
        IPluginExecutionContext context = (IPluginExecutionContext)
        serviceProvider.GetService(typeof(IPluginExecutionContext));

        // The InputParameters collection contains all the data passed in the message request.
        if (context.InputParameters.Contains("account") &&
        context.InputParameters["account"] is Entity)
        {
            // Obtain the target entity from the input parmameters.
            Entity entity = (Entity)context.InputParameters["account"];

            try
            {
                //check if the account number exist
                if (entity.Attributes.Contains("account number") == false)
                {
                    //create a task
                    Entity task = new Entity("task");
                    task["subject"] = "Account number is missing";
                    task["regardingobjectid"] = new EntityReference("account", new Guid(context.OutputParameters["id"].ToString()));
                    //adding attribute using the add function
                    // task["description"] = "Account number is missng for the following account. Please enter the account number";
                    task.Attributes.Add("description", "Account number is missng for the following account. Please enter the account number");

                    // Obtain the organization service reference.
                    IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                    IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

                    // Create the task in Microsoft Dynamics CRM.
                    service.Create(task);

                }
            }
            catch (FaultException ex)
            {
                throw new InvalidPluginExecutionException("An error occurred in the plug-in.", ex);
            }
        }
    }
}//end class

这是一个示例代码,我已经验证了该插件使用的所有实体和字段都已定义并位于这些位置。但我不断地收到这个商业错误。

MS CRM插件出现一般错误

我找到了解决方案:我们必须使用:

Entity entity = (Entity)context.InputParameters["Target"];

错误的第二个原因是CRM内部的限制,不允许创建新帐户。用于创建新的"联系人"时效果良好。

非常感谢大家的帮助。

请像这样检查

Entity entity = context.InputParameters["account"] as Entity;

有些时候这种方法不能正常工作。