вторник, 30 декабря 2014 г.

Exam 70-347 Enabling Office 365 Services

Сегодня сдал экзамен Exam 70-347 Enabling Office 365 Services
Как и прошлый экзамен - сдавал бесплатно, по ваучеру. Было около 45 вопросов.
Половина вопросов совсем простые, если доводилось администрировать Office 365.
Мне как разработчику SharePoint особенно легко было отвечать на вопросы по SharePoint Online.
Сдавал в тестовом центре при УЦ Инвента, т.к. в УЦ Специалист не было мест на сегодняшнюю дату. 

среда, 3 декабря 2014 г.

Exam 70-346 Managing Office 365 Identities and Requirements

Сегодня удалось сдать экзамен Exam 70-346 Managing Office 365 Identities and Requirements

Сейчас попытка обойдётся в €60.00 EUR. Second Shot'а нет.
Я сдавал по ваучеру, еще можно получить. Следующий экзамен - 70-347.
Сдавал в Thomson Prometric. С 01.01.2015 можно будет сдавать только через Pearson VUE.
Есть инструкция как пройти регистрацию для Pearson VUE.
Экзамен достаточно простой, особенно если у Вас был опыт внедрения Office 365.
Сложными показались вопросы по федерации и SSO, а так же вопросы из разряда "А какой порт(ы) что-то там".

вторник, 2 декабря 2014 г.

SharePoint. System.ArgumentException: calType

В процессе использования SharePoint 2013 коллега поправил себе профиль, добавив дополнительные языки:


Установлен Service Pack 1, а English Language Pack - нет.
Сразу же после применения изменений на всех страницах появлялась ошибка:

Пробовал через PowerShell скопировать поля из работающего профиля в сломанный, это не дало результат.
Исправить удалось удалением профиля, используя PowerShell:
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) 
{
    Addd-PSSnapin "Microsoft.SharePoint.PowerShell"
}
[void][reflection.assembly]::Loadwithpartialname("Microsoft.Office.Server");     
$site=new-object Microsoft.SharePoint.SPSite("http://portal");            
$serviceContext = Get-SPServiceContext $site;            
$site.Dispose();            
$upm = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext);
$upm.RemoveUserProfile("Domain\Account");
Хотя это можно сделать через веб-интерфейс.
Потом на всякий случай удалил пользователя из user information list, для этого я использовал SharePoint End User Viewer Tool, таким образом проблема была решена.

Но ошибка может сохраняться, если пользователь присутствует на других коллекциях.
Это происходит из-за того, что каждая коллекция сайтов имеет свой список сведений о пользователях. Коллекций может быть очень много. Например, из-за личных сайтов.
Чтобы автоматически удалить из всех коллекций - воспользуйтесь скриптом ниже:
Add-PSSnapin Microsoft.SharePoint.PowerShell
$UserLogin = "i:0#.w|domain\login";
$Sites = Get-SPSite -Limit All
$AllSites = @()

foreach($Site in $Sites)
{
    $RootWeb = $Site.RootWeb
    If([bool](Get-SPUser -Identity $UserLogin -Web $RootWeb -EA SilentlyContinue) -eq $True)
    {
        $User = Get-SPUser -Identity $UserLogin -Web $RootWeb
        Write-Host ("Удален из " + $RootWeb.Url)
        Remove-SPUser -Identity $User -Web $RootWeb -Confirm:$False
        $AllSites += $RootWeb.Url
    }
    else
    {
        Write("Отсутствует на: " + $RootWeb.Url)
    }
}

if(!($AllSites).count -eq 0)
{
    Write-Host "Removed user $($UserLogin) from:" -Fore "Magenta"
    foreach($S in $AllSites){Write-Host “- $S”}
    Write-Host ""
    $AllSites = @()
}

четверг, 27 ноября 2014 г.

Workflow Manager error: Scope '/SharePoint/default/... is not in an active state

