基本自定义 > 用户界面自定义 > 收集 UI 数据 > 通过 Info*Engine 获取数据 > 解决方案
  
解决方案
Windchill 客户端体系结构表格的组件数据构建器返回 IeTaskInfo
必备知识
读者应熟悉 Info*Engine 和基本的 Windchill 客户端体系结构数据采集概念。
解决方案元素
元素
类型
说明
ComponentDataBuilder
Java 接口
为组件创建数据模型
IeTaskInfo
Java 类
封装有关 Info*Engine 任务和可传递给任务的参数的信息
过程 - 实现组件数据构建器
您的 ComponentDataBuilder 应返回一个填充好的 IeTaskInfo 对象。以操作名称为构造函数,提供有关获取数据所需执行的任务的相关信息。例如,以下代码片段演示了如何使用 "jca-Search" 任务。
public class MyDataBuilderWithIETask implements ComponentDataBuilder {
@Override
public Object buildComponentData(ComponentConfig config,
ComponentParams params) throws WTException {
//pass the task name as constructor
IeTaskInfo taskInfo = new IeTaskInfo("jca-Search");
……..
return taskInfo;
}
}
可使用 IeTaskInfo 中的 setParam(Param param) 方法为 "Get-Model" webject 提供参数。此外,如果您想要使用 FORM 组将参数传递到基础任务,可以使用 addFormParam(String name, Object data) 方法。
配置任务选择
在内部,它使用 Info*EngineDispatch-Tasks webject 来查找在 IeTaskInfo 中提供的操作任务名称的任务实现。将显示传递到 Dispatch-Tasks 的多个参数,使用这些参数可选择正确的实现任务。
有关这些参数的工作方式的详细信息,请参阅 Management Webjects
//pass the taskName as constructor
IeTaskInfo taskInfo = new IeTaskInfo("jca-Search");
//parameter passed on to the Dispatch-Tasks
taskInfo.setParam(new Param("GROUP_IN", "<groupInName>"));
taskInfo.setParam(new Param("TYPE", "<typeName>"));
taskInfo.setParam(new Param("CLIMBER", "<climberName>"));
return taskInfo;
将表单数据提供给任务
默认情况下,JSP 页面中的任何请求参数都将作为表单数据的一部分提供给任务。因此,如果页面的 URL 以类似 "/somePage.jsp?foo=bar" 的内容结尾,则在您的任务实现中,"@FORM[]foo[]" 将映射到 "bar"。
如果要为任务明确配置表单数据,则可通过创建表单组,然后按如下所示指定组的名称来执行此操作:
//pass the taskName as constructor
IeTaskInfo taskInfo = new IeTaskInfo("jca-Search");
//create your FORM group
Group groupIn = new Group("FORM");
taskInfo.setGroupIn(groupIn);
return taskInfo;
使用由 Windchill 客户端体系结构提供给任务的信息
Windchill 客户端体系结构向任务提供有关请求组件和当前表格视图所显示的属性的信息 (如果该组件使用可配置表格)。然后,您的任务可以使用此信息来查询正确的结果数据。提供给任务的其他参数会映射到由 Query-Objects webject 接受的子集:
ATTRIBUTE:包含组件要显示的属性列表
SORTBY:要排序的属性
SORTED:每个属性的排序方向
WHERE:筛选条件
TYPE:要搜索的类型
VERSION:应返回最新还是所有版本
ITERATION:应返回最新还是所有小版本
ATTRIBUTE_TYPE_CONTEXT:提供多个类型时,应该用作上下文来查找属性定义的类型
PAGE_LIMIT:每页的结果数 (Windchill 版本 10.0 中的表格不支持非自定义点作为分页)
PAGE_OFFSET:从分页会话返回的第一个结果行 (如果有,Windchill 版本 10.0 中的表格不支持非自定义点作为分页)
PAGING_SESSION_ID:当前分页会话 ID (如果有)
在这些参数名称中,大多数可通过 setParam(Param param) 重新配置为其他值。有关详细信息,请参阅自定义点