Установка ModerationInformation.Status из утвержденного обратно в ожидание удаления - PullRequest
0 голосов
/ 02 ноября 2009

Проверка, есть ли у кого-то еще эта проблема и как ее решить.

У меня есть последовательный рабочий процесс Visual Studio в списке (не в библиотеке), который НЕ использует задачи, процесс утверждения выполняется с помощью кнопок OOTB Approve / Reject на элементе списка. Утверждение - это двухэтапное утверждение, при котором, если 1-й этап завершен (путем нажатия кнопки «Подтвердить OOTB»), я перезагружаю ModerationInformation.Status с «Утверждено» до ожидающего, а затем отправляю электронное письмо утверждающему 2-го этапа.

Моя проблема заключается в том, что, когда я возвращаю ModerationInformation.Status значение «Ожидание из утвержденной версии», поэтому не существует утвержденной версии, создатель теряет разрешения на просмотр элемента, и я получаю сообщение об ошибке «Не удается найти элемент» из SharePoint для человек, который создал предмет. Подтверждающие 1-го и 2-го уровня и все, кто имеет права утверждать, МОГУТ все еще видеть элемент.

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

Я получаю свойства из события рабочего процесса и получаю хук в listitem

properties.Item.ModerationInformation.Status = SPModerationStatusType.Pending; properties.Item.Update ();

Может кто-нибудь помочь.

1 Ответ

0 голосов
/ 03 ноября 2009

Попробуйте использовать properties.Item.SystemUpdate();, это не позволяет SHarePoint запускать любые подключенные EventReceivers и т. Д. У меня тоже самое происходило. ИМХО, это связано с тем, что элемент переходит в режим обновления, тогда SharePoint в основном взял под свой контроль элемент (видя, что рабочие процессы обычно запускаются как системная учетная запись), но все же отправляет вас обратно на URL-адрес возврата (т. Е. EditItem страница списка).

Поскольку SharePoint, вероятно, все еще выполняет работу с элементом (и когда вы используете item.Update (), он просматривает все события и т. Д. И т. Д.), Вы больше не можете его открыть, поскольку вы не являетесь системной учетной записью.

Когда SharePoint завершает работу (после отправки писем и т. Д.), Элемент снова становится доступен пользователям.

Как я уже сказал, у меня происходило то же самое в течение длительного времени (т. Е. Более 2-3 секунд) EventReceivers / Workflows.

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