Workflow Designer for Exchange. Руководство разработчика по автоматизации документооборота на базе папок Exchange.

Марси Марра, Валери Уиткомб и Даг Йодер, корпорация Майкрософт

Документ создан 17 апреля 2000 г

Ключевые слова: групповое решение, создание; групповое решение, построение; групповое решение, руководство; групповое решение, образец; групповое решение, пример; Exchange Workflow Designer, сценарий использования; Exchange Workflow Designer, описание; Exchange Workflow Designer, создание группового решения; Exchange Workflow Designer, образец процесса; Exchange Workflow Designer, пример; документооборот, создание группового решения, сценарии

Резюме

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

Введение

Ваше подразделение нуждается в приложении, которое будет использоваться для отслеживания отчетов и иных документов  Microsoft® Exchange? Вам хотелось бы автоматизировать выдачу напоминаний и уведомлений, основанных на документах, содержащихся в папке Exchange? Такое групповое решение можно легко создать с помощью средства Microsoft® Workflow Designer for Microsoft® Exchange 2000 Server.

Используя средство Workflow Designer, можно добавить процесс документооборота к любому элементу, содержащемуся в папках Exchange 2000. Процесс документооборота автоматизирует управление содержащимися в папке элементами, проводя их через ряд состояний в зависимости от определенных действия и условий. Процесс документооборота можно усовершенствовать, создав сценарии собственных функций, запускающиеся при выполнении определенных действий. Процесс документооборота может отслеживать любой тип элементов, имеющихся в приложении Microsoft® Outlook®, например, сообщения, формы или задачи, а также любые файлы, например, документы (DOC), электронные таблицы (XLS) или текстовые файлы (TXT).

Интерфейс пользователя для процесса документооборота определяет, каким образом пользователь должен представлять элемент, проходящий через этот процесс. При разработке интерфейса пользователя существует большой выбор возможностей. Можно использовать приложения, написанные на языке Microsoft® Visual Basic®, веб-страницы и любой другой тип клиентского интерфейса, при помощи которого может осуществляться доступ к объектам папки Exchange.

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

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

В настоящем документе освещаются следующие вопросы:

·         подготовка сервера Exchange для группового решения;

·         создание интерфейса пользователя в приложении Outlook;

·         планирование процесса документооборота для отчета о расходах;

·         создание процесса документооборота;

·         активизация процесса документооборота.

Подготовка сервера Exchange для группового решения

Чтобы выполнить приводящиеся в этом руководстве инструкции, требуется иметь доступ к серверу Exchange 2000, средству Workflow Designer for Exchange, а также обладать соответствующими правами на доступ на этом сервере. Дополнительные сведения относительно подготовки сервера Exchange для создания процесса документооборота см. в документации комплекта Exchange SDK, имеющейся на веб-узле Exchange 2000 по адресу http://msdn.microsoft.com/exchange/

Для создания группового решения требуются следующие компоненты.

·         Сервер. Система Microsoft® Windows NT® 4.0 или Microsoft® Windows® 2000 Server с сервером Exchange Server 2000, используемой в качестве серверной части для приложений.

·         Средства разработки. Microsoft Workflow Designer for Exchange в качестве средства для создания процесса документооборота. Это средство может находиться либо на клиентском компьютере, имеющем доступ к серверу, либо на самом сервере.

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

·         Общую папку Microsoft Exchange 2000 Server. Например, можно добавить к общим папкам папку с названием "Отчеты о расходах".

·         Разрешения на доступ для разработки процесса документооборота на сервере Exchange 2000 Server. Создав папку в приложении Outlook, вы автоматически получаете требуемые права владельца на доступ к ней. Дополнительные сведения о настройке разрешений на доступ, требующихся для создания процессов документооборота, см. в документации комплекта Exchange SDK, имеющейся на веб-узле Exchange 2000 по адресу http://msdn.microsoft.com/exchange/

·         Набор элементов, которые требуется отслеживать. С помощью настоящего руководства можно создать форму приложения Outlook, содержащую простые элементы управления, дающие пользователям возможность ввода и отслеживания элементов Exchange. В дополнение к приложению Outlook, в качестве интерфейса для папки и процесса документооборота можно использовать страницы ASP, форму Visual Basic или страницы доступа к данным. Дополнительные сведения по реализации интерфейса пользователя для процесса документооборота в папке см. в документации комплекта Exchange SDK, имеющейся на веб-узле Exchange 2000 по адресу http://msdn.microsoft.com/exchange/

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

Создание интерфейса пользователя в приложении Outlook

Процесс документооборота, созданный с помощью средства Workflow Designer for Exchange, можно использовать для отслеживания любых элементов, доступных в Exchange 2000. В настоящем руководстве описывается  создание группового решения для процесса документооборота на примере упрощенного отчета о расходах, реализованного в виде формы приложения Outlook для помещения сообщения в папку. Решение, созданное в этом примере, предназначено исключительно для демонстрации возможностей объединения формы с процессом документооборота, и в нем отсутствуют многие компоненты, которые должны были бы иметься в реальном отчете о расходах. В этом примере сначала создается интерфейс пользователя, поскольку для процесса документооборота и его сценария требуются значения параметров, получаемые от элементов управления, имеющихся в форме интерфейса пользователя.

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

