вторник, 18 февраля 2020 г.

Создание сайта PWA в новой базе. (PowerShell)

В данной статье я поделюсь скриптом который:
1. Создает управляемый путь
2. Создает базу данных
3. Создает новый сайт PWA
4. Переводит в режим разрешений Project Server.

понедельник, 13 января 2020 г.

Получение WorkFlow Status с помощью CSOM


В этой статье я расскажу, как можно получить Internal Status в экземплярах рабочих процессов для конкретного элемента.


вторник, 24 декабря 2019 г.

Свои цвета в календаре.


Как возможно вы уже знаете, календари (представления календарей) можно объединять в один и разные календари выделить цветом. Но цветов не много и свои указать нет возможности.

пятница, 31 мая 2019 г.

Копирование верхней навигационной панели между коллекциями с помощью PowerShell. SharePoint 2013, 2016


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

среда, 28 ноября 2018 г.

Заполнение текущего пользователя в PeoplePicker

В этой статье я расскажу, как можно заполнять текущего пользователя в поле PeoplePicker
Для этого нам понадобятся две функции:
1. Получает текущего пользователя
2. Меняет значение в поле PeoplePicker

конечный резульрат

понедельник, 21 мая 2018 г.

Обновление фотографий пользователей из AD (SharePoint 2016)

Наверное, ни для кого не секрет, что в SP 2016 убрали FIM и на его основе сделали MIM. Но как быть если хочется погружать свойства из AD в свойства пользователей и при этом не ставить MIM.
В этой статье я расскажу, как можно с помощью PowerShell загрузить фото.
Принцип работы такой:
  • Из AD получаем всех пользователей, у которых есть фото.
  • Далее пробегаем по ним и сохраняем файлы фотографий локально на диск сервера.
  • Следующим этапом циклом проходим по файлам на диске и загружаем их SP

пятница, 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