OAF_EO系列4 - Create详解和实现(案例)
2014-06-02 Created By BaoXinjian
实现OAF的新增功能insert的具体解析
建立EO时,在向导中选择生产Create Method,则EOImpl中会包含标准create()
public void create(AttributeList attributelist)
{
super.create(attributeList);
}
在以上方法中可以加入初始化方法,在super.create后
当用户进行create record时,数据流向如下
Page Create Page Button->CO 中processFormRequest -> AM具体的create方法 ->VO具体的create的方法 ->EO 中的create方法
在Create时必须的VO进行初始化,新增Row以存放需create record的内容
1. 创建记录常用的两种方式
- 在新增一个主界面上有个Create按钮,一旦触发该按钮,直接跳到一个明细页,用以新增记录
- 在主Table上,有个Add New An Record按钮,一旦触发该按钮,直接在表后新增一个Record,用以新增记录
2. VO的数据的三个层次
- View Object
- Row
- Attribute
3. EO Row的六个status
- STATUS_NEW-> 新增记录状态
- STATUS_DELETED-> 记录已被删除状态
- STATUS_MODIFIED-> 记录已被修改状态
- STATUS_UNMODIFED-> 记录未被修改或者已修改未提交
- STATUS_DEAD-> 新增未提交即被删除
- STATUS_INITALZIED -> 初始化状态
注意点:当执行EO的create()方法后,EO默认Row的状态为STATUS_NEW,这时,这条Row会被加入OAF的校验队列里,也就是说OAF会对这 条记录进行有效性的校验.这时,如果你的记录中有必填项,但新增时必然还没填入值,这校校验失败,OAF会返回错误信息,当然,新增动作也就失败了.因 此,我们可以加上row.setNewRowState(Row.STATUS_INITIALIZED)来设置记录状态为初始化状态,这样,这条记录将 不再进入校验队列,所以可以正常的建立,并输入值了
4. AM Create Date关键方法
public void createData()
{
OAViewObjectImpl vo1 = this.getOrderLineVO1(); //取得VO的实例
Row row = vo1.createRow(); //新增记录
vo1.insertRow(row); //插入记录
row.setNewRowState(Row.STATUS_INITIALIZED); //置EO Row的状态
}
5. AM Commit Date关键方法
public void applyDate()
{
getOADBTransaction().commit();
}
案例:从主页面ExpenseSummary.PG通过按钮Create,跳转至明细页面ExpenseCreate.PG,对Expense进行新增
1. 通过ExpenseSummary.PG主界面中的Create按钮进行跳转
2. 跳转至明细页面ExpenseCreate.PG
2.1 在导入页面过程中,触发CO的processRequest方法
2.2 在CO中调用AM中初始化方法
2.3 AM在初始化VO和Row时,系统会自动调用EOImpl中的方法
由他文进行介绍,在此略过
2.4 处理后系统跳转至ExpenseCreate明细页面
3. 输入数据后,点击保存save按钮,对数据进行处理进入database
3.1 输入数据
3.2 触发CO中processFormRequest方法
3.3 在CO中调用AM中方法,对Transaction进行Commit
4. Commit后数据进入数据库,进行查看
案例:再进一步,结合上面,在定义对Expense Line进行操作,通过Add an new line对表新增行
1. 在点击Add an new line后触发CO中的代码,在通过CO触发AM中的关键初始化代码
2. 有些步骤就略去,看下图,点击add an new line后,系统会自动增加一行expense line,实现了Expense Header和Line的主从关
3. 新增后查看数据
Thanks and Regards
OAF_EO系列4 - Create详解和实现(案例)的更多相关文章
- OAF_EO系列5 - Update详解和实现(案例)
2014-06-14 Created By BaoXinjian
- OAF_EO系列3 - Initialize详解和实现(案例)
2014-06-14 Created By BaoXinjian
- OAF_EO系列6 - Delete详解和实现(案例)
2014-06-14 Created By BaoXinjian
- nginx高性能WEB服务器系列之四配置文件详解
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- mongo 3.4分片集群系列之六:详解配置数据库
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- mongo 3.4分片集群系列之五:详解平衡器
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- Hexo系列(二) 配置文件详解
Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...
- css3系列之transform详解translate
translate translate这个参数的,是transform 身上的,那么它有什么用呢? 其实他的作用很简单,就是平移,参考自己的位置来平移 translate() translateX() ...
- ThreeJS系列1_CinematicCameraJS插件详解
ThreeJS系列1_CinematicCameraJS插件详解 接着上篇 ThreeJS系列1_CinematicCameraJS插件介绍 看属性的来龙去脉 看方法作用 通过调整属性查看效果 总结 ...
随机推荐
- windows下AppServ安装php的memcached扩展
memcache和memcached的区别 在自己的新程序中打算全面应用memcached技术,这个很容易理解这是memcached是内存缓存,但是怎么还有memcache呢? 其实很简单,mem ...
- Oracle学习系列2
SQL语法练习: 1,选择部门30中的所有员工 select * from emp where deptno=30; 2,列出办事员的姓名,编号和部门编号 select ename, empno, d ...
- Firefox-常用扩展
抓包: HttpFox,相比 Firebug 在页面跳转或刷新时依旧保持原有数据 常用User-Agent模拟: User Agent Switcher 更改请求头: ModifyHeaders 更改 ...
- 浅拷贝,深拷贝---ios
#import <Foundation/Foundation.h> @interface Father : NSObject <NSCopying,NSMutableCopying& ...
- Unity3D深入浅出 - 新版粒子系统 (Shuriken) - Tonge
Shuriken粒子系统是继Unity3.5版本之后推出的新版粒子系统,它采用了模块化管理,个性化的粒子模块配合粒子曲线编辑器使用户更容易创作出各种兵分复杂的粒子效果. 创建一个粒子系统的方式有两种: ...
- python扫描内网banner信息
小菜自己无聊写着玩,主要纪念以前的逗逼学习,可以改IPy import mechanize import cookielib import socket import argparse import ...
- Create STATISTICS,UPDATE STATISTICS
该命令在一张表或者索引了的视图上更新查询优化统计数字信息. 默认情况下, 查询优化器已经更新了必要的用来提高查询计划的统计信息; 在某些情况下, 你可以通过使用UPDATE STATISTICS 命令 ...
- CSS3弹性盒模型之box-flex
对于之前讲过的box-sizing属性,对于页面布局很有用,但是突然发现它依然存在一些问题,前面例子中不会存在问题,不代表它没有问题.如果元素的个数整除100%的时候呢,比较3个元素,那么第一个盒子的 ...
- 024. asp.net中第一次使用GridView (设置鼠标经过时更换背景色)
1. 前端HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Inde ...
- rsync-3.0.6-64
http://rsync.samba.org/ 用的是rsync-3.0.6-12.el6.x86_64 Rsync version 3.1.1 released June 22nd, 2014 Rs ...