Как добавить общую папку

1.    Запустите приложение Microsoft Outlook и выведите список папок, если он еще не выведен, выбрав в меню Вид команду Список папок.

2.    Разверните узел Public Folders (Общие папки), а затем All Public Folders (Все общие папки).

3.    Правой кнопкой мыши щелкните All Public Folders и выберите команду Создать папку.

4.    Введите имя новой папки, например, "Отчеты о расходах".

5.    Перейдите к этой новой папке и выберите ее.

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

·         Представление "Вкладка отправки". Это представление используется лицом, представляющим отчет о расходах, для ввода сведений в поля данных о расходах. Оно появляется, когда отчет создан или составлен. Разработчику это представление предъявляется автоматически, когда он разрабатывает форму. Поля формы передают значения сценарию, используемому в данном процессе документооборота.

·         Представление "Вкладка чтения". Это представление используется руководителем для утверждения или отклонения отчета о расходах. Это представление формы содержит помимо полей расходов поле со списком для утверждения или отклонения отчета. На следующем рисунке показано представление "Вкладка чтения" этой формы.

Рис. 1. Интерфейс пользователя, созданный для примера, приводящегося в данном руководстве

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

Создание представления "Вкладка отправки" формы приложения Outlook

1.    В приложении Outlook откройте общую папку, которую вы хотите добавить к процессу документооборота.

2.    В меню Сервис выберите команду Формы, а затем выберите Конструктор форм.

3.    В диалоговом окне Конструктор форм выберите Помещение в папку.

4.    Измените в форме размер области сообщений, чтобы освободить место для полей отчета о расходах.

5.    Правой кнопкой мыши щелкните форму и выберите команду Набор элементов управления.

6.    Поместите на форму следующие подписи как показано на рис. 1.

 

Элемент управления

Свойства

Подпись для расходов на питание

Подпись: Питание

Подпись для расходов на авиабилеты

Подпись: Авиабилеты

Подпись для суммарных расходов

Подпись: Итого

 

7.    Поместите на форму перечисленные ниже элементы управления для ввода и отображения значений расходов. Чтобы изменить соответствующие свойства, правой кнопкой мыши щелкните элемент управления и выберите Свойства. На вкладке Значение нажмите кнопку Создать, чтобы указать определенное пользователем поле, к которому может обращаться сценарий процесса документооборота.

 

Элемент управления

Свойства

Текстовое поле для расходов на питание

Имя: Питание
Тип: денежный

Текстовое поле для расходов на авиабилеты

Имя: Авиабилеты
Тип: денежный

Подпись "Итого" (данное поле используется, потому что пользователь не может изменить это значение)

Имя: Итого
Тип: денежный
Установите флажок Установить начальное значение поля и введите следующую формулу начального значения: VAL([Авиабилеты]) + VAL([Питание])

Флажок "Представлен"

Имя: Представлен
Тип: Да/Нет
Формат: Истина/Ложь
Установите флажок Установить начальное значение поля и введите Нет в качестве начального значения.

 

Рис. 2. Представление "Вкладка отправки" формы приложения Outlook

Создание представления "Вкладка чтения" формы приложения Outlook

1.    В представлении "Вкладка отправки" формы выделите и скопируйте все помещенные на форму элементы управления.

2.    Над вкладками этой формы нажмите кнопку Вкладка чтения.

3.    Измените размер области сообщений, чтобы освободить место для элементов управления, а затем поместите их на форму.

Рис. 3. Представление "Вкладка чтения" формы приложения Outlook

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

 

Свойство

Значение

Имя

Утвержден

Тип

Да/Нет

Формат

Да/Нет

Тип списка

Раскрывающийся список

Возможные значения

Да;Нет

Начальные значения

Нет

 

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

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

Публикация формы и задание ее в качестве принимаемой по умолчанию формы для этой папки

1.    В меню Сервис выберите команду Формы, а затем выберите Опубликовать форму как.

2.    В диалоговом окне Публикация формы введите имя этой формы, а затем нажмите кнопку Опубликовать.

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

3.    Закройте форму и, когда программа предложит сохранить сделанные изменения, выберите вариант Нет (поскольку форма уже опубликована, не требуется сохранять изменения).

4.    В списке Папка правой кнопкой мыши щелкните ту папку, в которую требуется добавить процесс документооборота, и выберите Свойства.

5.    В поле Помещая в эту папку, использовать выберите созданную форму, а затем нажмите кнопку ОК.

Эта форма будет отображаться, когда пользователь решит поместить сообщение в эту папку.

Планирование процесса документооборота для отчета о расходах

Для изучения использования средства Workflow Designer for Exchange вы можете воспользоваться данным руководством, чтобы создать процесс документооборота, включающий несколько состояний, через которые проходит отчет о расходах, а также действия, обеспечивающие прохождение отчета.

