среда, 7 октября 2009 г.

Автоматизация бизнес-процесса контроля и учета задач с помощью MS SharePoint

Привет. Сегодня я расскажу Вам про то, как можно автоматизировать бизнес-процесс постановки, контроля выполнения и учёта оперативных задач с помощью технологии workflow в Microsoft SharePoint, абсолютно не имея навыков программирования.

Приступим. Первым делом рассмотрим и опишем автоматизируемый бизнес-процесс. Из чего он состоит ?
1. Постановка задачи;
2. Внесение задачи в список задач, заполнение параметров задачи;
3. Уведомление исполнителя о новой задаче;
4. Выполнение задачи;
5. Напоминание о сроке задачи;
6. Закрытие выполненной задачи;

Пункты 2,3,5 и 6 мы с вами сегодня и будем автоматизировать с помощью Sharepoint и технологии workflow.
Для этого в первую очередь проведем подготовительные работы - на выбранном узле Sharepoint создаём новый список.

При создании из раздела "Отслеживание" выбираем тип списка "Задачи",

назовём его "Задачи отдела".Всё :) 1/3 пути уже пройдена :)


Теперь переходим в меню Параметры->Список:Параметры, создаём новый столбец "Напомнить" с типом данных "Дата и время" - в этом поле мы будем указывать дату и время когда исполнителю необходимо напомнить, что скоро истекает срок по задаче.

Теперь запускаем Microsoft Sharepoint Designer, в нём открываем узел на котором мы создали наш список "Задачи отдела" используя меню "Open Site". Дальше создаём новый бизнес-процесс через меню File - New - Workflow.

Даём имя нашему бизнес-процессу, привязываем его к созданному только что списку "Задачи отдела" и ставим галочку в поле Automatically start this workflow when a new item is created (Автоматически стартовать процесс при создании нового элемента), жмем "Далее"



Перед вами откроется дизайнер процесса. Conditions - служит для того чтобы задавать условия выполнения действий. Actions - сами действия. Жмём Actions в выпавшем меню выбираем Отправить почту (Send mail).


Заходим внутрь вновьсозданного действия и начинаем настраивать параметры. Сначала кому отсылать: нажимаем на кнопку с книжкой напротив поля To: в появившемся окне выбираем Workflow Lookup... в появившемся окне выбираем Source: Current item (текущий элемент), Field: Кому назначено, теперь система знает что письмо необходимо отсылать тому человеку, которому назначена задача.


Дальше заполняем тему и текст письма по своему усмотрению. Но нам ведь еще необходимо вставить в письмо название и текст задачи. С SharePoint Designer это делается элементарно :) нажимаем кнопку Add Lookup to Body, в появившемся окне выбираем Current item и название поля в текущем элементе которое необходимо отобразить, в нашем случае это: Название, Описание задачи и Срок. Кроме этого я при создании писем для автоматической рассылки из workflow использую стандартные теги HTML для оформления текста письма.


Так, с уведомлением покончили теперь создаём следующее действие путём нажатия кнопки Actions, выбираем действие "Задать поле в текущем элементе". Указываем системе чтобы она в поле "Состояние" записала значение "В процессе выполнения", далее добавляем действие "Сделать паузу до даты" и опять-же подставляем дату которая записана в поле "Напомнить" текущего элемента.


2/3 - работы сделано :) После паузы добавляем действие Отправить почту - это будет напоминание о задаче, потом опять ставим процесс на паузу до даты записанной в поле Срок текущего элемента и после паузы отсылаем письмо с уведомлением о том что закончился срок выполнения задачи.

Для удобства пользователя вставляйте в тексты писем раздел "Действия" в котором пользователь сможет Посмотреть детали задачи, Изменить состояние задачи, Посмотреть все свои задачи. Код для данного раздела ниже:


Вот вроде бы и всё, теперь при добавлении новой задачи в наш список, система автоматически отошлет уведомление о задаче человеку которому она назначена, отошлет напоминание о том, что скоро закончится срок, отошлёт уведомление о том, что срок закончился. Кроме того пользователь прямо из почтового письма может перейти к задаче и изменить её состояния либо % выполнения задачи.

Я у себя такое запустил, работает :) желаю и вам того-же.

з.ы. Как обычно, вопросы, предложения в каменты ) либо ищем меня в Запорожье.

Запомнить:


11 комментариев:

Горлин Дмитрий комментирует...

Прочитали ? Остались вопросы ? Хотите еще что-то узнать про Sharepoint ? Отписывайтесь, помогу !

Анонимный комментирует...

