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

Решение проблем с Multiple lines of text с параметрами Plain text и Append Changes to Existing Text

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

как результат - на форме редактирования история не читается.

понедельник, 23 марта 2020 г.

Вывести ID элемента на форму редактирования/просмотра


Появилась задача вывести ID элемента на форму и эту задачу можно решить несколькими способами.
1. Добавить вычисляемое поле, которое будет брать данные из поля ID.
Минус – на форме редактирования не отображается.
2. Создать поле и писать в него или с помощью РП или JS.
Можно сделать другим способом. Прибегнув к jQuery и написав немного кода.



ссылка на код

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

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

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

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

вторник, 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 коллекций в которых есть под сайты. Если менять страницу руками, то это будет занимать продолжительное время. Поэтому мне было проще написать скрип, который все сделает сам.