Процесс документооборота

Процесс документооборота в настоящем примере основывается на следующем сценарии. Работник создает форму отчета о расходах в папке "Отчет о расходах", находящейся в общей папке. Когда отчет создан, ему присваивается состояние Draft (Черновик). Для перевода отчета в состояние Submit to Manager (Представлен руководителю), работник должен установить флажок "Представлен" и сохранить отчет. Пока флажок "Представлен" не установлен и отчет не сохранен, пользователь может неоднократно изменять и сохранять отчет. После установки флажка "Представлен" отчет автоматически переходит в состояние Submit to Manager. Когда отчет перешел в состояние Submit to Manager, руководитель может утвердить или отклонить этот отчет.

Если руководитель выбирает в списке "Утвержден" вариант "Да", отчет переходит в состояние Approved (Утвержден). Если менеджер выбирает вариант "Нет", отчет возвращается в состояние Draft.

Элементы, находящиеся в состоянии  Approved или в состоянии Draft, могут быть удалены. Элементы, находящиеся в состоянии Submit to Manager, нельзя удалить, т. к. для них в этом состоянии не указано действие Delete (Удаление).

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

Пример документооборота отчета о расходах включает следующие состояния:

·         Draft (Черновик)

·         Submit to Manager (Представлен руководителю)

·         Approved (Утвержден)

Для перевода элемента из одного состояния в другое используются те или иные действия. Для каждого состояния имеется, по меньшей мере, два действия. Одно действие приводит элемент в данное состояние, и одно действие выводит элемент из данного состояния. Для каждого состояния имеется связанное с ним выражение условия, определяющее, в какое состояние переходит элемент.

Состояния могут иметь любое число действий. Например, состояние Submit to Manager (Представлен руководителю), имеет три действия перехода: Manager Approved (Утвержден руководителем), Manager Rejected (Отклонен руководителем) и Expiry (Истек срок). Действия перехода запускаются путем внесения изменений в находящийся в папке элемент. После запуска вычисляется условие для действия. Если значением условия является "Истина", тогда выполняется сценарий, связанный с этим действием. В настоящем примере в процессе документооборота для отчета о расходах имеются следующие действия.

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

·         Представление руководителю. Условие для этого действия вычисляется после того, как отчет в папке прочитан и сохранен. Значение элемента управления – флажка "Представлен" – должно быть "Истина".

·         Утверждение руководителем. Условие для этого действия вычисляется после того, как отчет, находящийся в состоянии Submit to Manager, прочитан. В настоящем примере значением элемента управления – поля со списком "Утвержден" должно быть "Да".

·         Отклонение руководителем. Условие для этого действия вычисляется после того, как отчет, находящийся в состоянии Submit to Manager, прочитан. В настоящем примере значением элемента управления – поля со списком "Утвержден" должно быть "Нет".

·         Истечение срока. Это действие происходит после того, как отчет находился в состоянии Submit to Manager в течение определенного пользователем периода времени, и за это время не был открыт.

·         Удаление (Delete1 и Delete2). Эти два типа удаления делают возможным удаление отчета, находящегося либо в состоянии Draft, либо в состоянии Approved. Элементы, находящиеся в состоянии Submit to Manager (Представлен руководителю) удалить нельзя.

Рис. 4. Процесс документооборота для примера отчета о расходах

Сценарии процесса документооборота

В сценарии, связанном с каждым действием, можно вызывать определенные пользователем функции, которые вы указали на вкладке Shared Script (Общий сценарий) средства Workflow Designer. В настоящем примере используются описанные ниже специальные функции, а также набор стандартных функций, которые вызываются из специальных функций. Сценарий, использованный для каждой функции, описывается в разделе "Создание процедур общего сценария" далее в настоящем документе.

Специальные функции

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

·         ApproveExpenseReport. Вызывается из действия Manager Approved (Утвержден руководителем), когда руководитель либо утверждает, либо отклоняет отчет о расходах. Проверяет значение состояния "утвержден/отклонен" в форме приложения Outlook и отправляет электронной почтой уведомление лицу, представившему отчет. Если отчет отклонен, она также сбрасывает значение свойства "Представлен" и возвращает его в состояние Draft.

·         ExpireExpenseReport. Вызывается из действия Expiry (Истек срок), если отчет о расходах остается в состоянии Submit to Manager в течение семи дней. Отправляет утверждающему должностному лицу сообщение, напоминающее, что отчет ожидает утверждения.

Стандартные функции

·         AddFieldToCurrentMsg. Вызывается из действий Draft and Manager Submission (Подготовка черновика и представление). Динамически добавляет к элементу новое свойство. Используется для добавления к отчету свойства Approval Authority (Утверждающее должностное лицо), возвращаемого сценарием GetUserManager, и свойства SubmittedBy (Кем представлен), созданного сценарием WorkflowSessionSende.

·         ClearPermissions. Сбрасывает все ранее предоставленные разрешения на доступ. Используется для изменения разрешений доступ на "только чтение" для лица, представившего отчет, после представления отчета на утверждение.

