Столбцы связи

Исходная статья опубликована 2 мая 2011 г.

фотография ДжонгхваПривет. Меня зовут ДжонгХва Лим (JongHwa Lim), я работаю менеджером проектов в группе SharePoint Designer. Давно не виделись. Кто-то мог подумать, что этот сайт больше не поддерживается, так как здесь не было новых записей с апреля прошлого года, но мы вернулись. Мы будем поддерживать этот сайт и публиковать новые записи по крайней мере раз в месяц и постараемся поддерживать связь с читателями и клиентами.

Давайте начнем обновление этого сайта (и публикацию записей членов моей группы) с небольшого, но очень полезного нового компонента SharePoint Designer 2010 (также известного как SPD).

Когда требуются столбцы связи

Прежде всего давайте определим сценарий. Вы — разработчик рабочих процессов, который привык использовать SPD, и вам нужно создать рабочий процесс, который должен использоваться во многих списках или библиотеках документов с несколькими полями, предназначенными для рабочих процессов. Как вы будете его реализовывать? Вот несколько возможных вариантов достижения этой цели.

· Рабочий процесс списка

o Можно начать с рабочих процессов списка. Добавьте поля, предназначенные для рабочего процесса, прямо в список. На этапе разработки в SharePoint Designer вы видите поля и можете создать логику рабочего процесса с помощью этих полей.

o Однако для повторного использования этого рабочего процесса в других списках или библиотеках такой способ не подходит.

· Рабочий процесс для повторного использования

o Вы немного лучше знакомы с рабочими процессами SPD и можете создать рабочий процесс для повторного использования, который решает проблему повторного использования. Но когда вы откроете конструктор рабочих процессов, то увидите, что задать можно только поле "Заголовок", а поля "Тип контента", "Дата создания", "Автор", "Код", "Дата изменения", "Автор изменения" и "Название" доступны только для чтения.

o Вы не сможете использовать необходимые поля для создания логики рабочего процесса.

· Рабочий процесс для повторного использования с базовым типом контента

o Вы опытный пользователь рабочих процессов SPD и вам известно понятие базового типа контента для рабочих процессов повторного использования.

o Создайте новый тип контента и добавьте в него необходимые поля. В диалоговом окне "Создание рабочего процесса для повторного использования" (Create Reusable Workflow) объявите созданный тип контента базовым типом.

o Теперь вы можете увидеть поля в конструкторе рабочих процессов и добиться поставленной цели. В этом варианте нет проблем со сценарием повторного использования, если связать этот рабочий процесс с типом контента и добавить тип контента в вписок или библиотеку документов.

o Но что делать, если вам понадобится новое поле? При добавлении каждого нового поля нужно перейти к типу контента сайта или к пользовательскому интерфейсу столбца сайта на сервере или в SPD.

o Существует и другой недостаток. Когда вы захотите переместить рабочий процесс с помощью команды "Сохранение в качестве шаблона", неупакованный рабочий процесс потеряет некоторые данные о базовом типе контента, если это настраиваемый тип контента или если он содержит пользовательский столбец сайта.
clip_image001

· Рабочий процесс для повторного использования со столбцом связи

o Вы знакомы с SPD практически так же, как и те, кому известно понятие базового типа контента. Поэтому вам известна концепция столбца связи.

o Когда при создании рабочего процесса вам необходимо поле, вы создаете его сразу со столбцами связи, в которых можно выбрать существующий столбец сайта или новый столбец. Вы не переключаетесь между конструктором рабочих процессов, типом контента сайта и пользовательскими интерфейсами столбцов сайта. Вы можете сделать все в одном месте.

o Кроме того, в этом варианте нет проблем с повторным использованием, поскольку определения рабочего процесса для повторного использования переносят поля вместе с ним, а пакет рабочего процесса поддерживает его.
clip_image002

Что такое столбец связи

Некоторые из вас возможно пытались найти файлы справки по этой теме. Вот несколько примеров того, что можно найти:

· В рабочих процессах для повторного использования по умолчанию отсутствует контекст конкретного списка или библиотеки. Поэтому по умолчанию они предоставляют только те столбцы, которые являются общими для всех списков и библиотек, например "Дата создания" и "Автор".
Если для рабочего процесса повторного использования требуется наличие определенных столбцов в списке или библиотеке, с которыми он связан, вы можете добавить эти столбцы в качестве столбцов связи. Столбцы связи автоматически добавляются в список или библиотеку, когда с ними связывается рабочий процесс повторного использования.

