高级自定义 > 业务逻辑自定义 > 产品系列管理自定义 > 从自定义 JCA 操作刷新选定的 UI 组件
  
从自定义 JCA 操作刷新选定的 UI 组件
您可以自定义操作,以对矩阵编辑器的特定区域进行刷新,而不必执行整页刷新。这些自定义操作可根据部件 OID 的列表对可配置结构进行刷新。此外,还应处理用于移除所有子项的自定义“新建视图版本”操作。要在自定义操作处理后处理 UI 的刷新,相关 OID 必须传递到结果映射以反映所做的更改。以下是填充 customURLAction.jsp 矩阵编辑器中自定义操作示例中所完成的结果映射的示例。
结果映射包含以下键:
replacementMap:此键用于为自定义操作 (包括部件和变型规范 OID) 所完成的任何 OID 更改提供替换映射。此映射将旧 OID 作为键,而将新 OID 作为值,并以连字符 ("-") 分隔。多个条目必须以逗号分隔 (",")。例如,如果变型规范已更新,并且部件也已更新,则结果映射将为:
refreshPart:此键用于提供部件 OID 列表,但必须对其子部件结构进行刷新。刷新部件结构会重新加载子结构行和单元格,并反映对结构的更改,包括新部件或已删除的部件。子行的所有展开都将丢失,且部件下的所有第一级子项都将在刷新后折叠。多个条目必须以逗号分隔。例如,如果部件 A 由自定义操作更新,使其具有添加到结构中的新部件,同时该部件的 OID 也发生了更新,则结果映射将为:
refreshParentOfPart:此键用于提供部件 OID 列表,但必须对其父项子结构进行刷新。如果提供的部件 OID 有多个父项,则需要刷新所有父项的子结构。刷新部件结构会重新加载子结构行和单元格。子行的所有展开都将丢失,且部件下的所有第一级子项都将在刷新后折叠。
多个条目必须以逗号分隔。例如,如果部件 B 由自定义操作更新,使其现包含在变型基线中,且版本和基线属性也将发生更改,则必须刷新其父项的结构以显示 UI 更改,且结果映射将为:
* 
首先处理替换部件。因此,如果结果映射中的替换键和更新键有一个公用部件,则必须在 refreshPartrefreshParentOfPart 键中提供该部件的更新或新 OID。
如果自定义操作的更改与排除或包含部件相关,或者与在变型基线中添加、移除或更新部件相关,以此反映这些更改,则必须更新此部件的父项子结构。为此,可在结果映射中提供部件 OID 作为 refreshParentOfPart 键的值来实现此目的。
如果某个部件由自定义操作修改,使其小版本发生更改 (新建 OID),且此部件具有子结构以及替换映射,则还必须将迭代的部件 OID 添加到结果映射中的 refreshPart 键。如果此部件的 OID 发生更改,则此部件与子项之间的使用关系链接也会更新。要使用新的使用关系链接更新 UI,必须刷新此部件的子结构。
示例:使用示例自定义操作测试刷新功能
在从添加到矩阵编辑器的 BOM 树上下文中的示例自定义操作启动的 customURLAction.jsp 示例中,有三个输入字段对应于结果映射中预期的三个键值。以下是示例自定义操作的 UI 快照,其中突出显示了输入字段:
Replacement map (oldOID1-newOID1, oldOID2-newOID2...):此字段用于提供替换映射。可通过以连字符分隔旧 OID 和新 OID 来提供此映射。
Refresh part structure for given part (comma separated OIDs for which sub structure would be refreshed):此字段用于提供部件 OID,但必须对其子结构进行刷新。
Refresh part structure for given part's parent (comma separated OIDs whose parent's sub structure would be refreshed):此字段用于提供部件 OID,但必须对其父项子结构进行刷新。
要模拟自定义操作的刷新,请执行以下步骤:
1. 在矩阵编辑器中启动相应部件的自定义操作。
2. 打开另一个 UI 会话以对部件或变型规范进行更改。
3. 提供相应的替换映射或 OID,以将其作为矩阵编辑器中所启动的自定义操作 UI 中的输入进行刷新。
4. 单击 OK,然后验证更改目前是否已反映在矩阵编辑器中。