·         GetPathAndSubject. Возвращает путь к общей папке и предмет текущего отчета. Это позволяет функциям SubmitExpenseReport и ApproveExpenseReport добавлять ссылку на конкретный отчет о расходах к основному тексту сообщения.

·         GetUserManager. Возвращает определенные приложением данные. В настоящем примере она возвращает псевдоним электронной почты руководителя этого пользователя.

·         SendMessage. Посылает сообщение электронной почты в ответ на действия процесса документооборота.

·         SetCurrentMessageField. Задает значение имеющегося свойства элемента. Используется для сброса значения свойства "Представлен", когда существующий отчет отклоняется и переводится из состояние Approved в состояние Draft.

·         SetPermissions. Предоставление разрешений делает возможным внесение изменений в отчет только утверждающим должностным лицом; для всех остальных задаются разрешения на доступ "только чтение".

Рис. 5. Сценарии, связанные с действиями в примере отчета о расходах

Создание процесса документооборота

Чтобы создать процесс документооборота, следует открыть средство Workflow Designer и указать состояния и необходимые действия. Создание сценария процесса документооборота включает выполнение следующих основных задач.

·         Добавление процесса документооборота к общей папке.

·         Добавление состояний, через которые проходит элемент.

·         Добавление действий, определяющих обработку элемента, и указание условий для специальной обработки.

·         Добавление к действиям сценариев для автоматизации обработки элементов, отправки уведомлений или вызова иных требующихся функций.

·         Создание сценария и функций с использованием вкладки Shared Script (Общий сценарий).

·         Активизация процесса документооборота в данной папке.

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

Добавление процесса документооборота к папке

После завершения планирования документооборота можно создать процесс документооборота для общей папки. Средство Workflow Designer работает непосредственно с папкой, поэтом перед открытием этого приложения требуется создать общую папку. При создании нового процесса документооборота средство Workflow Designer автоматически создает простой процесс документооборота с одним состоянием и действиями Create (Создать) и Delete (Удалить) между начальным и конечным блоками.

Как добавить процесс документооборота к общей папке

1.    В меню Пуск укажите Программы, затем укажите Workflow Designer for Exchange и выберите Exchange Workflow Designer.

2.    В диалоговом окне Open Folder (Открыть папку) введите Exchange Server.

3.    Введите Public/ в поле Folder (Папка), нажмите клавишу Browse (Обзор), чтобы выбрать ранее созданную папку, затем нажмите кнопку ОК, чтобы запустить средство Workflow Designer.

4.    Из меню File (Файл) выберите команду New Workflow Process (Создать процесс документооборота).

5.    В диалоговом окне New Workflow Process (Создание процесса документооборота) введите имя процесса документооборота, а затем нажмите кнопку ОК.

В данном примере отчета о расходах введите его имя – "Отчет о расходах".

6.    В диалоговом окне Rename State (Переименование состояния) введите подходящее имя начального состояния, а затем нажмите кнопку ОК.

В данном примере отчета о расходах введите имя состояния Draft (Черновик).

Можно сделать диаграмму более легкой для чтения, разместив состояния и действия более удобным образом.

Как расположить диаграмму

1.    В меню Diagram (Диаграмма) выберите команду Arrange Diagram (Разместить диаграмму), а затем выберите Vertical (По вертикали).

2.    В меню Diagram (Диаграмма) выберите команду Zoom (Масштаб), а затем выберите Zoom to fit (По размеру данных).

Добавление состояний на диаграмму процесса документооборота

На диаграмму процесса документооборота можно поместить состояния, представляющие каждую стадию, через которую элемент может проходить во время обработки. В настоящем примере на диаграмме процесса документооборота для отчета о расходах используются следующие состояния: Draft (Черновик), Submit to Manager (Представлен руководителю) и Approved (Утвержден).

Как добавить состояние процесса документооборота на диаграмму

1.    Правой кнопкой мыши щелкните фон диаграммы и выберите из контекстного меню команду Insert State (Вставить состояние).

2.    В диалоговом окне New State (Новое состояние) укажите имя состояния и нажмите кнопку ОК.

В данном примере отчета о расходах вставьте следующие состояния: Submit to Manager и Approved.

3.    Правой кнопкой мыши щелкните действие Delete (Удаление) (это действие представлено линей между состоянием Draft и конечной точкой) и выберите Remove Action (Удалить действие).

Добавление действий к состояниям

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

Примечание. Дополнительные сведения о различных типах действий см. в разделе Workflow Action Events ("События действий документооборота") в электронной документации по средству Workflow Designer for Exchange.

Как в средстве Workflow Designer можно добавить действие к состоянию

1.    Правой кнопкой мыши щелкните требуемое состояние и из контекстного меню выберите команду Insert Action (Вставить действие).

2.    Укажите имя для этого действия (подробности относительно действий, использованных в данном примере, см. в описании следующей процедуры) в поле Action Name (Имя действия) и выберите Action Type (Тип действия).

3.    В поле Next state (Следующее состояние) укажите состояние, которое последует за действием перехода, а затем нажмите кнопку ОК, чтобы добавить это действие в список действий.

