并行执行表达式
在相同的工作流进程内可同时执行两个用于设置变量值的表达式自动机。此操作称为并行执行表达式。
所示工作流为并行执行示例。自动机 ExprRobot1 修改变量 1 的值,ExprRobot2 修改变量 2 的值。如果 ExprRobot1 先执行,变量 1 则会收到定义值。当 ExprRobot2 执行时,变量 2 会收到定义值且工作流进程结束。
在示例中,如果将两个表达式自动机 ExprRobot1 和 ExprRobot2 设置为修改相同变量,则先执行的自动机所做的更改会被覆盖。
配置并行执行工作流,从而仅将由表达式修改的本地变量值传播至进程级别变量。因此,除非该变量由另一个表达式显式修改,否则不会覆盖由表达式分配给变量的值。
|
此检查仅适用于表达式自动机内的表达式、同步自动机中的路由表达式、连接器以及块中的 while 表达式。不会影响活动中表达式的行为,其中“初始化自”和“复制到”设置用于确定应传播至进程级别的本地变量。
|
如果您希望将变量传播至进程级别 (无论其值是否被修改),请在表达式中使用方法 setDirty(self,variable_name)。此方法使用两个变量:对包含进程的参考以及要传播的变量名称。
|
只有新创建的工作流模板支持并行执行表达式。对于在 Windchill 早期版本中创建的模板,需要重新生成表达式文件。要进行此操作,请从路径 Windchill\codebase\wt\workflow\expr 中删除旧表达式文件,并在工作流模板中的相应表达式自动机的“表达式”选项卡上单击“检查语法”。
|