2011-08-04 40 views
1

我知道这是一个旧的讨论,但仍然是一个开放的讨论。MS CRM中的自动编号

情景很简单,你有一个实体说账户,其中包含一个名为“AccountId” 应该自动增加的属性。

这个主要候选人是在Pre事件中注册的Plugin。

有不同的选项可以满足这个需求。

  • 获取最大数量,递增并分配给AccountId属性。
  • 依赖某些外部来源,例如一些Web服务或数据库来执行这项工作。 (这不是一个好办法)

这些方法是disccused here

我个人很赞成方案1,但我有顾虑:

1上concurent复制请求

锁定和互斥量可以减少,但可以做些什么来避免这种问题的情况下“农场环境“?

回答

3

“农场环境”中的问题实际上意味着安装了多个前端角色的服务器,因为您几乎无法避免重复计数器值。

使用锁或互斥锁,您只能在单个机器环境中实现一致性。

如果您需要可靠的编号,您应该使用生成数字的服务或专用数据库(即不支持CRM数据库,因为这不会被支持)作为后端,您可以在其中协调请求锁。

+0

正确。在多服务器环境中,锁和互斥锁不起作用。要走的路是一个编号生成的Web服务。 – hdoghmen