4.    В поле Condition Expression (Выражение условия) введите требуемое выражение. Чтобы произошел переход и началось выполнение сценария, значение этого выражения должно быть истинным.

Примечание. По умолчанию это выражение принимает значение "Истина". Это означает, что при каждом чтении отчета в этой папке выражение условия перехода принимает значение "Истина", и отчет переходит в следующее состояние.

5.    В поле Action Script Procedure (Процедура сценария действия) введите вызов процедуры для выполнения сценария в том случае, когда значением выражения условия является "Истина".

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

Как создать действия в примере процесса документооборота для отчета о расходах

1.    К состоянию Submit to Manager (Представлен руководителю) добавьте следующие действия с определенными свойствами.

·         Имя действия:  Submit to Manager (Представление руководителю)

 

Свойства

Значение

Тип действия

Create (Создание)

Выражение условия

CBOOL(WorkflowSession.Fields("Представлен").Value)

Процедура сценария действия

SubmitExpenseReport

 

·         Имя действия:  Enter (Ввод)

 

Свойство

Значение

Тип действия

Enter (Ввод)

Выражение условия

True (Истина)

 

·         Имя действия:  Manager Rejected (Отклонение руководителем)

 

Свойство

Значение

Тип действия

Change (Изменение)

Следующее состояние

Draft

Выражение условия

NOT CBOOL(WorkflowSession.Fields("Утвержден").Value)

Процедура сценария действия

ApproveExpenseReport(False)

 

·         Имя действия:  Manager Approved (Утверждение руководителем)

 

Свойство

Значение

Тип действия

Change (Изменение)

Следующее состояние

Approved

Выражение условия

CBOOL(WorkflowSession.Fields("Утвержден").Value)

Процедура сценария действия

ApproveExpenseReport(True)

·         Имя действия:  Expiry (Истечение срока)

 

Свойство

Значение

Тип действия

Expiry

Выражение условия

True (Истина)

Процедура сценария действия

ExpireExpenseReport

 

2.    К состоянию Draft (Черновик) добавьте следующие действия с определенными свойствами.

·         Имя действия:  Draft (Черновик)

 

Свойства

Значение

Тип действия

Create (Создание)

Выражение условия

True (Истина)

Процедура сценария действия

AddFieldToCurrentMsg "SubmittedBy",WorkflowSession.Sender

AddFieldToCurrentMsg "ApprovalAuthority", ""

 

·         Имя действия:  Manager Submission (Представление руководителю)

 

Свойства

Значение

Тип действия

Change (Изменение)

Следующее состояние

Submit to Manager

Выражение условия

CBOOL(WorkflowSession.Fields("Представлен").Value)

Процедура сценария действия

SubmitExpenseReport

 

·         Имя действия:  Draft

 

Свойства

Значение

Тип действия

Change (Изменение)

Следующее состояние

Draft

Выражение условия

True (Истина)

 

·         Имя действия:  Delete (Удаление)

 

Свойства

Значение

Тип действия

Delete

Выражение условия

True (Истина)

 

3.    К состоянию Approved (Утвержден) добавьте следующие действия с определенными свойствами.

·         Имя действия:  Delete (Удаление)

 

Свойства

Значение

Тип действия

Delete

Выражение условия

True (Истина)

 

Создание процедур общего сценария

Для создания, изменения и просмотра процедур общего сценария используется вкладка Shared Script (Общий сценарий) средства Workflow Designer. Элементы на вкладке Shared Script можно рассматривать как общую библиотеку подпрограмм сценария. Когда вы планируете использовать в процессе документооборота процедуру или функцию, вы один раз создаете ее на вкладке Shared Script, а затем вызываете из поля Condition Expression (Выражение условия) и из поля Action Script Procedure (Процедура сценария действия).

Condition Expression является первым сценарием, который обрабатывается обработчиком процесса документооборота в ответ на соответствующее действие этого процесса. По умолчанию выражение условия возвращает значение True (Истина). Это значение можно изменить, введя "False" (Ложь) в поле сценария Condition Expression, создав выражение или вызвав функцию из вкладки Shared Script, чтобы выполнить более сложную обработку.

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

Примечание. В определенных пользователем полях формы приложения Outlook учитывается регистр символов. Поэтому будьте внимательны при использовании регистра символов в сценариях.

Как создать процедуру или функцию на вкладке Shared Script

1.    В списке Process List (Список процессов) выберите процесс, усовершенствуемый с помощью сценария.

2.    На панели Workflow Process (Процесс документооборота) выберите вкладку Shared Script (Общий сценарий).

3.    Создайте процедуру, включающую теги Sub и End Sub, или функцию, включающую теги Function и End Function.

4.    Добавьте вызов процедуры и запись аудита в поле Action Script Procedure (Процедура сценария действия) на вкладке Design (Разработка) панели Workflow Process (Процесс документооборота).

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

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

Процедура AddFieldToCurrentMsg

