Как ограничить количество основных версий для определения списка библиотек документов? - PullRequest
2 голосов
/ 26 февраля 2009

У меня есть 2 вопроса здесь,

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

Я наткнулся на свойство элемента списка MajorVersionLimit файла схемы, к сожалению, оно доступно только для схемы Content Migration. Это не сработало для меня.

Вопрос 1: Есть ли какой-нибудь простой механизм, где я могу включить такие настройки в моем семействе сайтов?

Я знаю, что могу написать часть кода .NET, чтобы изменить это. Вопрос 2: Если я сделаю это, он вырвет список из определения списка?

Заранее спасибо. ~ Yuva

Ответы [ 4 ]

0 голосов
/ 26 июля 2010

На самом деле это не так, вы можете установить MajorVersionLimit через Scheme.xml (как атрибут элемента List), он отлично сработал. Эти атрибуты не поддерживаются через intellisense.

Решение было описано в блоге Дуга "bobthebuilder" McCusker (http://suguk.org/blogs/sharepointhack/archive/2008/01/14/7809.aspx)

0 голосов
/ 26 февраля 2009

Аргумент MajorVersionLimit работает с schema.xml . Просто не забудьте проверить Создать версию каждый раз, когда вы редактируете файл в этой библиотеке документов? .

0 голосов
/ 26 февраля 2009

По моему мнению, самый простой способ изменить существующие сети - написать небольшой скрипт PowerShell, устанавливающий spWeb.MajorVersionLimit, что-то вроде этого:

#Set up connection

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$spSite = new-object Microsoft.SharePoint.SPSite($siteurl) 

for($i=0; $i -lt $spSite.AllWebs.Count;$i++)

{

    $spWeb = $spSite.AllWebs[$i]
    for($j=0; $j -lt $spWeb.Lists.Count;$j++)
    {
        $aList = $spWeb.Lists[$j]
        if( $aList.Title -ceq "dokumenter") # case sensitive
        {
            if( $aList.EnableVersioning -eq $false)
            {
                $aList.EnableVersioning = $true
                $aList.MajorVersionLimit = 5;
                $aList.Update()
            }
        }
    }
0 голосов
/ 26 февраля 2009

Я не знаю, как вы можете установить эти значения через файл конфигурации, но они отображаются в объекте SPList. Таким образом, хитрость заключается в том, чтобы найти способ захвата при создании нового списка из вашего шаблона, а затем установить поля ( SPList.MajorVersionLimit и SPList.app соответствующим образом ).

Я не пробовал этого, но вот с чего бы начать.

  1. В файле конфигурации Элемент ListTemplate установите для свойства NewPage значение aspx, которое должно отображаться при нажатии пользователем кнопки «Создать» в пользовательском интерфейсе.
  2. В коде этой страницы создайте список вручную (с помощью OM) и установите свойства.

Возможно, есть лучший способ, но я его не вижу. Удачи.

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