Когда я рассказываю конечным пользователям о Microsoft Office SharePoint Server (MOSS) 2007, я всегда прошу их показать используемые ими инструменты и как именно они их используют. Несомненно, кто-нибудь в организации использует Microsoft® Office AccessTM для решения важных задач бизнеса. Программа Access до сих пор является ценным инструментом и важным активом для множества компаний.
MOSS 2007 позволяет использовать приложения, построенные на основе Access, и интегрировать их с SharePoint® для создания новых решений с более широкими возможностями. В данной статье рассматривается интеграция MOSS с Access и настройка этих двух продуктов конечным пользователем для создания решения.
Базовая технология, предоставляемая MOSS программе Access, включает рабочий процесс, общий репозиторий (сервер SQL Server®) и веб-интерфейс (обозреватель). Функции SharePoint включают управление документами, рабочие области и возможность настройки пользовательских списков для использования встроенных рабочих процессов и стандартных веб-частей, от рекламных акций до создания списка контактов или проблем или управления созданными пользователем формами. Более того, простота использования знакомых технологий Office усиливает у конечных пользователей ощущение увеличения возможностей. Как вы увидите, MOSS не ставит под угрозу существующие решения. Напротив, MOSS увеличивает эффективность, поскольку не требуется переписывать приложения, что позволяет конечным пользователям сосредоточиться на деловых вопросах, а не заниматься решением технических трудностей.
Преимущества получают не только конечные пользователи. ИТ-подразделения и администраторы стремятся помочь конечным пользователям поддерживать все пользовательские базы данных, количество которых в компании быстро увеличивается. Многие даже не знают, что Access используется для решения критически важных задач бизнеса, пока не столкнуться с определенными проблемами, такими как ограничения дискового пространства, многопользовательский доступ, безопасность, восстановление поврежденных баз данных, доступ к веб-ресурсам, несовместимые версии Access и развертывание изменений на нескольких рабочих станциях. У SharePoint есть ответы на все эти вопросы.
Хотя программа Access и имеет ограничения, она проста в работе и предоставляет богатые возможности, особенно для пользователей, не занимающихся написанием кода. Одна программа обеспечивает настраиваемые реляционные таблицы, простые запросы (и сложные), интерфейсный создатель форм с функцией перетаскивания, отчеты на основе данных и возможность настройки нескольких пользователей. Создание решений на основе Access и SharePoint имеет смысл как для организаций, стремящихся к объединению ресурсов и возможностей, так и для отдельных пользователей, пользующихся преимуществами приложений и навыков, накопленных в течение многих лет.
Начало работы
Access 2007 предоставляет несколько путей интеграции с MOSS 2007. Как показано на рис. 1, они включают: импорт данных из списка SharePoint, публикацию данных на узле SharePoint, создание списка SharePoint, использование данных SharePoint в качестве внешнего источника, перенос базы данных Access на новый или существующий узел SharePoint и автономный доступ к данным SharePoint.
Рис. 1 Access 2007 предоставляет несколько простых точек входа для интеграции с SharePoint.
Лучше всего начать с создания списка SharePoint в таблице Access. Список SharePoint очень сходен с таблицей Access. Он сохраняется в базе данных содержимого SQL, содержит определенные атрибуты полей и поддерживает поиск.
При создании списка SharePoint необходимо иметь в виду следующие ограничения: для обеспечения оптимальной производительности рекомендуется одновременно просматривать не более 2 000 элементов; SharePoint не обеспечивает целостность данных; объекты OLE не экспортируются в SharePoint; проверка данных ограничена.
Для создания списка SharePoint в таблице Access прежде всего выберите вкладку «Внешние данные», затем нажмите ставшую доступной кнопку «Список SharePoint» в группе «Экспорт». После этого необходимо указать узел SharePoint, на котором будет размещен этот список, заполнив диалоговое окно «Экспорт – список SharePoint», показанное на рис. 2, или щелкнув таблицу правой кнопкой мыши и выбрав «Экспорт данных в список SharePoint». Имейте в виду, что если таблица была дочерней, все родительские таблицы также будут экспортированы.
Рис. 2 Данные Access будут экспортированы на указанный узел SharePoint
По завершении процессе экспорта можно сохранить выполненные действия по экспорту, чтобы не пришлось повторять их в дальнейшем. В этот момент можно перейти к узлу SharePoint и просмотреть отправленные данные. Эта простая операция удобна для перемещения данных в SharePoint и предоставления пользователям доступа к ним. Преимущества состоят в повышении безопасности, поскольку данные теперь сохраняются в базе данных SQL Server, и упрощении доступа, поскольку информация доступна через обозреватель.
Однако другая операция, установка связи списков в SharePoint как таблиц в Access, предоставляет гораздо более эффективный способ интеграции Access и SharePoint. Для этого щелкните вкладку «Внешние данные» в программе Access и выберите «Список SharePoint» в группе «Импорт». Появляется диалоговое окно, показанное на рис. 3.
Рис. 3 Установка связи Access с SharePoint
Выберите узел со списком SharePoint, который будет использоваться в качестве присоединенного источника данных. По завершении этой операции список будет показан в программе Access как связанная таблица, а в правом нижнем углу приложения появится индикатор «В сети с SharePoint». Теперь установлена двухсторонняя синхронизация между Access и SharePoint с поддержкой выполнения операций добавления, изменения и удаления из обеих программ. Как вы увидите, для таблицы можно написать код для предоставления дополнительных возможностей.
При установлении связи со списками SharePoint в Access можно обнаружить, что по умолчанию также импортируется другая таблица, список сведений о пользователях Windows® SharePoint Services (WSS), с которой также устанавливается связь. Кроме того, создается таблица неполадок с именем «Перейти к неполадкам узла SharePoint». В этой таблице можно просмотреть конфликты с данными.
Дополнительные сведения о переносе данных и обработке типов данных во время преобразования см. в статье «Преобразование программой Access типов данных Access и SharePoint» (office.microsoft.com/en-us/access/HP010477131033.aspx) и раздел «Ограничения переноса» в статье «Перенос таблиц базы данных Access Database на узел SharePoint и установление связи с ними» (office.microsoft.com/en-us/access/HA101314681033.aspx).
Интеграция таблиц и списков третьим способом выполняется из программы SharePoint. Выберите список, затем на вкладке «Действия» щелкните «Открыть с помощью Access». Появляется диалоговое окно с запросом на ввод имени базы данных (новой или существующей). После ввода имени базы данных можно просто установить связь с данными на узле SharePoint или экспортировать данные непосредственно в (см. рис. 4).
Рис. 4 Обеспечение доступа к данным SharePoint из Access
Перенос базы данных в SharePoint
До сих пор мы рассматривали импорт списка SharePoint как связанной таблицы и экспорт таблиц в SharePoint как списков, но что если требуется доступ ко всей базе данных? Критически важные приложения множества организаций выполняются в Access и должны иметь возможность удаленного доступа, чтобы отдельные пользователи могли выполнять отчеты и запросы, а также вводить данные. В подобных случаях переписывание приложения не всегда осуществимо с экономической точки зрения или вследствие отсутствия необходимых навыков. Эта проблема решается в SharePoint и Access с помощью возможности «Move to SharePoint» (Перенос на узел SharePoint), которая доступна на вкладке «Списки SharePoint» программы Access. Она сходна с возможностью переноса на SQL Server с помощью мастера преобразования в формат SQL Server, который появился еще в Access 97.
Преимущества переноса всей базы данных Access на узел SharePoint заключаются в том, что все таблицы преобразуются в списки SharePoint; выполняется резервное копирование базы данных Access; списки автоматически становятся связанными таблицами в Access; возможен перенос всей базы данных, а не только таблиц; база данных работает так же, как и до переноса.
При нажатии кнопки Move to SharePoint появляется диалоговое окно, показанное на рис. 5. После указания узла необходимо решить, должна ли сохраняться база данных. При сохранении вся база данных будет сохранена в выбранной библиотеке документов. Это означает, что база данных целиком (включая формы, отчеты, запросы и макросы) сохраняется на узле SharePoint, и таким образом становится недоступной на сервере. Если пользователю необходим доступ к базе данных, он просто переходит к библиотеке, в которой она содержится, и щелкает ее, после чего база данных будет автоматически развернута на рабочей станции пользователя.
Рис. 5 Укажите узел SharePoint, на который необходимо перенести базу данных
При переносе всей базы данных под лентой появляется сообщение «Публикация изменений». Это обеспечивает синхронизацию локальных изменений структуры и данных с копией на сервере. Если эта возможность не выбрана, только таблицы будут преобразованы в списки и связаны с Access. В этом случае база данных целиком не будет доступна сообществу пользователей, также не будет создаваться ее резервная копия как объекта в SharePoint.
После выбора одной из этих возможностей база данных вместе с соответствующими сведениями будет доступна через выбранный узел SharePoint. Снова автоматически создается таблица с именем «Перейти к неполадкам узла SharePoint». В ней регистрируются все конфликты, связанные с переносом. При загрузке таблицы на узел SharePoint можно просмотреть все возникшие проблемы программы Access.
Представления, формы и отчеты
После переноса базы данных необходимо проверить ее функциональность. Перед началом проверки убедитесь, что отображается индикатор «В сети с SharePoint». Имейте в виду, что запросы Access становятся представлениями SharePoint; представления SharePoint очень сходы с запросами Access.
При переносе всей базы данных существующие запросы копируются в SharePoint как представления. Пользователи Access понимают, что написание запросов позволяет просматривать наборы данных. Изучение аналогичных действий в представлении SharePoint помогает понять размещение данных в списке SharePoint.
Одним из наиболее полезных представлений, которые можно создать, является представление Access. Для его создания перейдите к списку, в котором создается представление, выберите «Представления», затем «Создать представление». Появляется кнопка «Представление Access», позволяющая создавать формы и отчеты на основе списка. При нажатии этой кнопки и выборе базы данных Access появляется диалоговое окно, подобное показанному на рис. 6. Как вы видите, теперь необходимо определить формат (тип формы, сводная диаграмма, сводная таблица или отчет) и после завершения процесса в базе данных Access появиться связанная формат или отчет.
Рис. 6 Создание представления Access
Автономный доступ
В реальном мире расширение рамок действия критически важных приложений означает получение прибыли от инвестиций. Одним из способов расширения сферы действия интегрированного приложения Access/SharePoint является осознание того, что для использования приложения не требуется подключение к SharePoint. Для обеспечения подобной гибкости в Access 2007 появилась возможность автономной работы. Данные кэшируются в локальной копии базы данных, пока она не будет подключена к серверу. Для сохранения базы данных для автономной работы нажмите кнопку «Автономный режим» в группе «Внешние данные|Списки SharePoint» ленты.
При готовности к повторному подключению к SharePoint можно выбрать «Оперативный режим» или «Синхронизация». При выборе любого варианта выполняется передача данных и отображаются конфликты для просмотра; однако при синхронизации данные передаются, но база данных остается в автономном режиме.
Необходимо обратить внимание еще на один элемент в группе «Списки SharePoint», «Отменить изменения», который имеет два параметра. Первый отменяет все изменения, но не обновляет данные SharePoint в Access. Второй параметр отменяет все изменения и обновляет данные SharePoint (связанные списки).
Шаблоны Access
В состав Access 2007 входит несколько готовых шаблонов, позволяющих пользователям быстро создавать бизнес-решения; для использования шаблонов необходимо нажать кнопку «Списки SharePoint» на вкладке «Создать» в группе «Таблицы» (см. рис. 7). При выборе одного из шаблонов автоматически определяется схема для таблицы, связанной с SharePoint. В настоящее время поддерживаются только контакты, задачи, вопросы и мероприятия. Это означает, что при экспорте таблицы с информацией одного из этих типов данные будут считаться соответствующим типом содержимого WSS (например, вопросы на вопросы).
Рис. 7 Выбор типа списка
Также можно создавать пользовательские шаблоны для использования со списками SharePoint или шаблоны узла SharePoint с базами данных Access 2007 с самостоятельным связыванием. Для этого необходимы расширения разработчика Access 2007 и настройка WSSTemplateID таблицы. Это свойство отслеживает таблицы с таким же шаблоном списка SharePoint.
Access и метаданные
Предприятия с устоявшимся использованием приложений Access могут не всегда хотеть или быть готовы к переносу всех этих приложений в SharePoint. В таких случаях может иметь смысл написать код в Access для обновления SharePoint. С помощью этого кода можно совместить приложения SharePoint и Access.
Простым примером является база данных Northwind Trader, в которой сохраняются данные о продуктах, поставщиках и заказах клиентов. Обычно каждый продукт имеет соответствующую предоставленную поставщиком таблицу продукта в формате PDF. В базе данных Access отслеживается вся информация в таблице продукта, такая как географическое местоположение, номер продукта, история исправлений и код подразделения компании. Эти данные должны быть доступными для поставщиков через экстрасеть SharePoint.
Узел SharePoint настроен, а все документы перенесены в связанную библиотеку документов, но поля метаданных пустые (см. рис. 8), поскольку данные отслеживаются в Access (а пользователь, осуществляющий наблюдение за ними, хорошо знаком с программой Access и не стремиться поменять что-либо).
Рис. 8 Открытый в SharePoint документ Northwind с отсутствующими метаданными
К счастью, как показано на рис. 9, можно добавить код Visual Basic® for Applications (VBA) для обновления метаданных через приложение Access. Не требуется переписывать приложение. Сотрудник продолжает использовать удобное средство, расширенное для работы в Интернете, а поставщики имеют доступ к экстрасети на основе полномочий (они видят только те данные, которые они должны видеть); отсутствуют какие-либо проблемы параллельной работы или размера базы данных.
Рис. 9 Обновление метаданных с помощью кода
Встроенная безопасность
Одним из самых существенных преимуществ переноса приложений Access в SharePoint является возможность использования модели безопасности SharePoint со встроенной проверкой подлинности Active Directory®. Это позволяет больше не беспокоиться о реализации безопасности в приложениях Access, поскольку можно создавать схемы и таблицы и добавлять пользователей. Списки SharePoint позволяют использовать фильтрацию по ролям безопасности, обеспечивающую доступность для пользователей только разрешенных для них данных; это является характерной особенностью SharePoint. Кроме того, при наличии компонентов базы данных, которые не требуется переносить в SharePoint, их не нужно перемещать.
SharePoint предоставляет детализированную модель безопасности и модель безопасности на основе ролей. При решении вопроса о перемещении базы данных до выполнения миграции необходимо спроектировать узел и модель безопасности. Это упрощает настройку и проверку полномочий. Кроме того, это уменьшает возможные проблемы переноса и увеличивает производительность базы данных Access.
Целостность данных
Я допустил бы небрежность, если не рассмотрел хотя бы понятие целостности данных. Фактически, SharePoint не поддерживает целостность данных, в отличие от Access. Множество установок на определенном уровне нормализованы. Это необходимо учитывать для обеспечения работы критически важных баз данных Access. К счастью, существует несколько обходных путей, которые можно использовать для улучшения существующей системы.
Как я отметил ранее, если при переносе базы данных в SharePoint перенесены дочерние таблицы, также перемещаются и родительные таблицы. Кроме того, ели SharePoint распознает, что выбранное поле основано на другой таблице, используются поля подстановки. Например, предположим, что выбрано клиент и заказ размещен в базе данных Northwind Traders. Если таблицы перемещены в SharePoint, поле клиента будет подстановочным в списке Order (Заказ).
Как насчет каскадных обновлений/удалений и более сложных операций? Именно здесь следует оценивать SharePoint и соответствующие рабочие процесса в качестве возможного решения. Возвращаясь к базе данных Northwind Traders, предположим, что клиент отменяет существующий заказ, что вызывает несколько последующих действий: возврат прежнего состояния складских запасов, уведомление поставщиков, выполнение необходимой работы с клиентом прикрепленным к заказу сотрудником, отмена доставки и обновление отчетности. Задействовано много перемещаемых частей и многое должно быть согласовано.
С помощью SharePoint Designer можно создать в SharePoint рабочий процесс для выполнения всех указанных выше действий после изменения состояния заказа. 22 стандартных рабочих процесса могут быть скомбинированы в сотни действий. SharePoint Designer – великолепное средство для фирменной настройки вашего узла и создания рабочих процессов.
И, что лучше всего, при использовании SharePoint Designer для создания рабочих процессов необходимы навыки, знакомые пользователям, которые знают, как «программировать» для Access. Это означает, что пользователи, создающие приложения Access, могут перенести и расширить свои знания на область создания рабочего процесса без значительных усилий. При использовании SharePoint Designer для работы с рабочими процессами не требуется написания кода, а развертывание этих рабочих процессов осуществляется очень просто.