Алексей Федоров
Microsoft InfoPath 2003
Microsoft InfoPath 2007
Улучшения
в дизайнерах шаблонов
Новые
сценарии развертывания
Интеграция
InfoPath с клиентскими приложениями Office 2007
Новая объектная модель InfoPath
2007
Возможность
хостинга InfoPath
Поддержка Workflow
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/.