вторник, 26 мая 2015 г.

Crawl Rules Search People SharePoint 2013

Возникла потребность, что бы некоторые пользователи не отображались в результатах поиска, ранее, в SharePoint 2010 у меня с этим проблем не возникало. Но вот с SharePoint 2013 возникли проблемы.
Как выглядит адрес профиля пользователя:
согласно Regular Expressions Support in SharePoint 2010 Crawling  все тоже должно быть хорошо.
Для проверки выражения для правила, чтобы после каждого изменения правла не ждать полного обхода, пошел по другому пути. Зашел в Crawl Log > URL View   и в строке экспериментировал.
Если пустая строка, то показывает весь индексированный контент
Если ввести адрес
то результатов у меня не выводило

если так:
то результат уже выводился.

Но вот с обратным слешем «\» возникли проблемы

Я пробовал и [\\] и [\] и %5C

Решение.

Как обходной путь использовать в место «\» использовать «*»
Выглядит примерно так http://my.site:80*person.aspx?accountname=domain*user1

Для пользователей forms-based authentication у них путь выглядит
для того что бы исключить из результатов поиска все таких пользователей я использовал правило

после добавления правил индекса нужно запустить Full Crawl



вторник, 12 мая 2015 г.

REST запросы /_vti_bin/ и /_api/web/ в SahrePoint

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

получаем отображаемые названия полей
через JavaScript (предварительно подключив jQuery)


_spBodyOnLoadFunctionNames.push("getEmployees");
function getEmployees()
{
  $.getJSON(_spPageContextInfo.webAbsoluteUrl + "/_vti_bin/listdata.svc/Employees?$select=Создано,Название",
  function (data) {  
    console.log(data)
  });
} 
получаем

согласитесь, что это не удобно
как решение использовать не /_vti_bin/, а /_api/web/

http://site/_api/web/lists/GetByTitle('Employees')/items(1)?$select=Title
получаем

через JavaScript (предварительно подключив jQuery)
_spBodyOnLoadFunctionNames.push("getEmployees");
function getEmployees()
{
  var request = $.ajax({
    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Employees')/items?$select=Title",
    type: "GET",
    headers: {"Accept": "application/json;odata=verbose"},
    cache:false,                
    success: function(data){  
      console.log("моя функция")
      }
   });
      
  request.done(function (data){ console.log('данные REST получены, объектов - ' + data.d.results.length); 
          console.log(data)
         });  
  request.fail(function (){console.log('Ошибка при выполнении запроса REST')}); 
} 

на выходе


как уже могли заметить данные получаем не через $.getJSON(), а через $.ajax(), т.к. на нужено передать свойство headers: {"Accept": "application/json;odata=verbose"}, что бы нам вернулся JSON
так же я добавил обработчики .done() и fail(), что бы выводить информацию по результатам выполнения запроса REST

воскресенье, 3 мая 2015 г.

UserProfileApplication.SynchronizeMIIS: Failed to configure MIIS post database, will attempt during next rerun. Exception: System.Configuration.ConfigurationErrorsException: ERR_CONFIG_DB

Спустя время после переезда баз данных в другой кластер было замечено, что служба User Profiles Service не запущена, при старте службы ничего не происходило. В Event Viewer было чисто.
  В начале были предположения относительно прав и политик, которые менялись в последнее время, но все без успешно.
Посмотрел ULS я увидел ошибку «UserProfileApplication.SynchronizeMIIS: Failed to configure MIIS post database, will attempt during next rerun. Exception: System.Configuration.ConfigurationErrorsException: ERR_CONFIG_DB»
В начале наткнулся  на “Stuck on Starting”: Common Issues with SharePoint Server 2010 User Profile Synchronization, но права были в порядке.
Так же были у людей проблемы из-за SQL Server 2014, но у меня был SQL Server 2012.

Решение

Оказалось нужно было поставить SQL Server 2008 R2 SP1 Native Client
Скачать можно тут https://www.microsoft.com/en-us/download/details.aspx?id=26728
Нужен 1033\x64\sqlncli.msi  - 7.7 MB