Хорошему руководителю важно знать мнение пользователей внутри организации об уровне предоставляемых им услуг. Если в компании уже имеется типовая процедура проведения опросов, описанный ниже подход поможет усовершенствовать ее. А если обратная связь с пользователями отсутствует, никогда не поздно попытаться ее установить.
Я подготовил систему опроса на основе специализированных форм Outlook, опубликованных в библиотеке Exchange Organizational Forms Library, где их может открыть и просмотреть любой желающий. Если публиковать формы в библиотеке не удается, нужно искать альтернативный процесс. Заметим, что такие формы доступны только в Outlook; из Outlook Web Access (OWA) и других программ электронной почты формы не видны.
Цель применения Outlook в качестве механизма распространения — повысить уровень отклика. В течение нескольких лет мне приходилось проводить исследования с помощью различных методов, в том числе прямого обращения к пользователям по телефону и рассылки Web-форм. Выяснилось, что люди отвечают на вопросы охотнее, если участвовать в опросе просто. В данном решении пользователям направляется единственная форма с удобными многовариантными ответами. С тех пор как система была введена в действие, наша компания разослала 2391 опросную форму и получила 1194 отклика; таким образом, активность респондентов оказался чуть менее 50 процентов. При использовании Web-форм мы получали в лучшем случае от 20 до 35 процентов откликов.
В данной статье рассматривается двухэтапный процесс создания системы опросов. На первом этапе строится специализированная опросная форма Outlook, которую можно распространять и собирать вручную. Опросные формы могут исходить от любого лица, инициировавшего их распространение, и возвращаются в единую учетную запись электронной почты по выбору организатора опроса для ручной обработки результатов. На втором этапе выполняется автоматизация распространения и сбора опросных форм. Чтобы завершить процесс автоматизации, необходимы Microsoft Office Outlook 2003 и система отслеживания билетов, доступная через соединение с базой данных. В базе данных сохраняются адрес электронной почты получателя опросной формы и ссылка или описание билета либо темы опроса. В данном примере используется база данных Microsoft SQL Server, но ее легко заменить другой.

Создание формы запуска

Базовая форма, с которой начинается опрос, используется просто для того, чтобы заполнить форму ответа и назначить обратный адрес электронной почты для сборщика ответов. Чтобы построить форму, нужно перейти к Tools, Forms, Design a Form в меню Outlook. В разделе Standard Forms Library следует выбрать Message, а затем щелкнуть на кнопке Open.
Единственное изменение, которое требуется сделать в форме, — добавить фрагмент исходного текста VBScript. Чтобы ввести исходный текст, нужно открыть редактор сценариев, который находится в меню Form, View Code. В Script Editor вводится исходный текст, показанный в листинге 1. Форма запуска опроса предназначена для того, чтобы получатели составили сообщение для организатора опроса, а не отвечали на его сообщение. Поэтому программный код не позволяет открыть исходную форму запуска, а открывает форму ответа для пользователя в ящике «Исходящие». Обязательно следует прочитать комментарии в листинге 1 и изменить сценарий, чтобы указать действительный адрес электронной почты пользователя или учетной записи, которые будут получать заполненные опросные формы.
Дополнив форму запуска опроса исходным текстом сценария, нужно закрыть редактор Script Editor. Затем форма публикуется из меню Tools, Forms, Publish Form As и сохраняется в библиотеке Organizational Forms Library с описательным именем, таким как Launch Survey. Если выбрано другое имя, его необходимо запомнить, чтобы впоследствии ссылаться на него. На предложение сохранить описание формы следует ответить отрицательно. Закройте конструктор форм и вновь откажитесь от предложения сохранять изменения. Сделанные изменения были сохранены при публикации формы.

Создание формы ответа

