OAF学习笔记-JAVA Entity Object 之 Create data(深入EO系列)
2011-12-20 13:46
495 查看
在<Your
EO name>EOImpl.java中,如果你在建立EO的Wizard中选择了生成Create
Method,则里面应已包含了标准方法 create().
Page上面的新增记录即调用此方法。
public void create(AttributeList attributeList)
{
super.create(attributeList);
}
在此方法中你可以加入字段初始化的语句,但须加在super.create(attributeList)的后面。
由于CO调用AM,AM调用VO,VO调用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_NEW和STATUS_INITIALIZED.
当执行EO的create()方法后,EO默认Row的状态为STATUS_NEW,这时,这条Row会被加入OAF的校验队列里,也就是说OAF会对这条记录进行有效性的校验.这时,如果你的记录中有必填项,但新增时必然还没填入值,这校校验失败,OAF会返回错误信息,当然,新增动作也就失败了.因此,我们可以加上row.setNewRowState(Row.STATUS_INITIALIZED)来设置记录状态为初始化状态,这样,这条记录将不再进入校验队列,所以可以正常的建立,并输入值了.
请注意:如果你的记录没有必填项,或必填项都有初始值,此句加不加无所谓…
待续...
EO name>EOImpl.java中,如果你在建立EO的Wizard中选择了生成Create
Method,则里面应已包含了标准方法 create().
Page上面的新增记录即调用此方法。
public void create(AttributeList attributeList)
{
super.create(attributeList);
}
在此方法中你可以加入字段初始化的语句,但须加在super.create(attributeList)的后面。
由于CO调用AM,AM调用VO,VO调用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_NEW和STATUS_INITIALIZED.
当执行EO的create()方法后,EO默认Row的状态为STATUS_NEW,这时,这条Row会被加入OAF的校验队列里,也就是说OAF会对这条记录进行有效性的校验.这时,如果你的记录中有必填项,但新增时必然还没填入值,这校校验失败,OAF会返回错误信息,当然,新增动作也就失败了.因此,我们可以加上row.setNewRowState(Row.STATUS_INITIALIZED)来设置记录状态为初始化状态,这样,这条记录将不再进入校验队列,所以可以正常的建立,并输入值了.
请注意:如果你的记录没有必填项,或必填项都有初始值,此句加不加无所谓…
待续...
相关文章推荐
- OAF学习笔记-JAVA Entity Object 之 Create data(深入EO系列)
- 深入理解 Java 虚拟机之学习笔记(1)
- Sharepoint学习笔记 –架构系列—Sharepoint的服务器端对象模型(Server Object Model) 3.服务层次结构
- 【Java反射学习笔记系列之jdk动态代理】静态代理和动态代理的区别以及动态代理的作用和实现
- 深入Java集合学习系列:LinkedHashSet的实现原理
- java系列:《java核心技术 卷1》学习笔记,chapter 11 调试技巧
- (Java2D 学习笔记系列) (一)一个简单的图像填充实例及其分析理解
- Java学习笔记之深入理解关键字final
- 深入分析Java I/O工作机制 学习笔记
- 【原】Java学习笔记021 - Object
- 深入Java集合学习系列:HashMap的实现原理
- 深入Java集合学习系列:HashMap的实现原理
- 深入Java集合学习系列:HashMap的实现原理
- 【代码笔记】Java深入学习——实现客户端发送文件到服务器的文件传输
- 【Java学习笔记之二十六】深入理解Java匿名内部类
- 深入Java集合学习系列:HashMap的实现原理
- 深入Java集合学习系列:CopyOnWriteArrayList详解
- 深入Java集合学习系列:HashMap的实现原理
- 深入Java集合学习系列:HashSet的实现原理
- 深入Java集合学习系列:HashMap的实现原理