Чтобы использовать этот код, создайте сценарий AddFieldToCurrentMsg (Добавление поля к текущему сообщению) на вкладке Shared Script (Общий сценарий) панели Workflow Process (Процесс документооборота). Этот сценарий вызывается из поля Action Script Procedure (Процедура сценария действия) во время действия Draft (Черновик) и Manager Submission (Представление руководителю) и добавляет свойства SubmittedBy (Кем_представлен) и ApprovalAuthority (Утверждающее должностное лицо) к сценарию SubmitExpenseReport.

Sub AddFieldToCurrentMsg (strName, Value)

   Dim FieldType

   FieldType = 8 ' BSTR

   

   WorkflowSession.Fields.Append CStr(strName), _

      FieldType, , , CStr(Value)

   WorkflowSession.Fields.Update

End Sub

Процедура ApproveExpenseReport

Чтобы использовать этот код, создайте сценарий ApproveExpenseReport (Утверждение отчета о расходах) на вкладке Shared Script панели Workflow Process. Этот сценарий проверяет, является ли истинным значением поля "Утвержден" формы приложения Outlook. Если значением этого поля является True (Истина), тогда отправляется сообщение электронной почты, уведомляющее лицо, представившее эту форму, об утверждении данного отчета о расходах. Если значением этого поля не является истинным, лицо, представившее эту форму, получает сообщение электронной почты об отклонении данного отчета о расходах, отчет о расходах возвращается в состояние Draft, а флажок "Представлен" снимается.

Процедура ApproveExpenseReport зависит от сценариев GetUserManager, GetPathAndSubject, SendMessage и SetCurrentMessageField. Если значением этого параметра является True, отчет о расходах утверждается, и в сообщении электронной почты указывается, что отчет утвержден. Если значением этого параметра является False (Ложь), в сообщении электронной почты указывается, что отчет не утвержден.

Sub ApproveExpenseReport(bApproved)

 

   Dim strSMTPAddress

   Dim strBody

   Dim strSubject

   Dim strMessageSubject

   Dim strApproved

   

   strSMTPAddress = WorkflowSession.Fields("ApprovalAuthority").Value

   strMessageSubject = WorkflowSession_

      .Fields("urn:schemas:mailheader:subject").Value

   If bApproved = True Then

      strApproved = "УТВЕРЖДЕН"

Else

      strApproved = "ОТКЛОНЕН"

   End If

 

   strSubject = strApproved & " – Отчет о расходах " & strMessageSubject

 

   strSubject = "Ваш отчет о расходах был " _

      & strApproved & " (" & strMessageSubject & ")"

   strBody = "Ваш отчет о расходах был " & strApproved _

      & " Фамилия ответственного руководителя " & WorkflowSession.Fields("ApprovalAuthority").Value _

      & vbCRLF & vbCRLF

 

   strBody = strBody & "Просмотрите отчет о расходах, щелкнув _

      здесь. <outlook://public folders/All Public Folders/Отчеты о расходах /~" _

      & strMessageSubject & ">" & vbCRLF & vbCRLF

   strBody = strBody & "------------------------------------" & vbCRLF

   strBody = strBody & "Начальное состояние отчета: " _

      & WorkflowSession.StateFrom & vbCRLF

   strBody = strBody & "Конечное состояние отчета: " _

      & WorkflowSession.StateTo

 

   SendMessage strSMTPAddress, strSubject, strBody

 

   ' Снятие флажка "Представлен" в случае отклонения

   If bApproved = False Then

      SetCurrentMessageField "Представлен", False

   End If

 

End Sub

Процедура ClearPermissions

Чтобы использовать этот код, создайте сценарий ClearPermissions (Сброс разрешений) на вкладке Shared Script панели Workflow Process. Этот сценарий вызывается, когда выполняется сценарий SubmitExpenseReport. После представления отчета разрешение на доступ для лица, представившего форму, изменяются на "только чтение".

Sub ClearPermissions()

   WorkflowSession.ItemAuthors.Clear

End Sub

Процедура ExpireExpenseReport

Чтобы использовать этот код, создайте сценарий ExpireExpenseReport (Истечение срока действия отчета о расходах) на вкладке Shared Script панели Workflow Process. Этот сценарий отправляет утверждающему должностному лицу сообщение электронной почты, указывающее, что отчет о расходах был представлен, однако срок его действия истек. Сам отчет возвращается в состояние Draft.

Сценарий ExpireExpenseReport зависит от сценариев GetUserManager и SendMessage.

Sub ExpireExpenseReport()

 

   Dim strSubject

   Dim strBody

 

   strSubject = "Требуемое действие: запрос утверждения отчета о расходах"

 

   strOutlookURL = GetPathAndSubject

   strBody = "Имеется отчет о расходах, ожидающий Вашего утверждения." _

      & vbCRLF & vbCRLF

   strBody = "Просмотрите отчет о расходах, щелкнув здесь. _

      <outlook://public folders/All public Folders/" _

      & strOutlookURL & ">" & vbCRLF & vbCRLF

   strBody = "----------------------------------------" & vbCRLF

   strBody = "Представлен: " & CTXT(Date) & "  " & CTXT(Time) & vbCRLF

   strBody = "Состояние отчета о расходах: " & WorkflowSession.StateTo

 

   strSMTPAddress = WorkflowSession.Fields("ApprovalAuthority").Value

 

   SendMessage strSMTPAddress, strSubject, strBody

 

