用于查找值的Dynamics 365插件

时间:2019-04-03 16:50:41

标签: c# dynamics-crm microsoft-dynamics

错误:0x80040203无效参数

我是Dynamics的新手。在准备通过插件将外部数据源的查找值输入Dynamics时,我想首先使用此代码对硬编码值进行测试。但是,在注册了程序集,数据提供程序和数据源之后,我创建了一个动态的虚拟实体,并将其链接到表单上的字段(查找类型)。发布后,单击该字段将引发错误-无效参数

using System;
using Microsoft.Xrm.Sdk;

namespace Hardcoded.Names.Plugin
{
public class NamesLookupPlugin : IPlugin
{
    public void Execute(IServiceProvider serviceProvider)
    {
        var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
        var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        serviceFactory.CreateOrganizationService(context.UserId);
        var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

        try
        {
            var results = new EntityCollection();
            var itemOne = new Entity
            {
                ["ID"] = Guid.NewGuid(),
                ["Name"] = "First Item"
            };

            var itemTwo = new Entity()
            {
                ["ID"] = Guid.NewGuid(),
                ["Name"] = "Second Item"
            };
            results.Entities.Add(itemOne);
            results.Entities.Add(itemTwo);

            context.OutputParameters["BusinessEntityCollection"] = results;
        }
        catch (Exception e)
        {
            tracingService.Trace($"{e.Message} {e.StackTrace}");
            if (e.InnerException != null)
                tracingService.Trace($"{e.InnerException.Message} {e.InnerException.StackTrace}");

            throw new InvalidPluginExecutionException(e.Message);
        }
     }
   }
}

我希望在查找字段中看到“第一项”和“第二项”可选。

1 个答案:

答案 0 :(得分:0)

您正在查看插件中的RetrieveMultiple消息。还有一条Retrieve消息(通过EntityReference获取单个记录)-您还需要为该实体钩上该消息。