基础管理 > 支持协作 > 工作流管理 > 工作流管理 > 使用工作流模板编辑器 > 声明变量
  
声明变量
定义进程时,变量可用在转变条件表达式或自动路由选择表达式中。变量可以是全局变量 (适用于进程本身),也可以是局部变量 (适用于已分配活动或子进程)。
* 
Windchill 8.0 出厂设置的更改管理工作流运行于 Windchill 10.x 上时,用户将在任务详细信息页面看到在 8.0 工作流模板中定义的活动变量,而不是在 10.x 工作流模板中定义的活动变量。
变量可声明为任何 Java 类型或任何 Windchill 类。唯一的限制是变量必须是可序列化的。如果变量类型为 Windchill 业务对象,则可以通过标准 getter API 来参考该对象的属性。变量可以声明为以下类型:
可见或不可见
必需的或可选的
只读或读/写
可重置或静态
变量值可以在活动或子进程启动时从父进程变量初始化,也可以在活动或子进程完成时复制到父进程变量中。
* 
尽管可以将工作流变量声明为任意 Java 类型或 Windchill 类 (前提是它可序列化),但 PTC 建议您考虑下列指导原则:
工作流变量复合于 ProcessData 对象之内,而反过来 ProcessData 对象保留在 Oracle 数据库的 BLOB 列中。如果 BLOB 对象的持续签名在存储到数据库之后发生更改,则在从数据库中对其检索和解除序列化时可能会发生错误;因此,PTC 建议将工作流变量类型限制为如下类型:
java 原语变量
可扩展变量
可持续变量
可扩展变量提供其持续签名中更改的处理方法。可持续变量作为 ObjectReferences (而非完全扩展对象) 存储在工作流变量中。
可持续变量不应在另一个类中复合,因为这会导致数据不一致或损坏。这样做也会导致在迁移过程中出现 wt.pds.NotEvolvableException。
可持续变量可能是 java.util.Vector 中的一个元素 (这是因为 Vector 类能接收通过 WfVariable 类作出的特殊处理),但是应尽可能避免这种情况。首选方法是使用指向可持续变量的 CachedObjectReference 或 ObjectReference。
工作流变量可以包含、复合 ObjectReference,或是在需要时将其封装到可持续变量。
有关 Windchill 可扩展类和接口的信息,请参阅 Windchill Customization Guide (《Windchill 自定义指南》)