OSworkflow是基于FSM(finite state machine,有限状态机)理论的工作流引擎。
step(步骤)
一个 step 描述的是工作流所处的位置。可能从一个 step Transtion(流转)到另外一个 step,或者也可以在同一个 step 内流转(因
为 step 可以通 status 来细分,形成多个State)。一个流程里面可以多个step。
status(状态)
工作流 status 是用来描述工作流程中具体step(步骤)状态的字符串。OSWorkflow 的有 Underway(进行中)、Queued(等候处理中)
、inished(完成)三种 status。一个实际State(状态)真正是由两部分组成:State = (step + status) 。
Transtion(流转)
一个state到另一个state的转移。
action(动作)
action 触发了发生在 step 内或 step 间的流转,或者说是基于 State 的流转。一个 step 里面可以有多个action。action 和
step 之间的关系是,step 说明“在哪里”,action 说明“去哪里”。 一个 action 典型地由两部分组成:可以执行此action(动作)的
condition(条件),以及执行此动作后的 result(结果)。
result(结果)
Result 代表执行action(动作)后的结果,指向新的 step 及其 step status,也可能进入 split 或者 join。Result 分为两种,
contidional-result (有条件结果),只有条件为真时才使用该结果,和 unconditional-result(无条件结果),当条件不满足或没有条件
时使用该结果。
(1) Unconditional Result
对于每一个动作来讲,必须存在一个Unconditional Result。一个result是一系列指令,这些指令将告诉OSWorkFlow下一个任务要做什么。这
包括使工作流从一个状态“流转”到另一个状态。
(2) conditional Result
conditional Result是unconditional Result的一个扩展。它需要一个或多个condition子标签。类似于逻辑判断,可包含“AND”和“OR”这
样的逻辑。判断一个action(动作)是否可以执行。
(3) 三种不同的Results(conditional or unconditional)
--一个新的、单一的步骤和状态的组合。
--一个分裂成两个或多个步骤和状态的组合。
--将这个和其他的切换组合成一个新的单一的步骤和状态的组合。
split/join(分离/连接)
流程的切分和融合。很简单的概念,split 可以提供多个 result(结果);join 则判断多个 current step 的态提供一个 result(结果
)。
联系客服