воскресенье, 16 декабря 2012 г.

Изменение свойства "Hidden" у полей списка SharePoint 2010


При работе с семействами сайтов заметил такую особенность, если на сайте верхнего уровня создать тип контента и часть полей сделать скрытыми, то на текущем сайте все будет работать как надо, но вот подсайт уже с этим типом контента работает не корректно.
Проблемы:
скрытые поля скрыты не только в формах (просмотра, редактирования и создания), но и не доступны для рабочего процесса SPD и их нельзя отобразить в представлении.
В начале я решил изменить свойства с помощью SharePoint Manager 2010, но он выдал такую ошибку:


потом я решил изменить свойсво с помошью PowerShell

при выполнении команды $Field.Hidden = $false выдавало следующее сообщение:


Решение:

cls
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
$SPWeb = Get-SPWeb
http://server/site #Изменить адрес сайта#
$List = $SPWeb.Lists["Список"]  #Изменить на название списка#
$field = $List.Fields["
Поле"]  #Изменить на название поля# 
$type = $Field.GetType()
$mi = $type.GetMethod("SetFieldBoolValue", [reflection.bindingflags]"nonpublic, instance")
$parameters = "CanToggleHidden", $true
$mi.Invoke($Field, $parameters)
$Field.Hidden = $false
$Field.Update()
$SPWeb.Dispose()


вторник, 30 октября 2012 г.

Многострочный текст и XsltListViewWebPart

Когда мы используем поле "Многострочный текст" с включенным 
отображается подобным образом

для того что бы вывести значения поля нам потребуется:
1. открыть страницу с этим web-part в SPD
2. выбираем нужный тег

3. в открывшемся окне вводим 

<SharePoint:AppendOnlyHistory runat="server" FieldName="Название поля" ItemId="{$thisNode/@ID}" ControlMode="Display" />
* не забываем указывать Ваше значение поля
4. Но у нас осталось старое значение и его просто удаляем
Все! Готово!

понедельник, 8 октября 2012 г.

Копирование рабочего процесса SharePoint Designer


я думаю, многие сталкивались с проблемой переноса или клонирования РП из одного списка в другой или в другое семейство сайтов.
поискав в интернете, я наткнулся на статью: http://ikarstein.wordpress.com/2011/02/10/walkthrough-how-to-move-or-copy-a-sharepoint-designer-2010-list-workflow-to-another-list-on-the-same-site-or-another-site/
при опробовании такого способа у меня все не получалось перенести, т.к. он предлагал копировать только файл config, а у меня в рабочем процессе еще присутствовали файлы rules(условия). Тогда я решил попробовать сделать следующим образом:
  • Создаем новый рабочий процесс и связываем его с необходимым списком


  • Опубликовываем рабочий процесс

  • Далее заходим Все файлы > Workflows > Нужный рабочий процесс


  • В списке файлов копируем файлы с расширениями: xoml, xoml.rules, кроме xoml.wfconfig.xml в нем находится информация о списке к которому привязан рабочий процесс и если мы его заменим, то новый рабочий процесс будет привязан к списку с которым связан исходный рабочий процесс.


  • И вставляем в папку с файлами недавно созданного РП

  • Переименовываем вставленные файлы в название созданного РП

  • Заходим в рабочий процесс и опубликовываем его

Все, у нас РП скопирован. Единственно хочу предупредить,  что легкое копирование возможно только при полном соответствии полей списков исходного и конечного, иначе пройдётся заходить РП и редактировать его, адаптируя под конкретный список.

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

воскресенье, 30 сентября 2012 г.

Отображение представления Document Library для этого веб-сайта невозможно.


После переноса веб-узла в другую ферму и зайдя в дизайнере в "Страницы сайта" столкнулся с ошибкой "Отображение представления Document Library для этого веб-сайта невозможно." и в разделе "Списки и библиотеки" сообщение "Нет элементов для отображения в этом представлении." хотя вразделе "Все фалы" отображались и списки и библиотеки.




я решил посмотреть на узел через "SharePoint Manager 2010". В ходе просмотра списков и библиотек я заметил вот такое окно: 


Ставить необходимый Solution не было желания,  и данная библиотека мне была не нужна, и я решил ее удалить, но это сделать через " SharePoint Manager 2010" так и не получилось, я решил это сделать через дизайнер. Зашел в раздел "Все файлы" нашел библиотеку и удалил, также удалил из корзины. Все, теперь все работает. 



четверг, 9 августа 2012 г.

Кастомная форма в Sharepoint Designer и поле "Многострочный текст"


Приступил к настройке кастомной формы в Sharepoint Designer  2010 я столкнулся с проблемой, поле типа "Многострочный текст" у которого стоит галочка "Внесение изменений в существующий текст" отображается как обычное поле.



Решение:

Добавить код:

<SharePoint:AppendOnlyHistory runat="server" FieldName="Название поля" ControlMode="Display"/>

Пример:

<td width="400px" valign="top" class="ms-formbody">
            <SharePoint:FormField runat="server" id="ff7{$Pos}" ControlMode="Edit" FieldName="Body" __designer:bind="{ddwrt:DataBind('u',concat('ff7',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Body')}"/>
            <SharePoint:AppendOnlyHistory runat="server" FieldName="Body" ControlMode="Display"/>
<SharePoint:FieldDescription runat="server" id="ff7description{$Pos}" FieldName="Body" ControlMode="Edit"/>
</td>