过程概述
配置工作流任务页面包含以下步骤:
1. 标识要自定义的 PBO 对象类型。
2. 标识要自定义的工作流任务类型。
3. 标识应在工作流任务中呈现的表格及其序列。
4. 标识需要在任务信息页面中呈现的 PBO 操作及其序列。
5. 标识必须呈现的 PBO 属性。
6. 标识工作流任务页面上的选项卡,以及必须在其中呈现的表格和操作。
7. 以正确的格式为任务表单模板对象创建加载文件,然后加载该文件。
8. 配置工作流任务以使用加载的任务表单模板。
标识 PBO
标识要自定义的 PBO 对象类型。任何 lifecyclemanaged 对象均可用作 PBO。支持不可变类型和可变类型 (WTPartWtDocument、Agenda、Meeting、EPMDocument 等)。需要标识 PBO 的完整类名称。
标识工作流任务类型
确定要为其创建任务页面的工作流任务类型。
您可以为 PBO 和工作流任务类型的组合配置任务。这样即可灵活地为两种不同工作流任务类型 (例如,“审阅”和“升级”) 提供不同的配置。
有关任务类型的详细信息,请参阅活动选项卡
标识要呈现和配置的表格
以下步骤将介绍如何添加“受影响的对象表格”和“成熟度历史记录表格”
1. 标识应在任务详细信息页面上呈现的 PBO 相关表格。可以是预设表格,也可以是自定义表格。
标识表格组件 ID 及其基于类型的信息。
要标识组件 ID 和组件所使用的 componentConfigBuilder,请参阅信息页面的“调试”部分。
要检查是否已使用 TypeBased 注释定义构建器,请参阅 JavaDoc 中有关组件构建器的信息。假设该组件的组件 ID 为 "changemanagement.affecteddatatable" 且构建器被配置为 TypeBased
有关 TypeBased 的详细信息,请参阅 MVC 组件概述 中的 "TypeBased" 一节。
2. 将上方标识的表配置到工作项任务操作模型中。
在自定义操作文件中为组件 (例如,受影响数据表) 定义一个新操作以在可配置的工作流页面中显示。组件名称必须为 "workflowTask.pbo",组件 ID 必须作为 pboCompId 传递到 urlParams 中,且 useTypeBased 必须具有基于上一步骤中查找的值。
例如:
<action name="TestAffectedData"
resourceBundle="wt.workflow.worklist.worklistResource" >
<component name="workflowTask.pbo"
urlParams="pboCompId=changemanagement.
affecteddatatable&amp;useTypeBased=true"/>
<includeFilter name="configurableTypeBaseFilter"/>
</action>
includeFilter 标记提供了筛选机制。筛选器框架适用于使用 includeFilter 标记的表格组件/操作。
TaskFormTemplate UI 中,表格操作显示基于针对任务表单模板选择的 PBO 类。
代码中已支持使用可变类型。但是,如果已经对不可变类型 (支持为 true) 应用了筛选器,并且通过 UI 将任何可变类型实例以其自己的类型提供,但该可变类型不存在,则它将检查其超级类。
在“工作项信息”页面的“自定义”选项卡中,“自定义”菜单中显示的操作将根据工作项 PBO 类型进行筛选。
3. 为在上一步中创建的新操作 (TestAffectedData) 创建操作验证器。依预设,针对基于 PBO 对象类型筛选组件框架的提供了一个抽象验证器 (WorkFlowTaskPBOComponentValidator 类) 和一种覆盖方法 (isComponentValidFor)。新操作的操作验证器需要覆盖 isComponentValidFor,它用于定义给定组件的 PBO 对象类型是否有效。
package com.ptc.windchill.enterprise. workitem.validators;
import com.ptc.core.ui.validation.DefaultUIComponentValidator;
import com.ptc.core.ui.validation.UIValidationCriteria;
import com.ptc.core.ui.validation.UIValidationKey;
import com.ptc.core.ui.validation.UIValidationResult;
import com.ptc.core.ui.validation.UIValidationResultSet;
import com.ptc.core.ui.validation.UIValidationStatus;
import com.ptc.netmarkets.util.beans.NmCommandBean;
import com.ptc.core.meta.common.TypeIdentifier;
import com.ptc.windchill.enterprise.history.validators.
LifecycleHistoryNavValidator;
public class TestAffectedDataValidator extends
WorkFlowTaskPBOComponentValidator {
@Override
protected boolean isComponentValidFor(UIValidationKey validationKey,
UIValidationCriteria validationCriteria, WTReference pboRef) {
if (pboRef != null && pboRef.getObject() instanceof
LifeCycleManaged))
return true;

return false;
}

}
4. 在相应的 .properties 文件中配置验证器。以下代码示例继续有关 PboMaturityHistory 的示例。在 Workitem-service-properties.xconf 文件中添加这些操作。
...
<Option cardinality="singleton" requestor="java.lang.Object"
serviceClass="com.ptc.windchill.enterprise.workitem.validators.
WorkflowTaskPboMaturityHistoryValidator"
selector="PboMaturityHistory"/> [Option cardinality="singleton"
requestor="java.lang.Object" serviceClass="com.ptc.windchill.enterprise.workitem.
validators.TestAffectedDataValidator" selector="TestAffectedData"/>
所有这些操作都应为已添加到 Netmarkets-actionmodels.xml 文件中的 "workitem third nav configurable" 模型的一部分。

...
<model name="workitem third nav">
<action name="attributes" type="workitem"/>
<action name="routingStatus" type="workitem"/>
<action name="notebook" type="workitem"/>
<action name="discussions" type="workitem"/>
<action name="setupParticipant" type="workitem"/>
<action name="adhocActivities" type="workitem"/>
<action name="workflowTaskPboAttributes" type="object"/>
<action name="saveComplete" type="workitem"/>
<action name="workflowTaskPboAction" type="workitem"/>
<action name="PboMaturityHistory" type="history"/>
<action name="TestAffectedData" type="change"/>
</model>
以上所有操作均在配置文件 (ConfigurableWorkflowTask-typeBasedActionFiler.properties.xconf) 中定义的超级集中进行了验证。
显示在任务详细信息页面上的操作应出现在超级集中。如果不存在,则不会加载任务表单模板,并且无法从 TaskForm 模板 UI 对其进行配置。
在配置文件中,必须使得条目采用以下模式:
<Property name="actionType.actionName.configurablePbo.supportedTypes/ nonSupportedTypes” overridable="true" default="object Type<comma separated fully qualified class names will be acceptable>"/>
筛选不适用于工作项操作。它应适用于与工作项关联的 PBO 类型。
标识 PBO 操作
1. 标识 PBO 操作,例如检入、检出、编辑或查看信息页面。
2. 在 "ConfigurableTask.<Fully Qualified ClassName>" 模型中添加标识操作 (Netmarkets-actionmodels.xml)。如果未指定,则使用 PBO 类型的预设操作模型。
...
<model name="TaskFormTemplateWizardButtons" resourceBundle="com.ptc.netmarkets.workflow.taskformtemplates.taskformtemplatesResource">
<action name="editButton" type="taskformtemplates"/>
<action name="checkinButton" type="taskformtemplates"/>
<action name="cancelButton" type="object"/>
</model>
<model name="ConfigurableTask.wt.part.WTPart">
<submodel name="more part actions"/>
</model>
<model name="ConfigurableTask.wt.change2.WTChangeIssue">
<action name="view" type="object"/>
<action name="edit" type="problemReport"/>
<action name="editModifyContentOnly type="problemReport"/>
</model>


</actionmodels>
PBO 属性呈现
此功能支持呈现在特定布局中定义的 PBO 属性。布局的配置如下所示
workflowTaskPboAttributes 操作与为生命周期管理对象创建的新屏幕定义关联,您可以在其中呈现任务页面上的 PBO 属性。此操作在 EnterpriseUI_actions.xml 文件中创建,并在 "workitem third nav configurable" 下配置。
...
<!-- MULTI OBJECT EDIT ACTIONS -->
<action name="editMultiObjects" id="editMultiObjects" multiselect="true"
selectRequired="true" resourceBundle="com.ptc.core.ui.tableRB">
<command class="com.ptc.windchill.enterprise.object.forms.
EditMultiObjectsFormProcessor"
method="execute" windowType="popup"
url="netmarkets/jsp/object/editMultiObjects.jsp"/>
<includeFilter name="disableForAdminLocked"/>
</action>
<action name="workflowTaskPboAttributes"
resourceBundle="wt.workflow.worklist.worklistResource">
<component name="workflowTask.pbo"
urlParams="pboCompId=workflow.pbo.attributes" />
<includeFilter name="configurableTypeBaseFilter"/>
</action>

</objecttype>
<!-- MULTI OBJECT EDIT ACTIONS END-->
要查看此操作,必须通过选择“信息页 - 工作流任务属性”和 "workflowTaskPboAttributes" 来创建布局,以便在任务详细信息页面上呈现此布局。
它会在工作项信息页面中呈现信息。
多个选项卡支持
支持使用多个选项卡并定义其序列。每个选项卡都可以呈现一组表格和 PBO 操作。可通过加载文件和任务表单模板向导来获取配置此功能的机制。有关详细信息,请参阅创建任务表单模板
支持使用多个选项卡并定义其序列。每个选项卡都可以呈现一组表格和 PBO 操作。可通过加载文件和任务表单模板向导来获取配置此功能的机制。有关详细信息,请参阅创建任务表单模板
加载文件格式
1. 创建可配置类型的任务表单模板。
这是用于创建任务表单模板的加载程序格式。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TaskFormTemplate SYSTEM "standardX24.dtd">
<TaskFormTemplate>
<name>test</name>
<filePath></filePath>
<taskType>WfTask</taskType>
<pboClass>wt.part.WTPart</pboClass>
<typeFormat>Native</typeFormat>
<description>Out Of The Box configurable workflow Template</description>
<WorkflowTaskTab>
<tabName>TestTab1</tabName>
<tabSetKey>infopage</tabSetKey>
<components>[{"name":"workflowTaskPboAction","type":"workitem"},{"name":"attributes","type":"workitem"},
{"name":"routingStatus","type":"workitem"},{"name":"notebook","type":"workitem"},{"name":"discussions","type":"workitem"},
{"name":"setupParticipant","type":"workitem"},{"name":"adhocActivities","type":"workitem"}]</components>
<pboAction>[{"name":"checkout","type":"wip"},{"name":"REVISEITEMS","type":"pdmObject"}]</pboAction>
<sequence>1</sequence>
</WorkflowTaskTab>
<WorkflowTaskTab>
<tabName>TestTab2</tabName>
<tabSetKey>infopage</tabSetKey>
<components>[{"name":"workflowTaskPboAction","type":"workitem"},{"name":"attributes","type":"workitem"},
{"name":"routingStatus","type":"workitem"}]</components>
<pboAction>[{"name":"checkin","type":"wip"}]</pboAction>
<sequence>2</sequence>
</WorkflowTaskTab>
</TaskFormTemplate>
<WorkflowTaskTab> 用于创建包含以下标记的选项卡
<tabName> 用于指定选项卡名称
<tabSetKey> 始终为 infopage,因为选项卡显示在工作项信息页面上
<components> 是显示在任务详细信息页面上的表格/操作的 Json
<pboAction> 是针对主要业务对象执行的操作的 Json,其中主要业务对象与任务详细信息页面上显示的 workitem 相关联
<sequence> 为选项卡的显示顺序
2. 加载到 Windchill 系统并进行验证。
有关详细信息,请参阅创建任务表单模板
工作流模板配置
在工作流模板中,新建的任务表单模板需要作为活动模板引用以便呈现。
1. 启动工作流并转至要配置的活动。
2. 要使用任务表单模板生成任务详细信息页面,必须设置首选项。
导航至“实用程序” > “首选项管理” > “工作流” > “使用任务表单模板来生成任务详细信息页面”
3. 验证选项卡是否可用。
这对您有帮助吗?