壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2061|回复: 0

[OAF] OAF JB0-27021错误

[复制链接]
发表于 2009/8/20 12:56:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 sunny_swufe 于 2009/8/20 12:58 编辑

JB0-27021


Tag: OAF AttributeLoadException JBO-27021 java.sql.SQLException

有些希奇古怪的问题,也许有些人一辈子也遇不到,也许,你运气来了,就让你遇到这么一两个。我就是属于那种运气来了,什么古怪问题都能遇到的人。这JBO-27021JBO-27022,我就这么遇到了,而且,我断断续续用了差不多5天的时间,才把这问题的原因找出来。而这个原因却又让人如此哭笑不得!现在,我把案件完整拿出来,请老大些,高手些,帮忙看看,遇到此等问题,怎么分析,怎么着手解决,不至于让我等菜鸟些花这么多冤枉时间。废话少说,转如正题。

问题:

Error Page
Exception Details.
oracle.apps.fnd.framework.OAException: oracle.jbo.AttributeLoadException: JBO-27021: ?? java.sql.SQLException, ????? oracle.jbo.domain.Number ? java ????? 9 ??? CustomDatum ????
        at oracle.apps.fnd.framework.OAException.wrapperException(Unknown Source)
        at oracle.apps.fnd.framework.OAException.wrapperException(Unknown Source)


附件是Error Details

问题背景:

选择供应商单选框之后,页面局部刷新(PPR),效果如图所示:
选择1号供应商,下表局部刷新列出该供应商的所有地点:
1.jpg


(图一)

选择2号供应商,下表局部刷新列出该供应商的所有地点:
2.jpg


(图二)


为了练习PPR,我做了一个BBS DEMO,效仿上图的效果。
1、创建两个EO(BbsBoardsEOBbsClassEO),创建一个AO(ClassToBoardsAO)
2、创建两个VO(BbsBoardsVOBbsClassVO),在BbsClassVO中新增了一个String型非数据库字段SelectFlag,用于保存单项框的选择标记。再创建一个VL
3、创建页面testPG.xml

3.jpg


(图三)




选择框singleSelection属性设置如下:
View InstanceBbsClassVO1
View AttributeSelectFlag
Action typefirePartialAction
EventclassSelect
4、为页面testPG创建CO(testCO),在processRequest()中查询图三四上表数据,在processFormRequest()中捕捉到页面中的classSelect事件后,调用AM中的方法。
5、在AM中添加handleClassSelectionEvent()方法,为选中的行,赋“Y”值给SelectFlag
  1. public void handleClassSelectionEvent()
  2.   {
  3.     OAViewObject vo = (OAViewObject)findViewObject("BbsClassVO1");
  4.     Row masterRow = vo.getFirstFilteredRow ("SelectFlag", "Y");
  5.     if (masterRow != null)
  6.     {
  7.       vo.setCurrentRow(masterRow);
  8.     }
  9.   }
复制代码
环境已经介绍清楚,请各位高手帮忙分析一下,如上的错误,解决思路是怎样的?

问题原因:
这里涉及很多知识:Master-DetailPPREOAOVOVL的创建等,这里涉及的PPR很简单,我怀疑是在AOVL的设置有问题,于是,我花了大把的时间去研究DeveloperGuid,然后,做DEMO,重新建表,建EOAOVOVLDEMO做好了,没有任何问题。然后将整个过程和BBS DEMO比较,经过几十次的测试之后。找到问题了。

4.jpg


(图四)

5.jpg


(图五)

SQL列出来:
  1. SELECT b.BOARDS_ID,
  2.        b.BOARDS_NAME,
  3.        b.BOARDS_CLASS_ID,
  4.        b.BOARDS_IMAGE,
  5.        b.BOARDS_INFO,
  6.        b.ANNOUNCES_NUM,
  7.        c.CLASS_NAME,
  8.        decode(nvl((select distinct a.ann_boardsid
  9.                     from BBS_ANNOUNCES a
  10.                    where a.ann_boardsid = b.boards_id),
  11.                   -1),
  12.               -1,
  13.               'DeleteEnabled',
  14.               'DeleteDisabled') as DELETE_SWITCHER
  15.   FROM BBS_BOARDS b, BBS_CLASS c
  16.   where b.BOARDS_CLASS_ID = c.CLASS_ID
复制代码
很明显,在SQL当中,没有定义5WHO字段,而Attribute中却显示已经定义了。所以,VL在根据设置好的AO关系,读取BbsBorads中数据的时候,就报错JBO-27021。而现在,我已经无法还原当时的操作了,无法同时得到图四和图五的结果了。因为如果SQL中没有定义5WHO字段,那么AttributeJDeveloper会自动将这5WHO字段设置为Transient,而,这样,也不会报JBO-27021错误。

6.jpg


(图六)

注:如图六,五个WHO字段的位置不同,还会报出如下几种相似的错误:
JBO-27021: ?? java.sql.SQLException, ?????oracle.jbo.domain.Number
JBO-27022: ?? java.sql.SQLException, ?????oracle.jbo.domain.String
JBO-27022: ?? java.sql.SQLException, ?????oracle.jbo.domain.Date



BySunny.Zhang


2009819224410
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 05:08 , Processed in 0.020839 second(s), 15 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表