End Sub

Функция GetPathAndSubject

Чтобы использовать этот код, создайте сценарий GetPathAndSubject (Указать путь и тему) на вкладке Shared Script панели Workflow Process. Этот сценарий позволяет функциям SubmitExpenseReport и ApproveExpenseReport добавлять ссылку на отчет о расходах в основной текст сообщения электронной почты.

Function GetPathAndSubject()

   Dim iPos

   Dim iPathLength

   Dim strPath

   Dim strSubject

 

   strPath = WorkflowSession.Fields("DAV:parentname")

   strSubject = WorkflowSession_

      .Fields("http://schemas.microsoft.com/mapi/proptag/0x0037001F")_

      .Value

 

   iPathLength = len(strPath)

 

   iPos = Instr(strPath, "backofficestorage") + 18

   iPos = Instr(iPos,strPath, "/") + 1

   iPos = Instr(iPos,strPath, "/")

 

   iPathLength = iPathLength - iPos

   GetPathAndSubject = Right(strPath, iPathLength) & "/~" & strSubject

   

End Function

Функция GetUserManager

Чтобы использовать этот код, создайте сценарий GetUserManager (Указать сведения о руководителе) на вкладке Shared Script панели Workflow Process. Этот сценарий вызывается в сценариях ApproveExpenseReport, ExpireExpenseReport и SubmitExpenseReport.

Function GetUserManager(strUserAddress)

   Dim mgrDN

 

   With WorkflowSession

      mgrDN = .GetUserProperty(strUserAddress, "руководитель",0)

      GetUserManager = .GetUserProperty(mgrDN, "почта", 1)

   End With

 

End Function

Процедура SendMessage

Чтобы использовать этот код, создайте сценарий SendMessage (Отправить сообщение) на вкладке Shared Script панели Workflow Process. Этот сценарий вызывается в сценариях ApproveExpenseReport, ExpireExpenseReport и SubmitExpenseReport для отправки сообщения электронной почты. Используемые параметры указывают, кому должно быть отправлено сообщение, а также тему и основной текст сообщения электронной почты.

Sub SendMessage (strTo, strSubject, strBody)

 

   Set oMsg = CreateObject("CDO.Message")

 

   oMsg.To = strTo

   oMsg.From = WorkflowSession.Sender

   oMsg.Subject = strSubject

   oMsg.TextBody = strBody

   oMsg.Send

 

   Set oMsg = Nothing

 

End Sub

Процедура SetCurrentMessageField

Чтобы использовать этот код, создайте сценарий SetCurrentMessageField (Задать поле текущего сообщения) на вкладке Shared Script панели Workflow Process. Этот сценарий вызывается в сценариях ApproveExpenseReport и SubmitExpenseReport, чтобы сбросить значение свойства "Представлен", когда отчет переходит из состояние Approved (Утвержден) в состояние Rejected (Отклонен). Параметры указывают имя задаваемого свойства и то значение, которое требуется задать.

Sub SetCurrentMessageField(strName, Value)

   WorkflowSession.Fields(CStr(strName)).Value = Value

   WorkflowSession.Fields.Update

End Sub

Процедура SetPermissions

Чтобы использовать этот код, создайте сценарий SetPermissions (Предоставить разрешения) на вкладке Shared Script панели Workflow Process. Этот сценарий вызывается в сценарии SubmitExpenseReport; кроме того, перед предоставлением разрешений на доступ требуется вызвать сценарий ClearPermissions. Параметр указывает, какой пользователь (используется SMTP-адрес электронной почты этого пользователя) должен иметь права доступа автора к этому элементу.

Sub SetPermissions (strSMTPAddress)

   WorkflowSession.ItemAuthors.Add strSMTPAddress, 0

End Sub

Процедура SubmitExpenseReport

Чтобы использовать этот код, создайте сценарий SubmitExpenseReport (Представить отчет о расходах) на вкладке Shared Script панели Workflow Process. Этот сценарий отправляет утверждающему должностному лицу сообщение электронной почты, содержащее ссылку на конкретный отчет о расходах, ожидающий утверждения. Утверждающее должностное лицо определяется, исходя из итоговой суммы расходов. Если итоговая сумма меньше $100, утверждающим должностным лицом является непосредственный руководитель работника, представившего данную форму. Если итоговая сумма превышает $100, утверждающим должностным лицом является начальник этого руководителя. В обоих случаях вызывается сценарий GetUserManager, который возвращает псевдоним электронной почты соответствующего должностного лица.

Сценарий SubmitExpenseReport зависит от сценариев AddFieldToCurrentMsg, GetUserManager, GetPathAndSubject, SendMessage, ClearPermissions, SetPermissions и SetCurrentMessageField.

