Microsoft Dynamics CRM - 插件 - 填写查找字段

Microsoft Dynamics CRM - Plug In - Fill in Lookup Field

我有两个自定义实体,名为 "entity1" 和 "entity2"。

在 "entity1" 中,有一个查找字段将其连接到 "entity2"。现在,我只想在创建 "entity1" 的新记录时使用插件来填充此查找字段。为了使事情更简单,假设我想将 "entity1" 的每条新记录与 "entity2" 中的一条现有记录连接起来。假设 "entity2" 中这条记录的名称是 "sampleName".

我对插件没有那么多经验,我不知道如何让它工作。我想我需要以某种方式使用下面的这行代码,但是我在检索正确的 GUID 时遇到了问题。我该怎么做呢?还有我必须在我的代码中包含的其他内容吗?

entity1["new_lookup"] = new EntityReference("entity2", neededID);

插件本身也做一些其他的事情,而且一切正常。我似乎无法解决这个查找字段问题。顺便说一句,我正在使用 Microsoft Dynamics CRM Online 2016。

在此先感谢您的帮助!

如果您只想从名称中获取所需的 Id,则需要进行查询。几个选项:CRM LINQ、QueryByAttribute、FetchXml 或 QueryExpressions。

您会在 MSDN 中找到许多示例。 Here's one using QueryByAttribute 这可能是最容易上手的。但最好使用其他任何一种,因为它们更通用。

因为这是从插件触发的,所以您实际上不需要进行身份验证,因此只需忽略 OrganizationServiceProxy 位中的凭据并使用插件中已有的 IOrganizationService

您也可以在不执行查询的情况下创建 EntityReferences from alternate keys,前提是您已经在 entity2 中启用了它们并且该列是备用键的一部分。