Форма ответа — это форма, которую пользователи видят на экране и заполняют. Образец формы опроса содержит четыре вопроса с многовариантными ответами и одну область комментариев. Форму можно развернуть, применив собственную компоновку и формулировки. Чтобы подготовить форму ответа, следует вновь перейти к Tools, Forms, Design a Form и выбрать Message form из библиотеки Standard Forms Library.
В конструкторе форм нужно выбрать страницу Edit Compose Page и начать работу с удаления всех элементов страницы (полей To, CC, тела сообщения), за исключением области Subject. Область Subject используется для темы опроса. С помощью Toolbox следует добавить ярлыки для вопросов или любой текст заголовка. Если Toolbox по умолчанию не появляется, доступ к нему можно получить из меню Forms. Щелкните на Control Toolbox, и Toolbox откроется в диалоговом окне.

Экран 1 

Затем следует добавить рядом с каждым вопросом комбинированное окно и подготовить большое текстовое поле для комментариев. На экране 1 показан примерный вид завершенной формы. Обратите внимание, что размер тестового поля Subject изменен, а заголовок заменен на Reference. Можно изменить компоновку и шрифт, добавить или удалить вопросы в соответствии с конкретными потребностями. Любые изменения на данном этапе носят чисто оформительский характер и на функциональности формы не отражаются.
Завершив проектирование формы ответа, необходимо ввести в форму поля, определяемые пользователем. Сначала следует щелкнуть правой кнопкой мыши в комбинированном поле и выбрать пункт Properties. На вкладке Value щелкните на кнопке New и введите описательное имя для вопроса, с которым связано комбинированное поле. В данном примере первый вопрос назван OverallSatisfac- tion. После того как задано имя поля, назначьте возможные значения поля, отделяя их точками с запятой, как показано на экране 2. Процесс следует повторить для остальных комбинированных полей. Я назвал другие комбинированные поля Time- Satisfaction, TechSatisfaction и Con- fidenceSatisfaction, а текстовое поле — UserComments. Не забудьте разрешить многострочный текст в свойствах текстового поля. Полю комментариев нужно присвоить пустое начальное значение, введя пустые двойные кавычки («»).

Экран 2 

Далее следует выбрать пункт Edit Read Page в конструкторе форм, чтобы определить внешний вид возвращенной опросной формы. Удалите текстовую область тела сообщения и откройте Field Chooser (если Field Chooser в Toolbox отсутствует, доступ к нему можно получить из меню Forms). В Field Chooser измените раскрывающиеся поля на User-defined Fields in Inbox. Перетащите мышью все только что созданные поля в форму. Расположение и размеры текстовых полей можно менять как угодно. И не забудьте настроить текстовые поля для ввода многострочного текста. Заголовки можно отредактировать, сделав их более описательными. На экране 3 показан примерный вид опросной формы.

Экран 3 

Чтобы завершить работу над формой, нужно установить флажок справа от Use form only for responses на вкладке Properties конструктора форм. При желании можно использовать поле Version вверху справа, чтобы назначить форме номер версии. Назначив форме номер версии, можно открыть диалоговое окно About This Form в Справке, чтобы определить используемую версию, если потребуется диагностировать неполадки. Для публикации формы следует перейти к Forms, Publish Form As, выбрать Organizational Forms Library и назвать форму Survey. Можно выбрать и другое имя, но оно должно совпадать с именем формы в листинге 1.

Листинг 1 

Опубликованную форму можно закрыть, ответив отрицательно на предложение сохранить изменения или определение формы. Таким образом, мы получили полностью функциональную ручную систему опросов. Чтобы разослать форму из Outlook, следует выбрать File, New, Choose Form. В раскрывающемся списке Look In нужно выбрать Organizational Forms Library, если она еще не выбрана, а затем форму Launch Survey, и указать адрес электронной почты получателя. В строке Subject введите описание предмета опроса.
Ответы будут поступать на адрес электронной почты, указанный в листинге 1 в качестве сборщика опросных форм. Чтобы собирать результаты вручную, необходим доступ к учетной записи электронной почты (если это список рассылки, вы должны быть в списке). Затем требуется открыть каждое сообщение, чтобы просмотреть ответы. Для компилирования ответов нужно преобразовать или копировать и вставить данные в другое место, например в электронную таблицу Microsoft Excel.

Автоматизация процесса

