Отображение пользовательской формы в событии нового элемента в библиотеках документов SharePoint 3?

Как лучше всего отобразить пользовательскую форму для каждого нового документа, добавляемого в определенную библиотеку документов?

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

Лучший способ сделать это с помощью рабочего процесса или обработчика событий?

С уважением Му


person Moo    schedule 01.12.2008    source источник


Ответы (4)


Для SharePoint Server 2007:

Комбинация специализированного типа контента и обработчика событий даст вам максимальный контроль над процессом (а также его будет легче отлаживать). Рабочий процесс лучше всего подходит для «простых» действий, и его труднее выполнять сложные действия.

Рабочий процесс обеспечивает большую гибкость при назначении рабочего процесса различным библиотекам администраторами сайта.

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

person Nat    schedule 01.12.2008

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

Проблема, с которой я столкнулся, заключается в том, что добавление SPUtility.Redirect в события ItemAdded, ItemAdding, ItemCheckingIn или ItemCheckedIn в библиотеке документов вообще ничего не делает, потому что нет страницы, связанной с событиями - весь ее внутренний код fired, который не связан с веб-контекстом, потому что не веб-страница выполняет тяжелую работу в этот момент, а интеграция с Office.

Все примеры, с которыми я сталкивался, похоже, основаны на том факте, что страница EditForm.aspx или NewForm.aspx отображается во время запуска события, что, конечно, не так.

Это также приводит к проблеме, заключающейся в том, что я не могу расширить страницу EditForm.aspx или CheckIn.aspx, чтобы делать то, что мне нужно, потому что Office 2007 обходит обе эти возможности.

Итак, единственный вариант, оставшийся открытым для меня на данный момент, - это сделать это через рабочий процесс :/

Любые дальнейшие советы были бы фантастическими.

person Moo    schedule 02.12.2008

Я могу не понять вашего вопроса, но близко ли это к тому, что вы пытаетесь сделать?

http://msdn.microsoft.com/en-us/library/ms550037.aspx

Если нет, то каким образом это не удается?

person Jason Weber    schedule 29.12.2008

Новый «Тип контента» с URL-адресом новой формы, установленным на соответствующее значение, должен помочь. К сожалению, вы не сможете добиться того, чего пытаетесь достичь с помощью обработчика событий или рабочего процесса. В идеале вы хотели бы, чтобы форма отображалась, как только пользователь добавит новый элемент в библиотеку, и настраиваемый тип контента сделает свое дело.

  1. Создайте новый тип контента. (Выведите его из существующего типа контента)
  2. Удалите тип контента по умолчанию из библиотеки документов.
  3. Использование объектной модели для установки URL-адреса новой формы на страницу aspx или созданную вами форму Infopath.

С уважением,

person SharePoint Newbie    schedule 29.12.2008