OAF_开发系列24_实现OAF更新记录显示Record History(案例)

时间:2021-12-14 00:57:05

20150716 Created By BaoXinjian

OAF_开发系列24_实现OAF更新记录显示Record History(案例)


OAF页面控件中显示记录历史信息有如下的限制:

1. 首先当然是后台的表结构中必须包含WHO字段列了

2. 基于的视图对象必须是非PL/SQL的可更新VO

3. 这个功能仅在Header、Table和Advanced Table 这3个控件中有用

4. 需要设置预置文件 FND: Record History Enabled (FND:启用历史记录) / FND_RECORD_HISTORY_ENABLED

由于(启用记录历史)是Header、Table和Advanced Table 控件的一个Boolean属性,

因此可以在开发OAF页面的时候通过设置(Record History Enabled)来启用历史记录功能,

也可以像OAF页面显示“历史记录”图标一文中描述的一样使用OAF个性化功能来启用它

OAF_开发系列24_实现OAF更新记录显示Record History(案例)


1. 启用方式

由于“启用记录历史”是Header、Table和Advanced Table 控件的一个Boolean属性。

因此可以在开发OAF页面的时候通过设置(Record History Enabled)来启用历史记录功能,也可以像通过OAF个性化功能来启用它。

OAF_开发系列24_实现OAF更新记录显示Record History(案例)

2. 下面是Header和Table控件显示记录历史图标的效果

OAF_开发系列24_实现OAF更新记录显示Record History(案例)

OAF_开发系列24_实现OAF更新记录显示Record History(案例)

3. 代码控制

实际上对于3个空间的Java类:OAHeaderBean, OATableBean 和 OAAdvancedTableBean 都有一个方法setRecordHistoryEnabled(boolean)。

在页面运行的时候processRequest()方法会调用它,当点击历史记录图标时会打开记录历史模式窗口,此时记录历史页面的控制器OARecordHistoryCO –> prcoessRequest()方法会从AM中取得当前行的。

然后利用实体行的row.getEntity()方法从实体对象中通过entityObject.getAttribute()方法来取得WHO字段的值。

OAF_开发系列24_实现OAF更新记录显示Record History(案例)


1. 修改Record History Enabled为True

OAF_开发系列24_实现OAF更新记录显示Record History(案例)

2. 运行测试,显示Record History

OAF_开发系列24_实现OAF更新记录显示Record History(案例)

3. 点看查看历史记录

OAF_开发系列24_实现OAF更新记录显示Record History(案例)

Thanks and Regards

参考:OracleSeeker - http://oracleseeker.com/2009/08/27/show_record_history_in_oaf_page_view/

OAF_开发系列24_实现OAF更新记录显示Record History(案例)