Обработчик событий SharePoint - PullRequest
1 голос
/ 06 июля 2010

У меня проблема с обработчиком событий в SharePoint.

У меня есть список элементов (Список A), к которому прикреплен обработчик событий с кодом для ItemAdded и ItemUpdated.

Когда любое из этих событий срабатывает, я хочу, чтобы другой список (Список B) был обновлен с минимальным значением всех одинаково именованных элементов в Списке A. Думайте почти как Min (FieldX).

например.

Список A
Значение ItemName
Категория А 2
Категория А 4
Категория А 3
Категория B 1
Категория B 8

Список B
Значение ItemName
Категория А 2
Категория B 1

Если кто-то обновит один из элементов CategoryA в ListA на значение 0, то обработчик событий заменит элемент CategoryA в ListB новым значением 0.

В настоящее время я делаю это, удаляя все элементы в ListB, затем получая все уникальные ItemNames из ListA и вставляя самое низкое значение каждого в ListB.

Это прекрасно работает, если вы редактируете по одному элементу за раз, но если вы редактируете в таблице данных, он попадает в беспорядок из-за асинхронной природы. Иногда это будет работать, иногда - нет, и это бесполезно.

Каков наилучший практический способ сделать что-то подобное? С таким количеством элементов, которые редактируются асинхронно, как бы вы обновили сводную таблицу подобным образом?

Спасибо

1 Ответ

1 голос
/ 06 июля 2010

Какое событие вы ловите - события Synchronous * ing (ItemAdding) или события Async * ed (ItemAdded)?

Одно из предложений состоит в том, чтобы событие запускало задание таймера для обновления сводного списка.,Затем ваш обработчик событий просто проверяет, запланировано ли задание (на минутку?), А если нет, то запланировано.Тогда не будет иметь значения несколько быстрых обновлений.

Длительные операции: рассмотрите возможность создания настраиваемого задания таймера SharePoint.Начинайте / планируйте задание таймера с события, а не запускайте всю логику внутри события.Это позволит вам использовать функции SharePoint, чтобы увидеть, было ли задание таймера выполнено успешно

Обработчики событий - Часть 1. Все, что вам нужно знать о ... SharePoint ... СобытиеОбработчики.

Еще одно предложение - нужно ли его пересчитать и сохранить в списке?Если это просто для отображения, не могли бы вы написать собственную веб-часть, сделать это на лету, кэшировать результаты и очищать кеш в зависимости от SPList.ListItemModified и .LastItemDeleted times?

...