пятница, 6 апреля 2018 г.

Изменение лимита workflow manager

Последнее время участились случаи, когда при массовых обновлениях элементов SharePoint из других систем память заканчивалась. Я тешил изменить настройки лимитов и согласно статье https://msdn.microsoft.com/ru-ru/library/jj680843(v=azure.10).aspx
Нужно поменять параметр WorkflowServiceMaxLoadedInstances и жизнь должна наладиться, но мои попытки сделать это через PowerShell заканчивались ошибкой.

Set-WFServiceConfiguration : ActivityId клиента Базовое соединение закрыто: Непредвиденная ошибка при приеме.: 599cc617-c030-0007-31cf-af5930c0d301.
строка:1 знак:1
+ Set-WFServiceConfiguration
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-WFServiceConfiguration], WorkflowCommunicationException
    + FullyQualifiedErrorId : Microsoft.Workflow.Client.WorkflowCommunicationException,Microsoft.Workflow.Commands.SetServiceConfigCommand

понедельник, 27 ноября 2017 г.

Отображение Ribbon для конкретного пользователя

Рассмотрим задачу, когда нужно скрыть риббон и верхнюю панель.
это сделать не так сложно, нужно добавить всего пару строчек CSS
#suiteBarDelta{
  display: none;
}
#s4-ribbonrow{
     display: none;
}


Но возникает проблема, ведь часть кнопок скрыта и администрировать становится не возможным. Конечно можно открыть панель разработчика в браузере и отобразить требуемы контент, но при частой работе с риббоном это не удобно.

вторник, 10 октября 2017 г.

Как получить значение поля в DispForm

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

среда, 27 сентября 2017 г.

Заполнение пользователя в поле, если форма изменена в дизайнере

Допустим  мы изменили форму через дизайнер и у нас есть задача указать поле "Пользователь или группа" определенного пользователя.
мы можем это сделать прибегнув к jQuery


jQuery("table.ms-usereditor").find("div").text("user login");
jQuery("table.ms-usereditor").find("td:eq(2)").children().eq(0).click();




данное решение будет работать если в форме поле выбора пользователя только одно.

четверг, 7 сентября 2017 г.

Всплывающие подсказки - callout

В этой статье я расскажу, как можно добавить Callout (popover от MS).

Я не буду в даваться в детали, т.к. примеров в инете достаточно, а покажу как можно сделать универсальное решение.

пятница, 4 августа 2017 г.

Утверждение задач WorkFlow через PowerShell

В этой статье я расскажу, как можно массово через PowerShell утвердить задачи РП созданные через рабочий процесс "Утверждение"

и так нам понадобится 

U2U Caml Query Builder  

с помощью которого мы формируем CAML
полученный CAML вставляем в скрипт

$web = Get-SPWeb http://portal/sites/Doct
$List = $web.Lists["Задачи"]

$Query = New-Object Microsoft.SharePoint.SPQuery;
$Query.Folder = $List.RootFolder;
$camlQuery =   "9"
$camlQuery
$Query.Query = $camlQuery;
$Query.RowLimit = 100;
$List.GetItems($Query)  |  foreach-object {

    $item = $_
    write-host $item.Name $item.Id  
    $item['WorkflowOutcome']='Утверждено'
    $item['ExtendedProperties'] = $item['ExtendedProperties'] + "ows_TaskStatus='Утверждено' ows_FieldName_Comments=''"         
    $item['PercentComplete']= 1
    $item['Completed']=1
    $item['Status']= 'Завершена'
    $item.Update()

}
$web.Dispose()


вторник, 1 августа 2017 г.

Mount-SPContentDatabase : Could not connect to sharepoint using integrated security: Cannot connect to database master at SQL server at sharepoint.


Сегодня при обновлении базы с 2013 на 2016 столкнулся с ошибкой
Mount-SPContentDatabase : Не удалось подключиться к sp_sql, используя встроенную проверку подлинности: Не удается подключиться к базе данных master на сервере SQL в sp_sql. Возможно, база данных не существует, или у текущего пользователя нет разрешения на подключение к ней.

Mount-SPContentDatabase "DB_HR" -DatabaseServer "sp_sql" -WebApplication http://portal.ru

Хотя ферма работает, работает и учетная запись имеет соответствующие права на SQL

понедельник, 5 июня 2017 г.

Опрос с картинками (Sharepoint Survey Image Question)

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


И пришлось прибегнуть к кастомизации страницы с помощью jQuery. Так же для зумирования изображения была использована библиотека ImageViewer.

вторник, 18 апреля 2017 г.

Итоги (суммирование) для вычисляемого поля в представлении.

В этой статье я расскажу как можно вывести итоги для вычисляемого поля.
по умолчанию SharePoint не предоставляет возможности вывести сумму по Calculated field, но мы можем это исправить и изменить шаблон рендера представления CSR и самостоятельно посчитать сумму.

вторник, 28 марта 2017 г.

ValidateCredentialClaims - Access Denied: Claims stored in the credentials did not match with the group claim for a group app.

Сегодня планировал настроить синхронизацию внешнего списка с «Настраиваемым списком» SharePoint по средствам PowerShell, но столкнулся с ошибкой 

The shim execution failed unexpectedly - Access is denied to the Secure Store Service 