· Столбцы связи
Если для рабочего процесса повторного использования требуется наличие определенных столбцов в списке или библиотеке, с которыми он связан, вы можете добавить эти столбцы в качестве столбцов связи. Столбцы связи автоматически добавляются в список или библиотеку, когда с ними связывается рабочий процесс повторного использования.

· (Всплывающая подсказка кнопки ленты)
Определите столбцы, которые будут добавлены в список, когда с ним будет связан рабочий процесс. Эта возможность недоступна для рабочих процессов сайта.

Эти описания совершенно правильные и точно объясняют, что такое столбцы связи и для чего они нужны. Столбцы связи были введены, поскольку в реальных сценариях у разработчиков рабочих процессов для повторного использования не было достаточно хорошего взаимодействия для обновления полей "текущего элемента". Так как концепция "рабочего процесса для повторного использования" не существовала до появления SharePoint Designer 2010, не было и столбцов связи. При отсутствии столбцов связи единственным вариантом было использование базового типа контента. Однако это накладывало некоторые ограничения на связывание и взаимодействие с разработчиком, поскольку рабочий процесс мог связываться только с базовым типом контента или с типами, наследованными от него, и разработчик должен был несколько раз переходить из конструктора рабочих процессов к типу контента сайта или к пользовательским интерфейсам столбцов сайта.

Как создать столбец связи

Создать столбец связи достаточно просто. Я покажу это на примере. Как показано ниже, можно начать с кнопки ленты "Столбцы связи" (Association Columns).

clip_image002[1]

Если нажать эту кнопку, откроется диалоговое окно с предупреждением, показанное ниже.

clip_image003

Если нажать кнопку "OK", откроется главное диалоговое окно для создания столбца связи.

clip_image004

Можно использовать команду "Выбрать столбец сайта" (Select Site Column) или "Добавить новый столбец" (Add New Column). Если выбрать столбец сайта, откроется следующее диалоговое окно.
clip_image005

Если выбрать поле "Адрес" (Address), оно будет добавлено в главное диалоговое окно.

clip_image006

Если добавить новый столбец, откроется следующий пользовательский интерфейс, в котором можно определить новый столбец.

clip_image007

В этом примере я создал многострочное текстовое поле с именем "Комментарии утверждающих" (Comments from Approvers).

clip_image008

Обратите внимание, что при выборе нового столбца активируется кнопка "Изменить" (Modify), которая неактивна для существующих столбцов.

Если нажать кнопку "OK", создание столбца связи завершится. Теперь на поверхности конструктора отображаются поля "Адрес" (Address) и "Комментарии утверждающих" (Comments from Approvers).

clip_image009

Как это работает

По существу, столбец связи использует столбец сайта — вот почему в пользовательском интерфейсе отображается кнопка "Выбрать столбец сайта". Столбцы связи, как созданные заново, так и выбранные из столбцов сайта, сохраняются в файле wfconfig и могут использоваться при разработке.

clip_image011

Однако если просмотреть файл wfconfig перед публикацией рабочего процесса, можно обнаружить следующее определение поля. Это объясняется тем, что столбцы сайта создаются во время публикации; тогда же обновляются соответствующие определения полей в файле wfconfig.

clip_image013

Поэтому если снова открыть окно столбцов связи после публикации, можно увидеть, что описание "Новый столбец" (New Column) изменилось на "Существующий столбец" (Existing Column) и изменить его уже нельзя.

clip_image014

При связи рабочего процесса повторного использования со списком или библиотекой документов мы добавляем столбцы связи в список или библиотеку, позволяя рабочему процессу ссылаться на соответствующие поля.

Упаковка

Если упаковать рабочий процесс и распаковать его на другом сайте, столбцы связи сохраняются, т. е. столбцы связи также упаковываются и распаковываются. С другой стороны, настраиваемый базовый тип контента и пользовательский столбец сайта в этом типе не упаковываются полностью, т. е. во время переноса некоторые данные могут быть потеряны.

Ограничение

Когда рабочий процесс для повторного использования связывается с типом контента, столбцы связи добавляются в список или библиотеку документов при добавлении типа контента в список или библиотеку. Столбцы связи не добавляются непосредственно в тип контента.

Это локализованная запись блога. Исходная статья находится по адресу Association Columns