Я не против системы Workflow, я ее использую на проектах. Мои замечания к статье Аманд - это не описание полноценного примера, это скорее туториал для ознакомления.
Последовательность действий по утверждению клиентов, судя по документу нужно:
1. Есть стандартная форма клиентов. Без статуса.
2. Заводим нового клиента - что нужно сделать администратору чтобы его послать на утверждение? Кроме настройки бизнес-правила нужно на форме поменять метод canSubmitToWorkflow()? Ок, меняем.
3. Что нужно сделать администратору, чтобы по клиенту из п.2. сделать утверждение? Поменять метод canSubmitToWorkflow() назад? Ок, меняем метод, утверждение пока не делаем - допустим ответственный думает.
4. Заводим нового клиента и хотим отправить на утверждение - опять что ли меняем метод canSubmitToWorkflow() на форме???? В этот момент, у вас по всем клиентам станет доступна только отправка на утверждение, в т.ч. по клиенту из п.2.
5. Какой признак в системе у утвержденного клиента? Кроме истории утверждения? Сама история по себе никому не нужна. Нужно, как правило, проставить некий статус, ну или, убрать блокировку с клиента, чтобы на него можно было заводить документы - это нужно явно программировать.
Если вы внимательно посмотрите на существующие в системе шаблоны workflow, то везде у документа есть некий статус, от которого и зависит вся обработка. И, кстати, в стандарте нет ни одного универсального шаблона, который бы позволил настроить все возможные действия, откаты, утверждения и задачи в рамках одного документа.
Чтобы пользователь мог настроить любое бизнес-правило, нужно правильно запрограммировать workflow - предусмотреть все возможные (вернее, нужные по бизнесу) переходы состояний. Как это сделать без статуса документа я не представляю, расскажите про свой опыт.
__________________
Ivanhoe as is..
Последний раз редактировалось Ivanhoe; 28.04.2011 в 22:37.
|