Работаем с формами: Microsoft Office InfoPath 2007 и Microsoft Office Forms Server
Улучшения в дизайнерах шаблонов
Интеграция InfoPath с клиентскими приложениями Office 2007
Новая объектная модель InfoPath 2007
Microsoft InfoPath 2003
Поддержка создания и заполнения форм появилась в предыдущей версии Microsoft Office — в изданиях Office Professional и Enterprise Edition — в виде отдельного продукта — Microsoft InfoPath 2003. Данный продукт представлял собой клиентское приложение, позволявшее создавать, редактировать и заполнять формы на основе XML, с возможностями проверки вводимых данных и задания алгоритмов такой проверки, связи с различными источниками данных, включая корпоративные бизнес-приложения, работы в офлайн-режиме (отсоединенном режиме) и реализации бизнес-логики на скриптовых и .NET-языках. В пакете обновления InfoPath 2003 SP1 данная функциональность была расширена.
Несмотря на популярность InfoPath 2003 и множество решений на его основе, в этом продукте имелся ряд проблем. Одной из наиболее часто упоминаемых проблем являлась необходимость установки продукта на все клиентские компьютеры, где предполагается работать с формами InfoPath. Также возникали сложности с офлайн-режимом, наблюдалась недостаточная интеграция с другими продуктами Microsoft и продуктами сторонних фирм. Помимо этого создание расширений и реализация сложной бизнес-логики требовали существенных навыков в разработке и комплексного кодирования в Visual Studio.
Microsoft InfoPath 2007
В новом продукте — InfoPath 2007 — учтены многие недостатки предыдущей версии продукта и произведен ряд изменений и дополнений, которые мы рассмотрим далее. К ним, в частности, относятся:
- улучшения в дизайнерах шаблонов;
- новые сценарии развертывания с использованием InfoPath Forms Services (IFS);
- интеграция InfoPath с клиентскими приложениями Office 2007;
- новая объектная модель InfoPath 2007 на управляемом коде;
- возможность хостинга InfoPath 2007 в разрабатываемых приложениях.
- поддержка Workflow.
Помимо этого отметим следующие возможности, появившиеся в InfoPath 2007: создание документов PDF или XML Paper Specification (XPS) и заполненных форм для их архивирования, защита содержимого форм с помощью механизмов Information Rights Management (IRM).
Разработчикам предлагается поддержка COM-дополнений (COM Add-in), использующих интерфейс IDTExtensibility2 для реализации методов, которые будут реагировать на события, связанные с запуском и завершением работы InfoPath. Новый объект ApplicationEvents поддерживает события на уровне приложения, например WindowActivate и XdocumentOpen, что позволяет создавать в COM-дополнениях обработчики событий на уровне окон и документов.
Улучшения в дизайнерах шаблонов
Дизайнер шаблонов работает в трех режимах: режиме обратной совместимости с InfoPath 2003, режиме поддержки только InfoPath 2007 и режиме поддержки InfoPath 2007 и служб Forms Services. В последнем случае созданные средствами дизайнера форм шаблоны (файлы с расширением *.xsn) могут быть преобразованы в формы, доступные для заполнения в Web-браузере. Для этого достаточно включить опцию Web Browser Enabled в диалоговой панели Design a Form (рис. 1).
Рис. 1. Диалоговая панель Design A Form
Специальный компонент — Design Checker (рис. 2) — помогает автоматически проверить форму на совместимость со всеми версиями клиентов, в режиме поддержки только InfoPath 2007 становятся доступны новые интерфейсные элементы, а повторное использование форм достигается за счет применения элементов шаблонов (Template Parts), средств импорта шаблонов и данных, а также благодаря подключению к библиотекам соединений на уровне SharePoint Services — WSS Data Connection Libraries. Зависимости в формах могут быть просмотрены с помощью специального встроенного средства — Logic Inspector.
Рис. 2. Design Checker
При создании шаблонов форм, поддерживаемых в Web-браузере, бизнес-логика может быть написана на языках C# и Visual Basic .NET — только из этих языков можно вызывать новую объектную модель InfoPath, реализованную на управляемом коде и расположенную в сборке Microsoft.Office.InfoPath.
Для форм, которые предполагается использовать в Web-браузере, поддерживаются следующие интерфейсные элементы:
Нижеперечисленные интерфейсные элементы не поддерживаются:
Развертывание шаблонов InfoPath может проходить по одному из следующих сценариев: как устанавливаемый файл (MSI или JS), копирование в сетевой каталог, пересылка по электронной почте или получение через библиотеку SharePoint. В InfoPath 2007 появился ряд новых сценариев развертывания, которые мы рассмотрим в следующем разделе.
Новые сценарии развертывания
Для поддержки различных сценариев работы с формами в состав Microsoft Office 2007 включен новый серверный продукт — Microsoft Office Forms Server. В его задачу входит обеспечение возможности заполнения форм InfoPath с помощью обычного Web-браузера — от пользователей не требуется устанавливать клиентское приложение InfoPath. Эта функциональность построена на основе платформы Microsoft Windows SharePoint Services 3.0.
Соответственно у пользователей появляется возможность заполнять формы как с помощью клиентского приложения InfoPath, так и без него — непосредственно через Web-браузер. Простой сценарий развертывания применяется для шаблонов, которые не содержат кода. В противном случае требуется двухшаговое развертывание с привлечением администратора, разрешающего выполнение таких шаблонов на сервере.
На рис. 3 показаны различные сценарии использования InfoPath 2007 — как клиентского приложения для заполнения шаблонов форм, как дизайнера форм, как клиента к серверной поддержке форм и т.п.
Рис. 3. Различные сценарии использования InfoPath 2007
Интеграция InfoPath с клиентскими приложениями Office 2007
В InfoPath 2007 расширены возможности интеграции с другими продуктами из семейства Microsoft Office 2007 — в первую очередь с электронными письмами в Outlook (теперь можно заполнять формы непосредственно в Outlook) и с информационной панелью документов (Document Information Panel), которая доступна в ряде продуктов Office 2007, а также реализована возможность ассоциации форм с расширенными механизмами Workflow, что открывает новые интересные возможности для использования форм.
Помимо этого в InfoPath 2007 поддерживается преобразование документов Word и электронных таблиц Excel в шаблоны форм, что позволяет, например, легко превратить существующие документы в шаблоны для дальнейшего применения (рис. 4).
Рис. 4. Средство импорта в InfoPath 2007
Разработчикам будет интересно узнать о том, что средства преобразования шаблонов форм в InfoPath 2007 являются стандартными COM-компонентами с поддержкой интерфейсов автоматизации через интерфейсы IFormTemplateConverter и IFormTemplateConverter2. Реализация интерфейса IFormTemplateConverter обеспечивает совместимость с InfoPath 2003, а интерфейс IFormTemplateConverter2 обеспечивает новую для InfoPath 2007 функциональность. В библиотеке IPDESIGN.DLL, где доступны вышеупомянутые интерфейсы, также имеются интерфейсы IconversionManager и IConversionManager2, которые могут использоваться для создания собственных средств преобразования, расширяющих набор стандартных средств, включенных в комплект поставки InfoPath 2007.
Помимо этого в InfoPath 2007 поддерживается возможность создания собственных средств импорта данных — для этого в библиотеке IPEDITOR.DLL предусмотрены интерфейсы IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl и IPropertyBag.
Новая объектная модель InfoPath 2007
Как уже было отмечено выше, в InfoPath 2007 появилась новая объектная модель (рис. 5), полностью реализованная на управляемом коде, — теперь больше не требуется использовать Primary Interop Assemblies (PIA) для написания кода бизнес-логики, ассоциированной с формами. Создание кода возможно либо в Visual Studio Tools for Applications (VSTA) — компоненте, встроенном в InfoPath 2007, — либо в Visual Studio Tools for Office (VSTO).
Рис. 5. Объектная модель InfoPath 2007
Объектная модель на управляемом коде реализована в виде двух сборок, имеющих одинаковое название — Microsoft.Office.Infopath.dll. Первая сборка реализует полную объектную модель InfoPath, которая содержит типы и методы, поддерживаемые только при работе с формами через InfoPath 2007, а вторая — подмножество объектной модели InfoPath и предназначена для поддержки работы с формами через Web-браузер. Выбор той или иной сборки зависит от включения или отключения опции Web browser enabled в диалоговой панели Design a Form в начале дизайна шаблона формы.
Для администрирования сервера форм предоставляется соответствующая объектная модель, реализованная в сборке Microsoft.Office.InfoPath.Server.dll.
Возможность хостинга InfoPath
Еще одной новинкой в InfoPath 2007 является компонентизация продукта, благодаря которой у разработчиков появляется возможность хостинга InfoPath в Windows- и Web-приложениях.
В случае Windows-приложений разработчикам доступны компонент InfoPath ActiveX Control (объект InfoPathEditor в библиотеке IPEDITOR.DLL) и компонент на управляемом коде FormControl (оболочка на управляемом коде для упомянутого выше ActiveX-компонента, реализованная в пространстве имен Microsoft.Office.InfoPath.FormControl.dll), которые могут использоваться для создания необходимой функциональности в приложениях. К возможным сценариям таких приложений можно отнести:
- приложение, позволяющее выбирать и загружать формы, которые максимально подходят для той или иной задачи;
- приложение, автоматически заполняющее ряд полей формы данными, которые получены из внешних источников;
- приложение, автоматически генерирующее формы из предопределенных фрагментов.
В таблице показаны свойства и методы объекта InfoPathEditor.
Меню и панели инструментов InfoPath не доступны через описанную выше объектную модель — каждая команда в меню редактора InfoPath доступна через интерфейс IOLECommandTarget. Хост-приложение может выполнять эти команды через указанный интерфейс, что позволяет разработчику самостоятельно выбрать уровень доступной функциональности (полностью, частично и т.п.).
Для Web-приложений, которым требуется хостинг InfoPath, предоставляется серверный ASP .NET-компонент XmlFormView, позволяющий пользователям либо заполнять новые формы, либо считывать и редактировать уже заполненные формы. С помощью программного интерфейса можно управлять различными аспектами работы с формами. Например, используя свойство XmlFormView.XmlForm.MainDataSource, можно получить доступ к XML DOM-представлению формы, что позволяет реализовывать различные сценарии, связанные с заполнением формы, с подключением к источникам данных и т.п. Другой пример — это метод XmlFormView.XmlForm.CurrentView.ExecuteAction(...), активизация которого позволяет программным образом выполнять действия, доступные пользователям посредством манипуляции мышью, например добавление рядов к таблицам.
Свойства и методы объекта InfoPathEditor
Свойство/метод |
Описание |
Метод CloseDocument |
Закрывает ранее открытый XML-документ |
Свойство DataConnectionBaseURL |
Возвращает или устанавливает значение URL, использовавшегося для доступа к данным |
Метод FlushDocument |
Сохраняет загруженный документ |
Свойство Host |
Возвращает или устанавливает объект, используемый для доступа к объектной модели приложения, которая выступает хост-приложением |
Свойство HostName |
Возвращает или устанавливает имя хост-приложения |
Метод Load |
Загружает указанный XML-документ из файловой системы |
Метод LoadFromStream |
Загружает указанный XML-документ из потока (поддерживается интерфейс IStream) |
Метод NewFromSolution |
Создает новую форму InfoPath на основе указанного шаблона |
Метод NewFromSolutionWithData |
Создает новую форму InfoPath, используя указанные данные в формате XML и на основе указанного шаблона |
Метод SetInitEventHandler |
Возвращает объект, применяемый для работы с объектной моделью хост-приложения |
Метод SetSubmitToHostEventHandler |
Возвращает объект, используемый для передачи данных хост-приложению |
Свойство XDocument |
Возвращает объект типа XDocument, применяемый для доступа к объектной модели InfoPath. При доступе к этому свойству из сборки Microsoft.Office.InfoPath.FormControl.dll оно имеет имя XmlForm и возвращает объект XmlForm, который предоставляет ту же самую объектную модель, что и объект XDocument для объектной модели COM |
Поддержка Workflow
Еще одна новинка в InfoPath 2007 — это возможность комбинации собственно InfoPath, Windows Workflow Foundation (WF) и Windows SharePoint Services для создания нового класса решений, поддерживающих различные сценарии реализации бизнес-логики. К таким сценариям можно отнести отслеживание клиентских запросов, подтверждение запросов на отпуск, авансовых отчетов и т.п. К базовым наборам активностей, реализованных в Windows Workflow Foundation, в Office 2007 добавлены специфичные для офисных задач библиотеки — Office 2007 Activity Library, которые могут быть расширены стандартными для Workflow средствами (через Visual Studio .NET) и добавлены к библиотекам активностей Office 2007 как стандартные .NET-сборки.
Информация по системе Microsoft Office 2007 доступна на сайте Microsoft по адресу: http://msdn.microsoft.com/office/future/default.aspx.
Дополнительную информацию для разработчиков можно найти на сайте MSDN в разделе, посвященном Office, по адресу: http://msdn.microsoft.com/office/.