OAF学习笔记-JAVA Entity Object 之 Create data(深入EO系列)

Create data(新增数据):

EOImpl.java, 如果你在建立EOWizard中选择了生成Create Method,则里面应已包含了标准方法  create(). Page 上面的新增记录即调用此方法。

public void create(AttributeList attributeList)

  {

super.create(attributeList);

}

在此方法中你可以加入字段初始化的语句,但须加在super.create(attributeList)的后面。

由于CO调用AMAM调用VOVO调用EO,因此我们要在Page上实现增加记录的功能,须按如下步骤进行:

1.  VO中建立新增记录的方法。

2.  AM中调用VO的方法。

3.  CO中调用AM的方法。

由于VOImpl提供了新增记录的方法,第一步可以省略。我们可以直接在AM里调用VO的方法来新增记录(这个方法调用的也是EO create( )

伪码如下:

AM

Import oracle.jbo.Row;

import oracle.apps.fnd.framework.server.OAViewObjectImpl;

public void createdata()

  {

    OAViewObjectImpl vo1 =  this.getOrderLineVO1();//取得VO的实例

   

    Row row = vo1.createRow(); //新增记录

vo1.insertRow(row);//插入记录

// 上面两句可合并成一句: vo1.insertRow(vo1.createRow());

    row.setNewRowState(Row.STATUS_INITIALIZED);//EO Row的状态

  

}

上述代码中的最后一句很重要.说明一下:

EO Row Status有如下几种:

STATUS_NEW – 新记录状态

STATUS_DELETED – 记录已被删除

STATUS_MODIFIED – 记录已被修改

STATUS_UNMODIFIED – 记录未被修改或已修改但未提交

STATUS_DEAD – 新记录未提交即被删除

STATUS_INITIALIZED – 初始化状态

其它几种状态,暂时不看,这里只说STATUS_NEWSTATUS_INITIALIZED.

当执行EO create() 方法后,EO 默认Row的状态为STATUS_NEW,这时,这条Row会被加入OAF的校验队列里,也就是说OAF会对这条记录进行有效性的校验.这时,如果你的记录中有必填项,但新增时必然还没填入值, 这校校验失败,OAF会返回错误信息,当然,新增动作也就失败了. 因此,我们可以加上row.setNewRowState(Row.STATUS_INITIALIZED) 来设置记录状态为初始化状态,这样,这条记录将不再进入校验队列,所以可以正常的建立,并输入值了.

请注意: 如果你的记录没有必填项,或必填项都有初始值,此句加不加无所谓

待续...

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10359218/viewspace-677448/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10359218/viewspace-677448/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值