前面同事在itjaj上面发表了通过个性化功能来启用OAF页面中表格的“记录历史”信息的文章:OAF页面显示“历史记录”图标,就借这个机会再对OAF页面控件中显示“记录历史(Record History)”的功能做一些更深入的了解。
OAF页面控件中显示记录历史信息有如下的限制:
- 首先当然是后台的表结构中必须包含WHO字段列了
- 基于的视图对象必须是非PL/SQL的可更新VO
- 这个功能仅在Header、Table和Advanced Table 这3个控件中有用
- 需要设置预置文件 FND: Record History Enabled(FND:启用历史记录)/FND_RECORD_HISTORY_ENABLED
由于“启用记录历史”是Header、Table和Advanced Table 控件的一个Boolean属性,因此可以在开发OAF页面的时候通过设置“Record History Enabled”来启用历史记录功能,也可以像OAF页面显示“历史记录”图标一文中描述的一样使用OAF个性化功能来启用它
下面是Header和Table控件显示记录历史图标的效果
实际上对于3个空间的Java类:OAHeaderBean, OATableBean 和 OAAdvancedTableBean 都有一个方法setRecordHistoryEnabled(boolean),在页面运行的时候processRequest()方法会调用它,当点击历史记录图标时会打开记录历史模式窗口,此时记录历史页面的控制器OARecordHistoryCO –> prcoessRequest()方法会从AM中取得当前行的,然后利用实体行的row.getEntity()方法从实体对象中通过entityObject.getAttribute()方法来取得WHO字段的值