Авто нумерация в MS CRM - PullRequest
       1

Авто нумерация в MS CRM

1 голос
/ 05 августа 2011

Я знаю, что это старое обсуждение, но все еще открытое.

Сценарий прост, у вас есть сущность, скажем, account, которая содержит атрибут с именем "AccountId", который должен автоматически увеличиваться.

Основным кандидатом на это является плагин, зарегистрированный в пред-событии.

Существуют различные варианты, чтобы обслужить это.

  • Получить максимальное число, увеличить его и присвоить атрибуту AccountId.
  • Положитесь на некоторый внешний источник, например, на веб-службу или базу данных для выполнения этой работы.(Это не очень хороший подход)

Здесь обсуждаются .

Лично я за подход 1, но у меня есть опасения:

1- Дублирование на параллельные запросы

Блокировка и мьютекс могут уменьшить это, но что можно сделать, чтобы избежать этой проблемы в случае «среды фермы»?

1 Ответ

3 голосов
/ 05 августа 2011

Проблема в «среде фермы», которая фактически означает наличие нескольких серверов с установленной ролью внешнего интерфейса, заключается в том, что вы вряд ли сможете избежать дублирования значений счетчиков.

С блокировками или мьютексами вы можете достичь согласованности только в среде с одним компьютером.

Если вам нужна надежная нумерация, вы должны использовать либо службу, которая генерирует номера, либо выделенную базу данных (то есть не базу данных CRM, так как это не поддерживается) в качестве внутреннего сервера, где вы могли бы координировать запросы с блокировками. .

...