Настройка рабочих процессов
Каждая сущность в Apostol CRM имеет встроенный автомат состояний. Стандартный цикл из 4 состояний покрывает большинство случаев, но его можно расширить.
Стандартный рабочий процесс
┌────── restore ───────┐
v |
[Created] --enable--> [Enabled] --disable--> [Disabled]
| | |
|--delete--> [Deleted] <--delete-- [Deleted] <--delete--
4 типа состояний: created, enabled, disabled, deleted.
Ключевые концепции
- Тип состояния -- одна из 4 фиксированных категорий
- Состояние -- конкретное именованное состояние внутри типа (может быть несколько)
- Метод -- связывает действие с классом и состоянием
- Переход -- определяет: в состоянии X при выполнении метода Y перейти в состояние Z
Основные API-функции
-- Добавить состояние
uState := AddState(pClass, pStateType, 'available', 'Available');
-- Добавить метод (видимый или скрытый)
PERFORM AddMethod(null, pClass, uState, GetAction('disable'), null, 'Disable');
PERFORM AddMethod(null, pClass, uState, GetAction('heartbeat'), null, 'Heartbeat', null, false);
-- Добавить переход
PERFORM AddTransition(pCurrentState, pMethod, pNewState);
Паттерны проектирования
| Паттерн | Когда использовать | Пример |
|---|---|---|
AddDefaultMethods | Простой CRUD | Справочники |
| Свои методы, 1 состояние на тип | Стандартный цикл + доп. действия | Клиент |
| Свои методы, N состояний на тип | Сложный цикл с подсостояниями | Зарядная станция |
| Скрытые методы | Автоматические действия | Heartbeat |
Полная версия с примерами кода доступна на английском языке: Workflow Customization (English).