Для автоматизации этих процессов требуется добавить фрагмент кода Visual Basic for Applications (VBA) в клиентскую программу Outlook, из которой будут рассылаться опросные формы. Рекомендуется использовать Outlook 2003, чтобы иметь возможность дополнить код VBA цифровой подписью и запускать макрокоманды, не понижая уровень безопасности. Можно использовать и более ранние версии Outlook, но, чтобы избежать запросов относительно безопасности, придется снизить уровень защиты до Low или Medium, что нежелательно.
Поэтому, прежде чем добавлять код VBA, необходимо открыть Outlook в почтовом профиле учетной записи, из которой будут рассылаться формы, и проверить настройки безопасности. В Tools, Macro, Security должен быть установлен любой уровень безопасности, кроме Very High. По умолчанию обычно устанавливается режим High. Кроме того, необходимо убедиться, что параметр Security Mode в Help, About Microsoft Office Outlook установлен в значение User Controlled. Если значение — Administrator Controlled, следует попросить администратора сделать исключение.
Администратор может отключить административное управление с помощью объекта групповой политики (GPO) или разрешить исключение в папке Outlook Security Settings, чтобы позволить данному пользователю вести рассылку, не получая предупреждений. Исключение — единственный вариант для пользователей Outlook 2002 и Outlook 2000. Убедитесь, что изменения любого из этих параметров не противоречат политикам безопасности организации.

Экран 4 

Затем нужно создать цифровой сертификат для подписывания программного кода VBA, что позволит запускать его, даже если уровень безопасности Outlook установлен в значение High. Следует отыскать мастера Microsoft Self Certification (обычно файл с именем selfcert.exe в корневой папке Office в папке Program Files). При запуске мастер запрашивает имя сертификата. Нужно присвоить сертификату описательное имя, например SurveyCertificate. Затем следует вернуться в Outlook и открыть редактор Outlook Visual Basic, нажав клавиши Alt+F11 или из меню Tools, Macros, Visual Basic Editor. В меню Tools выберите Digital Signature. Щелкните на кнопке Choose и выберите только что созданный сертификат. После того как в следующие разделы будут добавлены какие-нибудь фрагменты программного кода, требуется закрыть Outlook, сохранить проект и вновь открыть Outlook, чтобы активизировать проект. При повторном открытии Outlook появится сообщение, аналогичное показанному на экране 4. Установите флажок, чтобы всегда доверять данному издателю, а затем активизируйте макрокоманду.

Автоматизация рассылки опросных форм

Для управления расписанием опросов и контроля рассылки форм используется Outlook Tasks. В папке Tasks программы Outlook следует выбрать New Task и присвоить имя Send Surveys. Щелкните на кнопке Recurrence, чтобы запускать задачу ежедневно. Полезно также включить напоминания и установить для них подходящее время.

Листинг 2 

Теперь нужно вернуться в редактор Visual Basic Editor и ввести в модуле ThisOutlookSession исходный текст VBA, приведенный в листинге 2. В программном фрагменте содержится две подпрограммы: Application_Remin- der и SendSurvey. Подпрограмма Application_Reminder запускается, когда открывается напоминание. Если напоминание совпадает с задачей по строке Subject, то выдается напоминание о рассылке опросной формы. Если щелкнуть на кнопке Yes, то подпрограмма устанавливает соединение с базой данных, чтобы собирать адреса электронной почты и номера билетов для опросов, а затем рассылает опросные формы. Подпрограмма отмечает задачу как завершенную и создает новую задачу для следующего дня. Если щелкнуть на кнопке No, на экране появится диалоговое окно напоминания, в котором можно отменить или отложить рассылку до следующего раза. Если рассылку отложить, подпрограмма выдаст предупреждение в назначенное время. Если отменить напоминания, подпрограмма будет игнорировать задачу, и в этот день опросные формы рассылаться не будут. Кроме того, придется заново открыть задачу и отменить напоминание или вручную отметить ее как завершенную.

Экран 5 