Чтобы руководитель мог утвердить или отклонить отчет о расходах, требуются сценарии ClearPermissions и SetPermissions.

Sub SubmitExpenseReport()

   Dim strSMTPAddress

   Dim strSubject

   Dim strBody

   Dim strOutlookURL

 

   strSubject = "Требуемое действие: запрос утверждения отчета о расходах"

 

   strOutlookURL = GetPathAndSubject

   strBody = "Имеется отчет о расходах, ожидающий Вашего утверждения." _

      & vbCRLF & vbCRLF

   strBody = strBody & "Просмотрите отчет о расходах, щелкнув здесь. _

      <outlook://public folders/All public Folders/" _

      & strOutlookURL & ">" & vbCRLF & vbCRLF

   strBody = strBody & "----------------------------------------" _

      & vbCRLF

   strBody = strBody & "Представлен: " & CStr(Date) & "  " _

      & CStr(Time) & vbCRLF

   strBody = strBody & "Состояние отчета о расходах: " _

      & WorkflowSession.StateTo

 

   strSMTPAddress = GetUserManager(WorkflowSession.Sender)

 

   If WorkflowSession.Fields("Итого").Value > 100 Then

      strSMTPAddress = GetUserManager(strSMTPAddress)

   End If

 

   SendMessage strSMTPAddress, strSubject, strBody

 

   SetCurrentMessageField " ApprovalAuthority", strSMTPAddress

   ClearPermissions

   SetPermissions(strSMTPAddress)

 

End Sub

Активизация процесса документооборота

После завершения создания процесса документооборота, его можно реализовать для папки.

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

Как активизировать процесс документооборота для папки

1.    На вкладке General (Общие) процесса документооборота отчета о расходах выберите Default Workflow Process for this Folder (Принимаемый по умолчанию процесс документооборота для этой папки) и Run as Privileged? (Выполнить как привилегированный?).

2.    Выберите папку, которую требуется активизировать (первый элемент в списке Process List (Список процесса)).

3.    На вкладке General выберите Activated (Активизирован).

4.    В меню File (Файл) выберите команду Save All Changes (Сохранить все изменения).

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

Как включить отладку сценария и активизировать запись сообщений об успешности выполнения операций

1.    Работая в Designer for Exchange дважды щелкните требуемую папку.

2.    На вкладке General выберите Enable Script Debugging for this Folder (Включить отладку сценария для этой папки) и Enable Success Entries for this Folder (Включить запись сообщений об успешности выполнения операций  для этой папки).

3.    В меню File выберите команду Save All Changes.

Использование процесса документооборота

После завершения создания формы приложения Outlook и процесса документооборота можно проверить работоспособность данного решения.

1.    В приложении Microsoft Outlook выберите папку Отчет о расходах.

2.    Нажмите кнопку Создать, чтобы вывести форму отчета о расходах.

3.    Введите имя отчета о расходах в поле Тема.

4.    Введите значения в поля расходов "Питание" и "Авиабилеты". Поле "Итого" автоматически вычислит итоговую сумму.

5.    Чтобы немедленно представить отчет на утверждение руководителю, установите флажок Представлен.

Вашему руководителю будет отправлено сообщение электронной почты, указывающее, что имеется ожидающий утверждения отчет о расходах.

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

6.    Измените только что созданный отчет, дважды щелкнув его. В форме отчета о расходе теперь будет присутствовать поле со списком Утвердить?.

7.    Выберите Да из списка Утвердить?, а затем выберите команду Сохранить из меню Файл.

Вам будет отправлено сообщение электронной почты, информирующее вас об утверждении вашего отчета о расходах.

Дополнительные сведения

Сведения о разработке групповых решений и управления ими см. в документе Workflow Designer for Exchange 2000 Server Developer's Guide ("Руководство разработчика Workflow Designer for Exchange 2000 Server") в интерактивной документации и на веб-узле Microsoft Office Developer по адресу http://msdn.microsoft.com/officedev/

Новейшие сведения о средстве Microsoft Workflow Designer for Exchange 2000 Server и комплекте Exchange SDK см. на веб-узле Exchange 2000 по адресу http://msdn.microsoft.com/exchange/

Для доступа к сведениям в базе знаний обратитесь к разделу Product Support (Поддержка продукта) веб-узла Microsoft Office Developer.

Для получения дополнительных сведений по средству Microsoft Workflow Designer for Exchange 2000 Server посетите веб-узел по адресу http://msdn.microsoft.com/ и произведите поиск по ключевому слову "workflow" (документооборот) или же ознакомьтесь с материалами форума Microsoft Office Developer Web Forum на веб-узле http://search.microsoft.com/us/dev/apps/office/

Дополнительные сведения относительно использования сценариев можно найти в Интернете по адресу http://msdn.microsoft.com/scripting/. Этот веб-узел корпорации Майкрософт, посвященный сценариям, содержит вопросы и ответы, примеры кодов, документацию по языкам программирования и бесплатные загружаемые материалы для разработчиков, использующих язык программирования сценариев Microsoft® Visual Basic Scripting language (VBScript).