Рабочий процесс, который знает, какие поля были изменены - PullRequest
0 голосов
/ 17 апреля 2009

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

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

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

Ответы [ 2 ]

0 голосов
/ 18 апреля 2009

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

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

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

0 голосов
/ 17 апреля 2009

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

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

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

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