高级自定义 > 业务逻辑自定义 > 自定义工作流管理 > 多参与者选择向导自定义
多参与者选择向导自定义
在实现 Windchill 时,您可以自定义,以便对可在更改任务或升级请求的参与者选择表格中显示的内容进行更精确的控制。以下信息详细介绍了更改任务和升级请求向导中参与者选择组件所支持的自定义。
解决方案
扩展默认参与者配置委派,以覆盖更改任务或升级请求向导中参与者选取器的默认显示。
必备知识
要执行自定义,需要了解以下内容:
涉及 Java 和特性的基本开发。
解决方案元素
元素
类型
说明
ParticipantConfiguration
com.ptc.windchill.enterprise.wizardParticipant.configuration
接口
委派的接口,用于控制具有不同配置的向导参与者选择表格的显示。
DefaultParticipantConfiguration
com.ptc.windchill.enterprise.wizardParticipant.configuration
默认委派,用于显示具有不同配置的向导参与者选择表格。
PromotionParticipantConfiguration
com.ptc.windchill.enterprise.maturity.configuration
配置委派,用于显示升级向导参与者选择表格。
typedservice.properties.xconf
xconf
在类型化服务特性中注册的参与者配置委派。
ParticipantsFormDelegate
com.ptc.windchill.enterprise.wizardParticipant.forms
表单委派,用于处理工作流团队参与者选择。
PromotionParticipantsFormDelegate
com.ptc.windchill.enterprise.maturity.forms.delegates
用于存储选择进程以及选定进程的工作流参与者选择。
自定义点
覆盖显示
要覆盖更改任务或升级请求向导中的参与者选择选取器的显示,可对 DefaultParticipantConfiguration 委派进行扩展以提供所需的行为。升级请求会覆盖由 PromotionParticipantConfiguration 实现的某些默认显示行为。要使用自定义参与者配置委派,必须首先在 typedservice.properties 中针对委派将要使用的对象类型对其进行注册。要注册委派,不应该直接更新 typedservice.properties,而是应该创建一个自定义 typedservice.properties.xonf。当前支持的类型为升级请求、更改任务和任何子类型。以下是为升级请求对象注册的委派的示例。
<Service context="default"
name= "com.ptc.windchill.enterprise.wizardParticipant.
configuration.ParticipantConfiguration" >
<Option requestor="wt.maturity.PromotionNotice"
selector="wizardParticipantConfiguration"
serviceClass= "com.ptc.windchill.enterprise.maturity.configuration.
PromotionParticipantConfiguration" />
</Service>
下表将介绍可覆盖的特定显示配置:
API
说明
默认行为 (更改任务)
升级请求的覆盖行为
getWorkFlowTemplate
具有以下功能的工作流进程模板:用于定义可供选择的显示工作流角色,用于显示参与者列表的资源池。
在向导中的选定对象类型中查找生命周期模板工作流进程模板。
getWorkflowResourcePools
用于显示可供选择的参与者列表的资源池。映射将包含作为一组上下文团队、团队模板、团队或组的键和值的工作流角色。
用于显示可供选择的参与者列表的资源池。使用从 getWorkFlowTemplate(FormDataHolder) 返回的工作流进程模板以及在表单数据中找到的容器中的上下文团队。
getFixedRoleSelection
将初始选定的参与者角色映射到要选择的工作流进程角色。用户可以取消选择这些角色。
未将任何角色标记为固定。
如果通过“用于升级的固定角色”升级首选项将角色映射到另一个角色,则会从映射的角色中获取初始选定的参与者。否则,初始选定的参与者将衍生自给定角色。
getInitialRoleSelections
将固定的初始选定参与者角色映射到要选择的工作流进程角色。用户无法取消选择这些角色。
使用在对象初始化规则中定义的对象团队模板上的角色。
没有初始选择。
isSelectUsersInGroups
如果可以在组内选择真正的用户。
启用在组内选择用户。
如果将“组成员显示”升级首选项设置为“是”,则可以在组内选择用户。
excludedWorkflowRoles
用于筛选工作流角色。
未排除任何角色。
排除 OWNER 角色。
excludedWorkflowRolesForDisplay
用于筛选显示在参与者表格中的工作流角色列。仍会保存系统选定为隐藏角色的任何参与者。
未排除任何角色。
默认情况下不会排除任何角色。当工作流模板变量 "hideFixedRoles" 设置为 true 时,所有固定角色都将被隐藏。当 "hideFixedRoles" 设置为 true 时,将工作流模板变量 "overrideFixedRoleDisplay" 用作覆盖可筛选出隐藏固定角色。要覆盖多个角色,请使用 "|" 来分隔角色。
验证参与者选择
根据已配置的资源配置,当前不会对选择进行验证。要在处理选择前验证选择,可以覆盖 ParticipantsFormDelegatePromotionParticipantsFormDelegate 中的 preProcess API。可利用 ParticipantsFormDelegate 中的 getParticipantsToProcess API 来获得工作流角色映射和工作流角色的选择参与者。
然后,可使用 getParticipantConfiguration API 获取 ParticipantConfiguration 委派的正确实例,以便评估参与者选择。
排除要在升级请求中显示的工作流角色
可对升级请求进程工作流模板进行更新,以排除在升级请求参与者表格中显示的系统固定角色。例如,Promotion Request Approval Process 具有两个工作流角色,即批准者和审计者。要求审计者必须始终预先确定,并且升级请求作者应不能设置其他审计者。
要隐藏表格中选定的固定角色,请更新 Promotion Request Approval Process 工作流模板特性,以包括名为 "hideFixedRoles" 且默认值为 "true" 的新布尔变量。
由于批准者和审计者角色均被配置为固定系统选定角色,因此这两者在参与者表格中均处于隐藏状态。
为显示批准者角色,即使将其配置为固定系统选定角色,也应更新 Promotion Request Approval Process 工作流模板特性,以便还包括名为 "overrideFixedRoleDisplay" 的新字符串变量,以及角色 (即 "APPROVER") 的内部名称。请注意,可以添加其他角色,需要使用 "|" 来分隔内部角色名称。
此时,批准者角色列会显示在参与者表格中。请注意,即使审阅角色列未显示,仍会在完成升级请求向导时,对任何预先选定的固定系统参与者角色选择进行处理。
限制
自定义显示配置仅限于 ParticipantConfiguration 委派中所支持的 API。
这对您有帮助吗?