2009-04-17 1 views
0

Я пишу рабочий процесс, который должен выполнять определенные действия в зависимости от того, какие поля изменены, когда кто-то редактирует элемент. Например, если пользователь входит и удаляет роль (задание) из элемента (сотрудника), мне нужен рабочий процесс, чтобы понять, что было изменено поле роли, вывести, какая роль была удалена (или потенциально добавлена), а затем уведомить менеджера этой роли и выполнять любые другие необходимые задачи. Другим примером может быть, если поля адреса в элементе будут изменены, тогда соответствующий отдел кадров должен быть уведомлен об этом изменении.Рабочий процесс, который знает, какие поля были изменены

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

Может кто-нибудь, пожалуйста, скажите мне, что другие варианты для получения этой функциональности, как я хотел бы знать, есть ли лучший способ. Спасибо

ответ

0

Использование рабочих процессов SPD было бы не так сложно, в зависимости от количества ролей.

Создайте столбец, а затем перейдите к типу содержимого и скройте его. Создайте рабочий процесс SPD, который выполняется на новом или измените. Сравните скрытый столбец и введенный пользователем, изменив значения сопоставления с именем роли и сделайте то, что нужно сделать. Когда это будет сделано, скопируйте введенный пользователем столбец в скрытый столбец.

Уродливые и длинные, но если у вас нет ошибки, чтобы получить код рабочего процесса, реализованный на сервере, благодаря корпоративным ИТ, тогда это вариант.

0

Я бы включить управление версиями в списке, а затем использовать:

SPListItem currentItem = workflowProperties.Item; 
SPListItemVersion previousItemVersion = currentItem.Versions[1]; 
//Compare the fields in currentItem and previousItemVersion 

Но если я правильно понимаю ваш вопрос, это то, что вы собираетесь делать уже.