Обратите внимание, что в метке A листинга 2 необходимо изменить строку подключения к базе данных и запрос для конкретной среды. В данном примере подключение производится к таблице базы данных SQL Server с именем TicketTable (экран 5). Следующие ключевые поля извлекаются из таблицы и передаются в подпрограмму SendSurvey: TicketNumber, Summary и EmailID. В этом примере для полей используется текстовый тип данных; при использовании данных других типов запрос, возможно, придется изменить. Номер билета указывает запись в базе данных, которую предстоит изменить при сборе ответов на опрос. Исходный текст в метке B листинга 2 вводит набор символов («-//-»), которые отделяют номер билета от описания в строке Subject. Если этот набор символов изменяется, его необходимо изменить и в следующем разделе.

Автоматизация сбора ответов

На том же компьютере, с которого рассылаются опросные формы, можно автоматизировать и сбор результатов. Во-первых, важно убедиться, что адрес электронной почты, из которого ведется рассылка, тот же, что и адрес сборщика ответов в листинге 1, и возвращенные опросные формы пересылаются в почтовый ящик «Входящие» на этом компьютере.
Сбор результатов опроса проводится с использованием правила Outlook и сценария. Сначала исходный текст из листинга 3 вводится в редактор VBA. Когда правило вызывает сценарий, программный код устанавливает соединение с базой данных и обновляет соответствующую запись результатами опроса. Программный код также содержит ссылки на определяемые пользователем поля в форме ответа. Поэтому, если использованы имена полей, отличные от имен в данном примере, их надо скорректировать, чтобы добиться соответствия.

Листинг 3 

Обратите внимание, что номер билета, который идентифицирует обновляемую запись базы данных, находится в строке темы. Как отмечалось выше, символы «-//-» отделяют номер билета от описания, поэтому при смене формата строки темы следует убедиться, что используются те же разграничивающие символы или другой метод распознавания номера билета в строке темы.
Теперь можно создать новое правило Outlook с помощью Tools, Rules and Alerts. Начните с пустого правила для проверки сообщений после их получения. В разделе Select Conditions нужно выбрать Uses the form name form, где form name — имя опросной формы, и щелкнуть на ссылке, чтобы открыть поле выбора.

Экран 6 

В Select Actions выберите Run a Script, где Script — имя сценария для сбора результатов опроса. Следует щелкнуть на ссылке и выбрать CompileSurveys, чтобы связать сценарий с правилом. Можно также удалить элемент или переместить его в указанную папку, чтобы упорядочить содержимое ящика «Входящие»; можно также установить флажок Stop Processing more Rules, чтобы избежать конфликта с другими правилами. Последний раздел исключений можно пропустить. Чтобы завершить работу над правилом, укажите описательное имя и примените его. На экране 6 показан образец завершенного правила. Если сбор результатов опросов уже ведется, можно применить правило к ответам, уже поступившим в почтовый ящик «Входящие». Вступившее в силу правило будет применяться к поступающим результатам опроса, обновляя соответствующие записи базы данных на основе ответов пользователей.

Меры безопасности

Проектирование автоматизированного механизма опросов завершено, но в конце необходимо сделать одно замечание о безопасности. Если для подключения к базе данных применяются имя пользователя и пароль, следует учесть, что они могут быть раскрыты. Программный код для распространения и сбора опросных форм находится на одном компьютере в одном профиле. Хотя такая конфигурация неплохо защищена средствами безопасности Windows, избегайте использования учетной записи и пароля администратора, а при возможности задействуйте встроенные средства защиты. При использовании встроенных мер безопасности придется изменить строку подключения к базе данных в программном коде. Если используется база данных SQL Server, следует изменить раздел идентификатора пользователя и пароля, указав Integrated Security=SSPI; если применяется база данных другого типа, нужную строку подключения необходимо найти в документации. Теперь все готово, чтобы собрать мнения пользователей об уровне обслуживания и убедиться, что их нужды удовлетворены.

Джейсон Джой (flajason@gmail.com) — системный инженер в строительной компании на юго-востоке США. Специализируется на обслуживании настольных компьютеров, Web-приложениях и решениях на основе баз данных