Как отследить изменения предметов в списке? - PullRequest
2 голосов
/ 08 июля 2011

Я создал рабочий процесс состояния в Sharepoint.

Моя идея такова:

1 / когда рабочий процесс запущен, создайте копию элемента списка, для которого рабочий процесс был запущен, эта копия создается в другомвеб-список в текущем семействе сайтов - работает

2 / отслеживает изменения родительского элемента и распространяет их на скопированный элемент - работает

3 / отслеживает изменения скопированного элемента и распространяет их обратно на исходныйitem - это не работает

Я пытался использовать IListItemService , но, видимо, он не может наблюдать за изменениями, отличающимися от текущей сети?Есть ли другой способ, как это сделать?

Я думал о подключаемых службах SharePoint 2010 Pluggable Workflow Services, но в моем классе, производном от SPWorkflowExternalDataExchangeService, метод CallEventHandler вызывался дважды, даже когда был сделан только один вызов SPWorkflowExternalDataExchangeService.RaiseEvent(это вызывалось из пользовательского приемника событий) - другая проблема с этим решением - когда я перезаписываю пул приложений, я терял свой одноэлементный класс, который отвечает за ведение списка информации о состоянии, необходимой для метода RaiseEvent.

1 Ответ

1 голос
/ 08 июля 2011

Для этой цели в SharePoint встроен механизм событий. Нет необходимости использовать рабочие процессы или копировать элементы.

Пример: создание обработчика события элемента списка

...