пятница, 13 ноября 2009 г.

Пример автоматизации бизнес-процесса "Учёт отпусков" с помощью SharePoint

В данной статье вы узнаете как получить от пользователя информацию в свой бизнес-процесс или другими словами как обеспечить ввод данных пользователем в workflow.
Для примера возьмем да и автоматизируем простенький бизнес-процесс согласования отпуска (учета отпусков).

Для этого на выбранном узле сначала создаем настраиваемый список, называем его "Отпуска". Дальше заходим в параметры списка и начинаем добавлять столбцы:
1. Дата с (тип: Дата и время; Требовать, чтобы этот столбец обязательно содержал данные: Да; Значение по умолчанию: Сегодняшняя дата;) - здесь будет храниться дата с которой человек хочет пойти в отпуск;
2. Дата по (параметры те-же что и "Дата с") - дата окончания отпуска;
3. Непосредственный руководитель (тип: пользователь или группа; Требовать, чтобы этот столбец обязательно содержал данные: Да;Разрешить выбор: Только пользователи) - ФИО непосредственного руководителя, с ним будем согласовывать отпуск в первую очередь.
4. Поле "Название" переименовываем в поле "Причина", в свойствах поля вставляем описание "Здесь вы указываете причину отпуска, "ежегодный оплачиваемый", "по уходу за ребенком", "отпуск за свой счет"" - это описание будет отображаться пользователю при создании нового элемента списка.
5. Статус - текстовое поле, сюда будем выводить статусы заявления;
В конечном результате у вас должно получиться так:



С первым этапом покончено. Мы создали список "Отпуска" куда люди, которые хотят пойти в отпуск будут подавать свои электронные заявления на отпуск. Дальше приступим непосредственно к созданию бизнес-процесса "Учет отпусков". Для этого в SharePoint Designer через меню File - Open Site, сначала открываем тот сайт на котором создали список, потом создаем новый бизнес-процесс через меню File-New-Workflow, называем его и привязываем к нашему списку. Все должно выглядеть так:



Первый шаг в нашем бизнес-процессе будет называться "Согласование отпуска непосредственным руководителем". Здесь нам надо будет получить информацию о том согласен руководитель с отпуском или нет. Для этого выбираем в меню Actions - "Получить данные от пользователя". Дальше начинаем заполнять параметры, какие именно данные от пользователя мы хотим получить :). Нажимаем на поле <данные> и вводим нашу информацию в открывшийся wizard.


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


Всё, жмем Finish и в следующем окне тоже. Дальше определим от кого будем получать данные, для этого нажимаем на <пользователь> и в открывшемся окне подставляем в пользователя, того пользователя, которого пользователь указал в качестве своего непосредственного руководителя:

Кроме всего этого Sharepoint Designer автоматически создал переменную "сбор" в которую будет записан ID элемента в списке Задачи, в который были записаны результаты согласования руководителя.
Вроде все ? А нет ! Наверно человеку будет интересно узнать а почему-же отклонил руководитель его бизнес-процесс, для этого добавим руководителю возможность вносить комментарий. Для этого нам надо опять зайти в wizard путем нажатия на подчеркнутую надпись "Ваш подчиненный собирается пойти в отпуск" (раньше это была надпись <данные>). И добавить на нашу форму поле "Комментарий руководителя".


Вот теперь вроде все, приступим к созданию следующего шага, для этого сначала необходимо нажать Finish, чтобы система при сохранении бизнес-процесса создала новые поля, которые мы определили ("Согласен ?" и "Комментарий руководителя") и мы могли пользоваться этими полями в дальнейшем в нашем бизнес-процессе. Когда процесс сохранится открываем его заново и нажимаем ссылку "Add workflow step" в области окна Workflow Steps. "Step 2" переименовываем в "Согласование отпуска HR-специалистом". Перед тем как вывести задачу на HR-специалиста нам необходимо проверить что сказал руководитель. Для этого в разделе Conditions добавляем условие "Сравнить любой источник данных" нажимаем на <значение>. Вот сюда нам надо подставить то что ответил руководитель. Помните про переменную "сбор" ? Вот тут-то она нам и пригодится :)



В поле <значение> подставляем "Да". Дальше нажимаем "Add 'Else IF' Conditional ..." - добавляем ответвление условия. Сначала давайте определимся, что делать если руководитель не согласен ? Во первых установим статус заявления "Отклонено руководителем"


Дальше отправим e-mail инициатору в который вложим комментарий руководителя.





Как видите тут нам опять пригодилась переменная "сбор" в которой хранится ИД задачи выполненной руководителем.
Теперь перейдем к действиям, которые будут совершаться при положительном ответе руководителя. Предположим что если руководитель согласился то HR специалисту необходимо получить заявление в письменном виде от инициатора. Всё это можно организовать так-же как и с руководителем путем использования действия "Получить данные от пользователя", но, честно говоря, мне просто лень описывать всё это еще раз :), да и вы, как я думаю уже устали, поэтому ограничимся отправкой письма HR-специалисту, о том что такой-то человек, тогда-то тогда-то пойдет в отпуск и от него необходимо получить заявление в письменном виде и установкой статуса заявки "Утверждена".
Для установки статуса используем действие "Обновить элемент в списке", для отправки письма "Отправить почту". Конечный результат должен выглядеть так:


Всё ! Нажимаем Finish. Процесс сохраняется и готов к работе :). Стартоваться бизнес-процесс будет автоматически, как только пользователь создаст заявку на отпуск.

Ага. Вот, Вам наверно интересно в каком виде задача выходит на руководителя ? Показываю и объясняю :). Руководителю в Outlook приходит письмо типа:

Чтобы посмотреть заявление нажимаете ссылку "сывс" - это я такую причину отпуска указал :) надеюсь ваши подчиненные так делать не будут :). Вот так выглядит электронная заявка на отпуск:


Для того чтобы выполнить задачу нажимаете на ссылку "здесь" :) и попадаете в форму задачи, которая выглядит так:

Нажимаете изменить задачу, заполняете необходимые поля и нажимаете на кнопку "Complete Task"


Вот теперь всё ! Конечно, я специально упростил данный бизнес-процесс, это потому что цель данной статьи не описать сам процесс учета отпусков, а показать Вам основные инструменты, которые помогут Вам его автоматизировать. На вопросы отвечу в комментариях либо при личной встрече в г. Запорожье. Ну и конечно-же если вам всё это лень делать, а хотите - приглашайте меня :) сделаем такое и даже лучше ... за деньги, естественно :).

Спасибо за внимание, с уважением, Дмитрий Горлин.



Запомнить:


Комментариев нет:

LinkWithin

Related Posts with Thumbnails