如何向实体添加一组字符串?

时间:2012-03-23 14:03:10

标签: dynamics-crm-2011 crm microsoft-dynamics

这是一个简单的要求:我想在Dynamics 2011中为Accounts添加一组字符串。该字符串是其他系统的外部ID。所有字符串在所有实体中都应该是唯一的。

我能看到这样做的唯一方法是将字符串定义为实体(比如说'ExternalCode')并在Account和ExternalCode之间建立1:N的关系,但这看起来非常超重。此外,定义为一个实体坚持认为我给'ExternalCode'一个名称,它显然没有。

实施此方法的最佳方式是什么?

谢谢

赖安

2 个答案:

答案 0 :(得分:2)

它可能看起来超重,但将实体视为表格。你会在MS SQL中创建第二个表吗?如果是这样,那么你应该创建另一个实体。 CRM非常优化,所以我不担心这个额外的开销。

或者,您始终可以在其他系统中携带GUID。

答案 1 :(得分:0)

这些独特的引用如何进入您的CRM系统。您是从每个外部系统导入数据吗?如果是这样,我认为引用在外部系统中是唯一的?导入后,您希望确保这些引用中的任何一个都不重复?

此外,我们在这里谈论了多少个字符串?如果它是一个小数字,那么只需定义属性来管理它们并通过以下方式之一检查重复项是有意义的: -

1)在提交记录之前,可以使用一些javascript来进行oData查询以确认外部参考号的“唯一性”。 (但是,这还不足以在系统中以编程方式创建记录)。

2)一个插件,在预创建时触发,再次向系统查询与相同唯一引用号匹配的其他记录,并相应地处理匹配事件。

但是,如果它们中有很多,那么按照您的说法定义一个单独的实体可能更有意义,然后如上所述,您可以通过插件将新的“引用记录”与实体相关联,但同样,检查记录是否已经存在,然后处理异常或仅与现有记录关联(如果合适)。

我认为,如果您确实找到了重复内容以及如何在系统中创建这些记录(例如,通过UI或以编程方式或可能两者创建),那么您认为它们是您想要做的。

如果您有更多详细信息,请尽快提供更多帮助。