主要内容

退出状态

当有一个有效的状态转换时,该状态被标记为退出。一个状态被标记为退出的方式有以下几种:

  • 输出转换起源于状态边界。

  • 向外的过渡跨越了州界。

  • 目标状态是激活状态的并行子状态。

退出状态的工作流

此流程图显示了statflow中的事件进展®退出状态。在这个流程图中,当前状态指的是决策或过程正在发生的状态。

退出操作

退出当状态处于活动状态且存在从状态的有效转换时,执行状态的操作。国家履行其职责退出在变得不活跃之前的动作。

退出动作之前有前缀退出前女友,后跟必需的冒号(),然后是一个或多个操作。用回车、分号(),或逗号().

退出状态

在本例中,状态流图被初始化,并且条目执行的操作是StateAStateA1.在这张图表中针对这张图表的操作已经发生了两次。一个新的时间步长出现,然后图表被唤醒。

按照状态流图执行的工作流评估过渡的工作流程StateB已被标记为入境。StateA是过渡的源头。此时步长x = 5y = 2,z = 0

按照状态退出动作的流程图,直到图表进入休眠状态,执行步骤如下:

  1. StateA是不是一个超国家StateB

  2. 执行的退出操作StateA和马克StateA是不活跃的。现在z = 1

  3. StateA没有父状态。

  4. 输入操作

这些步骤完成了退出工作流程StateA.然而,图表还没有睡着。

执行输入图表或状态的工作流StateB完成时间步长。

使用超转换退出一个状态

超过渡是指图表中不同层次之间的过渡。超跃迁可以是顶级图表中的状态和它的一个子状态之间的状态,也可以是位于不同子状态之间的状态。你可以在你的图表中创建跨越任意数量层次的超过渡。

当一个状态通过超转换退出时,在转换源的退出操作执行之后,它的超状态被标记为非活动状态并执行超状态的退出操作。在这个例子中,StateA2被标记为退出StateB1被标记为条目.在这一点上,x = 5y = 5,z = 0

按照输入图表或状态的工作流直到图表进入睡眠状态,退出状态的执行步骤StateA2是这样排列的:

  1. StateA2不是目标状态的超状态(StateB1).

  2. 执行退出操作StateA2和马克StateA2是不活跃的。

  3. StateA2有一个父母状态,StateA

  4. StateA不是目标状态的超状态(StateB1).

  5. 执行退出操作StateA,和马克StateA是不活跃的。

  6. StateA没有父状态。

这些操作完成了退出工作流程StateA2StateA.然而,图表还没有睡着。

执行输入图表或状态的工作流StateBStateB1完成时间步长。

相关的话题