пятница, 30 января 2015 г.

Microsoft Virtual Academy. Первый курс по разработке SharePoint 2013

Есть замечательный ресурс, который позволяет пройти обучение по современным технологиям Microsoft - Microsoft Virtual Academy. Меня очень огорчало полное отсутствие материалов по SharePoint. Сейчас ситуация поменялась и был добавлен первый курс, который состоит из трех обучающих модулей (на самом деле курс был добавлен еще 01 авг 2014 , но я только это заметил). Весь материал взят с конференции DevCon 2014.
Надеюсь в будущем появятся полноценные обучающие материалы.


вторник, 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 разработчиков.