Рабочий процесс для веб-сайта «Process Application» - PullRequest
1 голос
/ 14 января 2010

Мы находимся в процессе разработки веб-сайта, где пользователи могут заполнить заявку и отправить ее. После создания приложения оно проходит через различные отделы для проверки. После каждого просмотра сотрудники отдела заходят на веб-сайт и обновляют статус приложения. После завершения рассмотрения заявка считается «одобренной». Кроме того, сообщение (электронная почта) отправляется заявителям, обновляя их о статусе их заявки. Я думаю об использовании Windows Workflow для этого приложения, но я новичок в этом. Может кто-нибудь сказать мне, имеет ли смысл использовать WF для такого приложения ... или это было бы излишним .. Я думал об использовании рабочего процесса конечного автомата, поскольку каждое созданное приложение проходит через различные состояния. Одна из моих основных проблем заключается в том, что этот процесс также включает ручную работу, такую ​​как просмотр приложения (это может занять несколько дней), а затем обновление статуса (например, путем нажатия кнопки на веб-сайте). Может ли рабочий процесс справиться с подобными вещами?

Я просмотрел много веб-сайтов, но они рассказывают об очень простых примерах, когда состояния меняются автоматически. Но в моем случае много взаимодействий между людьми.

Любая помощь приветствуется

Спасибо !!!

Ответы [ 2 ]

3 голосов
/ 14 января 2010

Вот пример для MSDN, который описывает очень похожий рабочий процесс, который вы описали - хотя они используют клиент Windows Forms, а не веб-клиент - но эти детали не должны иметь значения, учитывая использование рабочего процесса.

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

2 голосов
/ 14 января 2010

«В моем случае много взаимодействий между людьми».

Это самый простой способ построить. Это просто транзакции.

Каждый этап процесса представляет собой простое веб-приложение.

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

  2. Показать этот кусок работы. Пользователь вносит изменения. Сохраняет это. Некоторое изменение переместит его в следующее состояние. Это все еще только обновление.

Вот и все. Ничего фантастического.

  • Вам просто нужно очень, очень четко определить каждое состояние.

  • У вас должен быть простой запрос, который находит работу в этом состоянии.

  • У вас должно быть простое обновление, которое переводит работу в следующее состояние.

Состояния должны быть очень, очень ясными и простыми определениями. Например, один столбец с именем штата.

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

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


  1. Нужен ли отдельный экземпляр рабочего процесса для каждого созданного приложения?

    Я не знаю, что это может означать. Каждое «приложение», которое движется по конвейеру этапов ручной обработки, имеет «состояние» - шаг конвейера, на котором оно ожидает, прямо сейчас.

    Каждое приложение также имеет полную историю каждого изменения состояния. Я не знаю, какой из этих «рабочих процессов» может иметь экземпляр. Они просто состояния бытия объекта.

  2. Это веб-приложение. Так что у него будет какая-то другая логика, такая как просмотр приложения, навигация и т. Д. Нужно ли включать это в рабочий процесс?

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

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

    Навигация не очень интересна. Люди переходят на страницы, чтобы увидеть свои очереди необработанных работ. Я полагаю, вам придется создать страницу с некоторыми URL-адресами, но в этом нет ничего особенного.

  3. Было бы нормально иметь только часть приложения, основанную на рабочем процессе.

    Конечно. Почему бы и нет? Я не уверен, что понимаю вопрос.

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

    Это не очень сложно. Так не должно быть. Трудно определить допустимые изменения состояния.

...