Детали реализации процесса активации Document ID в Sharepoint – часть 2

Это вторая часть серии статей о внутренних деталях реализации процесса активации функциональности “Document ID Service” в Sharepoint, которая добавляет уникальный идентификатор к документам, хранящимся в библиотеках документов сайта, в котором происходит активация. Первая часть доступна по этому адресу. В первой части мы закончили на том, что необходимо подождать как минимум 0,5 часа или изменить системное время прежде, чем запускать задание “Document ID enable/disable”. Давайте продолжим исследование и посмотрим, что происходит дальше.

После активации фичи “Document ID Service”, в настройках сайт коллекции появляется новая ссылка на страницу с настройками Document ID. Если открыть ее сразу после активации, она будет выглядеть следующим образом:

Как было установлено в первой части, теперь мы должны временно изменить системное время: добавим 1 час к текущему времени и перезапустим службу таймера Sharepoint. После этого выбираем задание CA > Monitoring > Job definitions > “Document ID enable/disable” для соответствующего веб-приложения и запускаем его. Если после этого проверить исполняемые задания мы увидим индикатор прогресса задания «Document ID enable/disable» (если бы мы запустили задание, не изменяя системное время, то в истории исполненных заданий мы бы лишь увидели, что задание «Document ID enable/disable» работало 00:00:00, т.е. завершило работу сразу после начала):

После того, как задание завершит свою работу, идем в SQL Management Studio и попробуем выполнить Sql запрос, который мы использовали в первой части. Он не должен вернуть никаких строк, что означает, что рабочий элемент был удален из таблицы WorkItems:

declare @enable uniqueidentifier
set @enable = cast('749FED41-4F86-4277-8ECE-289FBF18884F' as uniqueidentifier)
select * from [dbo].[ScheduledWorkItems] where [Type] = @enable

На этот момент если пойти на страницу настроек Document ID, она будет выглядеть следующим образом:

Т.е. теперь в поле «Begin IDs with the following characters» установлено значение (случайный набор букв и цифр), а также показывается следующее предупреждение:

Configuration of the Document ID feature is scheduled to be completed by an automated process.

Это означает, что процесс активации до сих пор не завершен. Это происходит потому, что задание “Document ID enable/disable” создает другое рабочий элемент с типом A83644F5-78DB-4F95-9A9D-25238862048C. Для того, чтобы проверить это утверждение, исполним следующий Sql запрос:

declare @assign uniqueidentifier
set @assign = cast('A83644F5-78DB-4F95-9A9D-25238862048C' as uniqueidentifier)
select * from [dbo].[ScheduledWorkItems] where [Type] = @assign

Этот рабочий элемент запускается со следующими параметрами, которые указываются в столбце TextPayload таблицы ScheduledWorkItems:

<?xml version="1.0" encoding="utf-16"?>
<DocIdWorkitem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <fOverwriteExisting>false</fOverwriteExisting>
  <Cookie>1</Cookie>
</DocIdWorkitem>

Этот рабочий элемент обрабатывается заданием «Document ID assignment». Как указано выше, он добавляется заданием «Document ID enable/disable» и устанавливает значения в поле Document ID для всех существующих документов на сайте. Здесь также следует обратить внимание на значение в столбце DeliveryDate. Оно должно быть близким ко времени запуска задания «Document ID enable/disable» на предыдущем шаге. Т.к. мы еще не возвращали системное время назад к правильному значению, для обработки этого элемента нам нужно лишь запустить задание “Document ID assignment” в Central Administration. После этого мы должны увидеть индикатор прогресса этого задания:

и после некоторого времени рабочий элемент будет удален из таблицы ScheduledWorkItems (можете проверить с помощью Sql запроса, который мы использовали выше).

После этого можно вернуть системное время назад и перезапустить службу таймера. Теперь на странице настроек Document ID не должно быть предупреждения. Но поле «Begin IDs with the following characters» по-прежнему будет содержать значение из случайных букв и цифр:

Если вам нужно изменить префикс Document ID на собственное значение, необходимо пройти процесс с начала. После того, как вы нажмете Ok, будет создан рабочий элемент типа 749FED41-4F86-4277-8ECE-289FBF18884F со следующими параметрами:

<?xml version="1.0" encoding="utf-16"?>
<DocIdEnableWorkitem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <fEnable>true</fEnable>
  <fScheduleAssignment>true</fScheduleAssignment>
  <fOverwriteExisting>false</fOverwriteExisting>
  <fDocsetCtUpdateOnly>false</fDocsetCtUpdateOnly>
  <prefix>TEST</prefix>
</DocIdEnableWorkitem>

(В этом примере используется префикс TEST). А также рабочий элемент типа A83644F5-78DB-4F95-9A9D-25238862048C с параметрами:

<?xml version="1.0" encoding="utf-16"?>
<DocIdWorkitem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <fOverwriteExisting>false</fOverwriteExisting>
  <Cookie>2</Cookie>
</DocIdWorkitem>

После того, как оба задания будут завершены, для тестирования добавьте любой документ в библиотеку документов. На форме просмотра свойств документа должно быть поле Document ID – ссылка с текстом “TEST-1-1” и адресом http://example.com/_layouts/15/DocIdRedir.aspx?ID=TEST-1-1:

Таким образом, вы можете использовать стандартное поле Document ID в ваших типах содержимого. Этой статьей мы завершаем серию о функциональности Document ID. Надеюсь, что представленная информация поможет в вашей работе.

Реклама

Об авторе sadomovalex

Старший инженер, team lead, консультант. Работаю в стеке .Net. Последние несколько лет занимаюсь разработкой enterprise приложений под Sharepoint, чему и будет в основном посвящена тематика этого блога. Также активно использую и интересуюсь ASP.Net MVC, DDD, TDD, Agile. Активно участвую в жизни многих профессиональных сообществ, SPb .Net UG, SPb ALT.Net, rsdn, Finland SP UG и др.
Запись опубликована в рубрике Document management, Sharepoint. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s