为什么ADF业务组件实体属性呈现为"可更新为新的"当所有相关配置都设置为"可以随时更新?"

时间:2015-09-11 18:49:59

标签: oracle-adf webcenter

背景

有问题的应用程序是使用ADF业务组件,JSF 2.0和Facelets的WebCenter 11g内部开发项目,并且正在使用JDeveloper 11g第2版11.1.2.4.0版开发。模型项目包含一个实体对象,其中包含许多用于查看业务项目的值。视图控制器项目在有界任务流中包含单个页面,其中包含引用这些值的输入表单,用于创建和编辑评论。在整个应用程序中启用ADF安全功能。在这些评论的上下文中,预期的功能表示一类用户只能编辑某些" S.E。"值,而其他用户可以编辑所有值并创建新评论。为此,已为审核实施了实体属性级安全性。

问题

审核表单正确呈现,但随机选择的值除外。输入元素(40个中的8个)在编辑现有记录时呈现为只读/禁用 ,但在创建新记录时没有问题。使用AppModule测试功能进行测试时,会观察到相同的结果:测试用户可以为新记录编辑相同的八个值,而所有其他值都可以编辑为新记录和现有记录。< / p>

具体细节

这些值的视图对象和实体对象属性都配置为可更新属性设置为始终。这些值包括上述的一些&#34; S.E。&#34;价值,但不是全部 - 所有有争议的价值都不包含在&#34; S.E。&#34;价值组。测试用户被设置为应用程序的管理员,即授予所有资源权利的应用程序角色。

决议失败

我试图更改“查看对象”和“实体对象属性”&#39; 可更新属性新建从不,然后将其切换回始终 - 确认更改是在每个开关的XML文件。我已多次检查并重新检查ADF安全配置,并确认每个值的安全性相同与相同格式/实体的其他值的安全性相同不会发生。在部署到新推出的集成WebLogic Server之前,我已经清理了应用程序并单独重建了项目(模型和vc);在重建和重新部署之前,我已关闭并重新启动JDeveloper;我甚至重新启动了计算机,因为有时我的企业的性质会导致JDeveloper的奇怪问题只能通过注销或重新启动整个系统来解决。我也确认问题发生在我的同事的机器上。

基本规则

由于我的环境的性质,我无法透露应用程序的明确细节,以下建议是不可接受的。

  • 升级JDeveloper
  • 升级Java
  • 升级WebLogic / WebCenter
  • 升级ADF,JSF或任何其他库

1 个答案:

答案 0 :(得分:0)

事实证明,此问题是由ADF Security / JDeveloper SNAFU引起的。有问题的实体属性在某些时候被重命名(重构),并且由于某种原因,此更改传播到所有内容......除了属性的权限配置。属性和对它们的所有其他引用都保存了新名称,但实体XML文件中的Permission元素仍保留旧名称。在直接查看XML之前,这一点并不明显,因为ADFBC实体的JDeveloper UI未反映XML编辑器中显示的警告状态。然后,解决方案是禁用并重新启用这些属性的属性级安全性,或者手动调整XML中的权限元素参数。