Автонумерация в новой сущности - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть пользовательский объект, который должен иметь номер дела для приложения XRM, могу ли я создать номер дела из Сервиса -> Дело.

Если это невозможно, как я могу сделать это с помощью плагина, я посмотрел на crmnumbering.codeplex.com, но он не поддерживает 2011 год, у кого-нибудь есть решение, или я должен переписать его сам?

спасибо

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Я столкнулся с такой же проблемой (мне нужен собственный # для сущности). Вот как вы можете это сделать:

  1. Создать сущность с именем "Counter"
  2. Добавьте поле с именем "new_customnumber", сделайте его строкой или числом в зависимости от того, что вы хотите
  3. Создайте новую запись для этого объекта с тем, что вы хотите в поле new_customnumber (скажем, "10000")
  4. Создайте плагин (EntityNumberGenerator), который выходит и захватывает эту запись (вы, вероятно, захотите установить жесткую защиту для этой записи / объекта, чтобы никто не мог связываться с числами)
  5. При создании «пользовательской сущности» запустите плагин. Возьмите значение в new_customnumber, сохраните его в «пользовательском объекте» (скажем, в поле «case»), увеличьте значение new_customnumber и сохраните его в объекте Counter.

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

Вы будете не в состоянии создать собственный номер для пользовательских объектов из обычной области, в которой вы установили номер дела.

Посмотрите на плагин CRM2011sdk \ sdk \ samplecode \ cs \ plug-ins \ accountnumberplugin.cs. Это действительно похоже на то, что вы хотите.

* * 1 022 Ry
1 голос
/ 28 апреля 2011

Я еще не видел ни одного на 2011 год. Наверное, проще всего написать это самостоятельно.

Я всегда создавал базу данных с таблицей с одним столбцом, который является столбцом IDENTITY. Запишите SP для вставки, сохраните значение IDENTITY в переменную и УДАЛИТЕ строку в транзакции. Вернуть переменную. Делает для быстрого и простого плагина, и это решает любые проблемы параллелизма.

Производительность высокая, а влияние на ваш SQL-сервер минимально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...