今天遇到一个比较棘手的问题:
一个仪器管理系统的定义几个流程, 借用,维修,转关,校准 四个流程.
当时我设计的时候,任何一个流程开始,仪器的状态设置为一种状态, 当其它流程要使用它的时候就报错.
现在F提出,如果在借用流程中, 仪器也可以被维修,校准.
这个就比较痛苦了,难道我需要在借用流程中来增加维修流程和校准流程节点么?
后来想了一个办法,就是定义"锁",而且是支持多重锁的一个流程辅助功能.
先定义某个流程内支持继续运行其它流程, 然后,一旦一个仪器开始走一个流程就加一个锁,如果这个仪器又要走另外的流程,则检查是否能走其它的流程,可以,再加一个锁,一直这样.
最近加的锁具备最高的锁权利,那么其它的流程必须等此锁解开后才能继续.
如果一个流程走完,它自动去把仪器的此流程的锁打开.就象开门一样,一道一道的打开.
这就是我对流程中启动其它流程的解决方法,呵呵...