При работе с Workflow Manager получил ошибку:
System.InvalidOperationException: Operation failed with error Microsoft.Workflow.Client.ScopeInactiveException: Scope '/SharePoint/default/71295e23-e1ea-45b8-b072-61a6548fa5cd' is not in an active state. Its current state is 'Unregistering'. HTTP headers received from the server - ActivityId: b9d7fa25-bf33-4303-ba60-7dda39e7574c. NodeId: PK-SP-WF. Scope: /SharePoint/default/71295e23-e1ea-45b8-b072-61a6548fa5cd. Client ActivityId : e583bf9c-b891-80dd-3ac0-277bbb634739. ---> System.Net.WebException

В SharePoint Designer она выглядела так:



Я неоднократно сталкивался с ошибками Workflow Manager'а, все удавалось как то решать.
С этой же проблемой мне ничего не удалось сделать, от отчаяния я полез в базу...
Попробовал обновить запись о статусе руками и это сработало:
update [WFResourceManagementDB].[dbo].[Scopes] set [Status] = 'Active' where [Status] = 'Unregistering'


воскресенье, 16 ноября 2014 г.

SharePoint. Как поменять favicon.

Порой необходимо заменить favicon в SharePoint, делается это одинаково для 2010 и 2013 версии, думаю так же будет для следующих.

К примеру мы хотим что-то вроде такого:

Можно подменить файл в папке по адресу C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\IMAGES, с виду вариант не очень хорош, но при нем картинка избранного поменяется везде. Второй вариант позволит поменять картинку только на отредактированной Вами мастер-странице. Для этого откройте мастер-страницу через SharePoint Designer и отредактируйте тэг:
<SharePoint:SPShortcutIcon runat="server" IconUrl="/_layouts/15/images/favicon.ico?rev=23" />Поменяйте "IconUrl" на адрес с Вашей картинкой, только положите ее рядом со старой. После этого необходимо выполнить перезагрузку веб-сервера IIS и почистить кэш браузера.

пятница, 14 ноября 2014 г.

Бесплатная книга "SharePoint 2013 App Model Succinctly"

Известный производитель компонентов, Syncfusion - выпустили новую бесплатную книгу:


Серия книг "Succinctly" призвана кратко описать технологию, не более 100 страниц.
Крайне рекомендую к прочтению, даже если Вы не используете apps для создания решений, как и абсолютное большинство SharePoint разработчиков.

вторник, 28 октября 2014 г.

Встреча юзер-группы по SharePoint 16.10.2014


16.10.2014 была очередная встреча юзер-группы по SharePoint, где мне удалось выступить.
Теперь доступны записи докладов.
Александр Ульмаскулов — Разработка форм SharePoint с помощью KnockoutJS:
http://www.youtube.com/watch?v=idyYf_DRKGw&index=11&list=UUgIOLncjk2di_wK9iIltW1w
Денис Молодцов - Отладка исходного кода SharePoint с помощью Reflector:
http://www.youtube.com/watch?v=7xLFgVdqB2w&index=10&list=UUgIOLncjk2di_wK9iIltW1w
Борис Журкин - Как подружить формы SharePoint и AngularJS:
http://www.youtube.com/watch?v=l1w_KT1NKN0&index=9&list=UUgIOLncjk2di_wK9iIltW1w
Евгений Трифонов - AvePoint DocAve Backup:
http://www.youtube.com/watch?v=9kNkJyz-c7E&list=UUgIOLncjk2di_wK9iIltW1w&index=8
Станислав Выщепан - Особенности логирования в SharePoint 2013:
http://www.youtube.com/watch?v=fIXQcgYZ6H4&index=7&list=UUgIOLncjk2di_wK9iIltW1w
Антон Бастюченко - Как обращаться к серверному коду из App Web:
http://www.youtube.com/watch?v=OVCJ39NMvhg&index=6&list=UUgIOLncjk2di_wK9iIltW1w

Спасибо Станиславу Выщепану за организацию и качественный монтаж видео.



Так же будет продолжение:
6 ноября состоится встреча юзер-группы по SharePoint в Технологическом Центре Microsoft на Белорусской, участие бесплатное. Зарегистрироваться можно по ссылке.