В ULS нашел:
ValidateCredentialClaims - Access Denied: Claims stored in the credentials did not match with the group claim for a group app.

пятница, 27 января 2017 г.

Проверка выбранного значение в PeoplePicker при сохранении элемента

В этой статье я расскажу, как можно осуществлять проверку выбранного значения в поле типа «Пользователь или группа». И так будем проверять что в поле выбран пользователь отличный от текущего. В случае если он выбрал сам себя, то ему будет выведено сообщение об этом.


среда, 11 января 2017 г.

Копирование и применение мастер страницы на все сайты веб приложения.

replacement master page across all sites Web application copying master
Думаю, что многие сталкивались с задачей замены мастер страницы в большом количестве сайтов. В моем случае это было порядка 30 коллекций в которых есть под сайты. Если менять страницу руками, то это будет занимать продолжительное время. Поэтому мне было проще написать скрип, который все сделает сам.

понедельник, 28 ноября 2016 г.

EventID 4965 Не удалось инициализировать некоторые свойства сайта для веб-сайта по адресу

Пару недель назад, на одном из серверов, произошёл сбой. В целом проблему решили, но была замечена ошибка. На одном подсайте пропали меню в левой навигационной панели и сайт провал из верхней навигационной панели.
При обращении в меню «Навигация» в настройках сайта была ошибка доступа. Пробовал и из под SPfarm, но доступа не было. В even’ах было замечена ошибка:

вторник, 22 ноября 2016 г.

Назначение прав на папки с помощью PowerShell

Сегодня поступила задача изменить права в библиотеке. Т.е. нужно назначить права на каждую папку в корне библиотеке и права на две вложенные папки.

структура такова:

Библиотека документов
                |
                |
                |- Вендор Avast (персональные права на папку)
                |                              |
                |                              |- Папка 1
                |                              |-Маркетинговые материалы (персональные права)
                |                              |-Лицензионные формы (персональные права)
                |                              |-Папка N
                |
                |- Вендор Eset (персональные права на папку)
                |                              |
                |                              |- Папка 1
                |                              |-Маркетинговые материалы (персональные права)
                |                              |-Лицензионные формы (персональные права)

                |                              |-Папка N


среда, 2 ноября 2016 г.

Заполнение филиала сотрудника из свойств пользователей с помощью PowerShell

В этой статье я расскажу, как решал задачу по заполнению филиала обратившегося сотрудника беря данные из UPS.
В общем стандартная ситуация, идет проект уже полгода, и тут понимают, что для получения более полной статистики по обращениям не хватает еще понимания филиала сотрудника. Эта информация есть в AD и в UPS в свойстве SPS-Location.
Для заполнения этой информации в новых заявках я это реализовал средствами js (постараюсь описать решение в блоге), но вот в уже существующих заявках решил прибегнуть к PowerShell

четверг, 11 августа 2016 г.

Отсутствие возможности замены стандартной формы в место InfoPath

Наступают моменты, когда хотим установить стандартную форму в место  InfoPath формы. И в ряде случаем достаточно несколько кликов, но что если такой возможности нет, и SharePoint пишет: 
Для использования данного компонента необходим браузер Internet Explorer.

понедельник, 8 августа 2016 г.

Создание "сложных" фильтров в веб-части на странице публикаций

Бывают случаи, когда есть необходимость создать «сложный» фильтр в представлении. Сложный – это громко сказано, с виду фильтр прост до безобразия, но вот реализовать через веб интерфейс не представляется возможным. К примеру такое уловие:
(«Статус» == «Новая») или («Статус» == «Не назначена» и «Отдел» == «Название отдела»).
К примеру можно решить задачу подменив CALM запрос в параметрах веб-чатс, но рассмотрим случай, когда есть страница публикаций и на ней находится несколько веб-частей с разными фильтрами. И тут возникает проблема, через дизайнер нет возможности поправить CAML запрос…

среда, 13 июля 2016 г.

Изменение привязки OOS к серверу SharePoint 2016

Как уже известно, OOS (Office Online Server) в SharePoint 2016 заменил OWA (Сервер Office Web Apps) используемого в SharePoint 2013. В этой статье я расскажу, как поменять привязку в SharePoint 2016. К примеру, из одного сервера OOS выросла ферма из нескольких серверов и имя поменялось.
Первое что делаем, это удаляем существующие привязки.

Remove-SPWOPIBinding -All:$true

среда, 22 июня 2016 г.

Запуск рабочего процесса с помощью PowerShell

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

среда, 1 июня 2016 г.

Не запускается служба User Profile Synchronization Service если используется SQL AlwaysOn

Сегодня добавлял в ферму третий сервер SharePoint, с виду было все как обычно…
Запустил требуемые службы и когда дело до шло до UPS, то она отказывалась стартовать.
Полез смотреть ULS и нашел это

Failed to set the new Service Broker on database User_SyncDB on server SQL. Exception: The operation cannot be performed on database "User_SyncDB" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.  ALTER DATABASE statement failed.  ALTER DATABASE statement failed.

После анализа логов стало понятно, что из-за того, что база находится в группе доступности служба не может произвести требуемые операции с базой User_SyncDB.



После удаления базы из группы доступности повторно запустил службу UPS и она запустилась. Вернул базу в группу доступности.
Вот тебе и поддержка AlwaysOn :)