Добрый день, сделал тоже самое. Спасибо огромное. Но есть еще вопрос:
Хотел добавить, чтобы если пользователь изменит состояние задачи на "Завершенные", чтобы рабочий процесс останавливался и пользователю больше не приходили письма с напоминанием или завершением времени исполнения. Пытался делать это через ветку Else IF, задал условие(проверка значения поля "Состояние") и действие - опять же "Отправить почту", но теперь в поле "Кому" щелкнув по книжке в "текущем элементе" нет поля "Кому назначено". Вот это беда не находит у меня решения. Может это из-за того, что на данный момент рабочий процесс в ходе выполнения? Как считаете?
И последнее, при добавлении ветки If else, нужно задать условие и для первых действий, что тут посоветуете? Заранее благодарен за ответ.

Анонимный комментирует...

Окно комментов не влазит, ввиду чего нельзя оставить сообщение от зарегенного юзера

Горлин Дмитрий комментирует...

Блин ... я и забыл что с каментами эксперементировал ))) Сорри за задержку, только сегодня увидел зелдененьбкую надпись непросмотренные комментарии. Теперь всё должно влазить !

Горлин Дмитрий комментирует...

Не может быть чтобы не было кому назначено. Как вариант - создаёте переменную в которую в начале процесса запихиваете "Кому назначено" , потом в "Отправить почту" нажимаете н кнжку выбираете workflow lookup и там вашу переменную :)

Второй вопрос (про создание ветки) не понял :(

Анонимный комментирует...

Ооо
То что нужно! Как раз не имею особых навыков в программировании. И есть такая задача. Буду пробовать вашим методом. =)

Евгений комментирует...

Я писал немного ранее. 7 декабря по поводу Share Point. В течение этого времени пересмотрел почти весь ваш сайт. Многое очень понравилось. Потому что имею схожие цели и принципы. Еще многого не достиг, но целей множество. =) Очень доволен сайтом! У меня есть вопрос по поводу того же SharePoint'а.
Имеется список SharePoint, используется для согласования заданий. Мне необходимо чтобы в этом списке можно было разграничить доступ на запись по столбцам таблицы. Первые 4 столбца содержат примечания (их заполняет Руководитель1). Столбцы "Дата", "Задача", "Пути решения", "Примечание". Потом идет столбец "Ответственный исполнитель". К нему должен быть доступ у Руководителя2 (он назначает исполнителя из списка выпадающего). Последние 3 столбца ("Статус", "Планируемая дата выполнения", "Ответ/Комментарий исполнителя") заполняет собственно Исполнитель.
Все в общем работает.
При добавлении задачи Руководителем1 приходят уведомления Руководителю2, он назначает исполнителя, исполнителю приходит уведомление (все по почте), исполнитель соответственно выполняет (или не выполняет, о чем указывает в "своих" столбцах. Как можно было бы разграничить доступ к этим столбцам? Это необходимо для того чтобы исполнитель не мог изменять данные в списке. И вообще, возможно ли это штатными средствами Share Point Services?

Горлин Дмитрий комментирует...

Евгений не вы первый уже бьетесь над вопросом как разграничить доступ к столбцам списка) к сожалению пока средствами SharePoint это сделать нельзя .... разве что писать we-part с помощью которого просматривать данный список и уже в в веб-парте предусмотреть возможность разграничения.

Для одного из заказчиков я подобную задачу реализовывал на разных списках. Т.е. в вашем случае поля которые заполняет руководитель1 - это список 1, руководитель 2 - список 2, исполнитель - список3. Кроме этого в списке 3 каждая задача имеет ID по этому ID элементы этого списка связанны с элементами в 2-х других списках. ... :) ... блин ... трудно это описать, но в упрощенной форме где-то так. надеюсь поймете )

Евгений комментирует...

Все понял =)Первоначально предполагал что так придется сделать. То есть просто по аналогии с БД Access - создать связи между таблицами - по сути эти списки можно в БД Access править, у меня правда Access вылетает при попытке правки списка SharePoint. Еще я думал над вариантом создания разных видов дефолтного отображения одного списка в зависимости от того в какой группе состоит человек. Скорее всего остановлюсь на варианте с разными списками для разных групп.

Евгений комментирует...

Доброго времени суток! У меня тут небольшая проблема образовалась. В шаблоне письма рабочего процесса через подстановку хочу вывести полное ФИО создателя записи листа (поле "Кем создано"). Причем в видах отображения листа Sharepoint поле "Кем создано" выводит полное ФИО. Так вот, в уведомлении вместо полного ФИО выводится логин учетки (Account), а мне нужно, чтобы выводилось полное ФИО (Поле "Name" учетной записи). Как это сделать в шаблоне псообщений рабочего процесса?

Евгений комментирует...

Доброго времени суток! Пока оставил вариант с одним списком и несколькими отображениями. Как связать по ID разные списки?
Случайно обнаружил еще одну особенность. В виде типа DataSheet (похож на вид в Access) столбцы полей со строковым типом Multiline и расширенным способом форматирования текста имеют доступ только на чтение. Наверное как-то топорно написал, но примерно так. =)

LinkWithin

Related Posts with Thumbnails