none
Генерация названий для DocumentSet в библиотеке. RRS feed

  • Общие обсуждения

  • Хочу чтобы при создании набора документов, название набора генерировалось автоматически.

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

    хочу уйти от своей веб-части и перейти на стандартную.

    для этого думаю следует использовать Event - ItemAdding()

    создал такой event. Но наборы документов все равно создаются с прежним названием(который задается пользователем)

    int _numb = GetNextNumberDocument(fld, properties.List, _nameDocSet);
    properties.AfterProperties[_nameFieldNumber] = _numb;
    properties.AfterProperties["Title"] = properties.List.Title + "-" + _numb.ToString();

    трассировка показывает, что в AfterProperties["Title"] пишется новое название, но вот DocumentSet все равно создается с прежним.

    Что еще нужно добавить в код, чтобы набор докмуентов создавался с нужным мне названием?

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

    2 ноября 2012 г. 11:43

Все ответы

  • Уберите поле "Название" с формы для нового элемента и устанавливайте своё значение в ItemAdded() - пользователь ничего и знать не будет.
    5 ноября 2012 г. 7:05
    Отвечающий
  • Менять мне нужно не Title, а Имя набора документов, оказывается..

    Убрать из формы добавления элемента ну удается, т.к. в типах контента нет ссылки на управление столбцом, как это есть у других столбцов.

    в ItemAdding менеять значение столбца с именем BaseName не позволяет, утверждает что данный столбец возможно для чтения.

    в ItemAdded удается поменять, но работает странно. из 10 тестовых созданий набора документов часть окрываются на новой WelcomePage, часть пытается открыться на новой, но не находит ее, часть открывается на старой (до изменения) WelcomePage и далее при попытке рабоатть с таким набором выскакивает на ошибку И этопонятно т.к. такого набора нет, а есть с другим именем. часть пытается открыться на старой welcomePage но уже не находит ее выскакивает на ошибку.

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

    трассировка теста:

    1. набор создался без проблем.

    2. набор с ошибкой:"

    Ошибка

    Эта операция может быть выполнена только для файла; "http://devshar2012/doccenter/Documents/qqqq" является папкой.

    Устранение неполадок в работе службы Microsoft SharePoint Foundation.

    Идентификатор взаимосвязи: 37fd6b8d-c113-43c0-90af-4c7d73006783

    Дата и время: 06.11.2012 10:01:41 "

    3. набор создался с ошибкой: "

    Ошибка

    В экземпляре объекта не задана ссылка на объект.

    Устранение неполадок в работе службы Microsoft SharePoint Foundation.

    Идентификатор взаимосвязи: b86cc12e-530a-42f5-acab-9f98fe3a65c0

    Дата и время: 06.11.2012 10:03:22 "

    4.набор создался без проблем.

    5. набор создался с ошибкой:"

    Ошибка

    URL-адрес 'Documents/qqqq' недопустим. Возможно, он указывает на несуществующие файл или папку, или на файл или папку, расположенные вне текущего веб-сайта.

    Устранение неполадок в работе службы Microsoft SharePoint Foundation.

    Идентификатор взаимосвязи: 65d33e6d-12c1-4528-836b-f0d0caddd5b1

    Дата и время: 06.11.2012 10:04:42 "

    ну и т.д. в таком духе.

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

    6 ноября 2012 г. 6:54
  • Нашел вот такой вариант решения...

    но у меня он почему то не проходит...

    редирект идет на страницу с сообщением:

    Ошибка

    Запрос отменен приемником событий.

    Устранение неполадок в работе службы Microsoft SharePoint Foundation.

    Идентификатор взаимосвязи: 953c0fa2-adc5-4f5c-99b5-fcb3597788f5

    Дата и время: 06.11.2012 11:50:07

    этот вариант меня бы наверно даже больше устроил...но редиректа все-таки нет ((

    хотя DocumentSet создается именно такой как мне нужно
    6 ноября 2012 г. 8:52