Общая схема
В качестве исходных данных выступает список технологических операций с привязанными к ним технологическими позициями (оборудованием) и параметры заказа (что и с какими требованиями необходимо изготовить).
Рис. 1
Эти данные подаются на вход бизнес-процесса, представленному в виде графической схемы. На выходе получаем список операций и задействованного оборудования (техкарту).
Бизнес-процесс (карта техпроцессов)
Логика бизнес процесса определяется соответствующей графической схемой, к элементам которой привязаны операции (для элементов «Дествие» и «Обработка») или функции (для элементов «Условие» и «ВыборВарианта»).
Рис. 2
Формулой определяется выбор ветки техпроцесса.
Рис. 3
На вход формулы подаются параметры заказа, собственные параметры формулы (ссылки на элементы справочников, перечисления и т. д., также можно использовать вызов других формул для расчета параметров текущей).
Формула, с помощью которой определяется ветка техпроцесса должна возвращать тип булево или массив. Тип булево используется только для элементов «Условие» и «ВыборВарианта» с двумя вариантами действия, в остальных случаях формула должна возвращать тип массив. Общий принцип таков, что количество возвращаемых вариантов должно совпадать с количеством возможных направлений движений по схеме.
Генерация техкарты
Перед генерацией техкарты следует задать требования к заказу и приоритет использования оборудования для тех случаев, когда есть несколько вариантов изготовления.
Рис. 4
В результате расчета получаем список операций, задействованного оборудования, а также графическую схему техкарты.
Рис. 5
На рис. 5 выбрана ветка «Основное производство 2» так как в условиях заказа (рис. 4) указано, что требуется высокая точность изготовления, а формула на рис. 3 как раз и направляет техпроцесс по соответствующей ветке, несмотря на то что приоритетом выбрано «Основное производство 1» (рис. 4).
Планы
В дальнейшем планируется развивать систему в сторону расчета расходных материалов и ресурсов (время, люди) требуемых для выполнения произвольного заказа.