Установка ModerationInformation.Status из утвержденного обратно в ожидание удаления

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

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

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

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам