Oracle EBSGL学习笔记
Oracle EBS基础知识学习情况汇报 2

Balance segment: (此段必须进行设定)(指定Company)总账所有的在平 衡段内的处理过程借贷必须平衡。每一个平衡段对应一个你所确立的实体, 对于这个实体,你可以获得次实体的平衡表和收益表 Management Segment:此段主要与数据访问集用来控制数据的读写权限 Intercompany Segment 此段用于追溯公司之间的数据交互和业务处理 Secondary Tracking用于重估,汇兑损益、关闭财年内的凭证、数据调整、 未实现的汇兑损益(不理解)
3)定义累计组(不理解) 这里会用到累计组的包括Department、 Account 、 Product
4)输入值 为刚才定义的弹性域结构的每一段添加值。 对段内的Value set 赋值
划绿圈处为我们刚刚创建的累计组。Level 处可 以根据需求填写。一般没有子项的默认即可。
定义03 的子项,注意父项的属性 设置posting 要设定为NO
Cost center segment。(指定department)成本 中心段,用于对不同的部门或是成本中心,生成对 应的损益表或是管理报告(Income Statements or Management Reports)
Natural Account segment: (此段必须进行设定) (指定account)这个段 是账目架构的核心段,此段用来确定每一次账目处理过程数据应该传送到得科 目。并且此段还要对科目进行合并和分类确定资产、负债、所有者权益、收益和 费用;确定哪些项目进留存损益科目,哪些项目需要转到下一年。
Security Type:
No security:表示没有任何安全控制。 Hierarchy:将父层的安全特性全部传递到 这个项目的子层 No-Hierarchy:安全特性只对当前项有效
Oracle-EBS模块学习资料

总帐会计系统
10/1/2019 1:14
Oracle 行业模型: 离散制造
计划
寻源
制造
市场
概念到发布
采购到付款
预测到计划
需求到制造 (离散)
问题到预防
企业管理
财务管理到财 务报告
库存到履约 项目到盈利
销售
支持
机会到订单
订单到收款
联系到解决
合同到续签
供应链
客户关系管理
企业后台管理
Journal Entries
Journal Entries
FA
Mass Addition
Orders
OE
Shipments
INV
Items
AP
Vendor Invoices
Vendor Payments
Transportation Information
COST
Bills
BOM
Work Orders
保留 Reservation
库存余额更新 出货确认 Ship Confirm
重排程 Re-schedule
未交订单管理
退货管理 RMA
发票开立 Invoice
退货审核 Approve
货品退回 Return
销货折让 Credit
10/1/2019 1:14
Oracle General Ledger (总帐管理系统)
(选项) 外包
制造资源耗用 Resource - 人工 - 机器设备 - 制造费用
外包 Outside Processing
送货/交货
装配完成
工单完成 WIP Complete
oracle ebs学习

Oracle ebs 组织架构介绍SAP将系统组织简单地分为“集团(Client)、公司代码(Company Code)、采购组织(Purchase Org)、销售组织(Sale Org)、工厂(Plant)”等类别。
ORACLE的组织设置本质上与之基本相似,但作为后来者作了进一步抽象与简化,系统组织划分为“业务组(Business Group)、法律实体(Legal Entity)、业务实体(Operating Unit)、库存组织(Inventory Org)”等。
1、业务组【BG】参考“集团”概念,通常一个企业设置一个,对于业务多元化的特大型公司,可以设置多个。
当以系统预置超级用户SYSADMIN进入后,应首先设置一个具有在HRM或INV下创建组织功能的“责任”名,随后给此责任的“HR:User Type”配置文件设定值为“HR User”,则该责任就有了创建新BG的能力。
系统每新建一个BG,就会自动在配置文件“HR:安全性配置文件”的LOV中自动添加一个与新建BG同名的可选值(初始时只有“Setup Business Group”一个值)。
在某一个BG 下(初始为Setup Business Group)新建的任何责任,系统都将该责任的配置文件“HR:安全性配置文件”值默认为当前BG。
要在进入系统时能切换到新的BG,必须先修改该责任的“HR:安全性配置文件”设定值。
2、法律实体【LE】:对应于真实世界中的按国家法律法规要求注册的“法人公司”。
LE在组织FORM定义时,对于每个LE必须为其“法人主体会计科目”关联一个“帐套SOB”。
每个LE对应一个SOB,这与真实世界的法规要求是吻合的。
在定义“分类帐”时的“会计科目设置管理器”WEB中定义并分配法人实体LE。
一个分类帐设置(主辅分类帐)可以添加多个LE,但每个LE只能具有一个分类帐设置。
创建一个LE后,应当及时到会计科目弹性域结构中添加需要对应的公司段值LOV(一个或多个),并重新进行弹性域的编译,否则系统可能会弹出错误报警信息。
OracleEBS学习经验总结

OracleEBS学习经验总结目录1、form中数据查询时给定where条件,过滤数据 (2)2、radio-button中给item动态修改属性 (2)3、FORM窗口关闭时报错 (2)4、Form中自定义导出excel (3)5、FORM中限制下限LOV可选数据必须大于上限已选值 (4)6、FORM中选中上限时,默认下限等于上限值 (4)7、按照固定字符分割字符串取其中某段 (4)1、form中数据查询时给定where条件,过滤数据show_window(需要跳转到的window,2,2); --窗口调用函数,窗口名称,和坐标位置GO_BLOCK(指定数据块); --跳转数据块名称------3拼接where条件sql,单引号用’’’’四个单引号来转换,并且数据字段和变量都要用单引号括起来,也可以用三个引号代替where_cause := ' STUNO = '||''''||变量1||’’’’||’and ’;相当于where cause :STUNO = ‘变量1’ andwhere_cause := ' STUNO = '''||变量2||’’’and ’; 相当于where cause :STUNO = ‘变量2’and-----4执行sqlset_block_property('指定数据块',DEFAULT_WHERE,where_cause); --给数据块增加where 条件,将上面的where条件赋值给要查询的数据块EXECUTE_QUERY; --结束2、radio-button中给item动态修改属性SET_ITEM_PROPERTY('指定item ',LOV_NAME,'指定LOV');--set_item_property给item设置属性,将固定的lov设置给某个item--设置ITEM属性NAVIGABLESet_Item_Property('Block_name.Item_name',NAVIGABLE,PR OPERTY_TRUE|FALSE);--设置ITEM属性VISUAL_ATTRIBUTESet_Item_Property('Block_name.Item_name',visual_attribute,' vname'); --'vname'由导航器中(VISUAL_ATTRIBUTES)定义--设置ITEM属性DISPLAYEDSet_Item_Property('Block_name.Item_name',displayed,TRUE| FALSE);--设置ITEM属性POSITIONSet_Item_Property('Block_name.Item_name',position,x,y);--设置ITEM_SIZESet_Item_Property('Block_name.Item_name',item_size,x,y);--设置ITEM属性LABLESet_Item_Property('Block_name.Item_name',LABEL,'MESSAG E')3、FORM窗口关闭时报错在程序单元中修改程序包主体if (wnd = 'MAIN_W') then --这个是必须改的,否则主窗口不能关闭app_window.close_first_window; --关闭函数elsif (wnd = 'SECOND_W') then --某个关闭报错的窗口if (wnd = get_view_property(get_item_property(:SYSTEM.CURSOR_ITEM, ITEM_CANVAS), WINDOW_NAME)) thengo_block(:PARAMETER.PREVIOUS_BLOCK_NAME); --关闭它跳转至其他数据块,直接写数据块name,也可以用系统参数获取数据块名称end if;elsif (wnd = '') then –可以增加自己需要的内容--defer relations--close related windowsnull;end if;4、Form中自定义导出excelDECLAREdb_file NUMBER;url VARCHAR2(500);c_filename VARCHAR2(20);BEGINc_filename := 'test.xls'; --文件名,导出excel格式文件,也可以是txt等多种格式--生成文件db_file := fnd_gfm.file_create(file_name => c_filename,content_type => 'text/tab-separated-values',--文本分隔符,导出数据将按照excel的格式自动分格program_name => 'SQLGL');--用到的application的短名-- 输出块里面的内容,输出语句比如fnd_gfm.file_write_line(db_file, 'Hellow World'||chr(9)||'haha'); -- 输出内容chr(9),tab 符号,用来分割数据db_file := fnd_gfm.file_close(db_file); -- 关闭文件-- 打开文件URLurl := fnd_gfm.construct_download_url(fnd_web_config.gfm_agent, db_file,FALSE); --打开一个页面用来下载文件/* 注意这里要选flase,否则函数会调用系统的环境变量,就不会生成你想要的文件和文件类型,其实拆开fnd_gfm包可以看到*/fnd_utilities.open_url(url);END;5、FORM中限制下限LOV可选数据必须大于上限已选值在LOV的SQL中加where条件,例如::BLOCKNAME.TO_TIEM >= :BLOCKNAME.FORM_TIEM6、FORM中选中上限时,默认下限等于上限值在上限item的触发器WHEN-VALIDATE-ITEM中增加内容,例如::MAIN_B.TO_PERIOD := :MAIN_B.FROM_PERIOD;7、按照固定字符分割字符串取其中某段REGEXP_SUBSTR(’某字符串’,'[^.]+',从第几个字符开始,取截取后的第几段)取科目段很方便SELECT REGEXP_SUBSTR(’01.002.0003.004’,'[^.]+',1,2) FROM DUAL;--'[^.]+'按照.小数点来分割字符串,如果是按照-来分就应该写成'[^-]+'--1表示从第一个字符开始,--2表示取第二段,三个点将字符串分为四段,第二段为002这个方法要求数据库是R12,在11中不能用。
Oracle_EBS_学习手册三_应收模块

应收模块操作手册作者: hzs 创建日期: 2011年11月29日更新日期:年月日版本: 1.0目录应收模块概览 ........................................................................................................................... 3 应收模块的实现的功能 .................................................................................................... 3 应收模块与其他模块的关系 ............................................................................................ 3 应收模块的业务流程 .. (3)应收模块功能操作 ................................................................................................................... 4 应收模块的总体设置 ........................................................................................................ 4 建立应收职责 ........................................................................................................................... 4 应收职责关联用户 . (4)职责配置文件 ........................................................................................................................... 5 应收系统选项设置 ................................................................................................................... 6 应收发票相关设置 (8)事务处理来源的设置 ............................................................................................................... 8 事务处理类型的设置 ............................................................................................................. 10 标准通知单行的设置 ............................................................................................................. 11 自动会计的设置 (12)收款相关设置 (13)收款分类的设置 ..................................................................................................................... 13 收款来源的设置 ..................................................................................................................... 15 应收款活动的设置 .. (16)审批限额的设置 ..................................................................................................................... 17 创建收款银行 ......................................................................................................................... 18 将供应商创建为客户 . (20)发票管理功能 (22)应收发票录入 ......................................................................................................................... 22 贷项核销事务处理 ................................................................................................................. 23 收款管理功能 (26)电汇收款 ................................................................................................................................. 26 现金收款 .................................................................................................................................28 虚拟收款 ................................................................................................................................. 29 杂项收款 .................................................................................................................................33 收款-退款 . ............................................................................................................................... 36 票据收款 .................................................................................................................................38 附:创建票据背书虚拟银行 (40)应收模块概览应收模块的实现的功能客户管理收款管理应付发票管理相关设置应收模块与其他模块的关系应收模块的业务流程应收模块功能操作应收模块的总体设置建立应收职责路径:系统管理员:安全性->责任->定义应收职责关联用户路径:系统管理员:安全性->用户->定义ORCLE-EBS-学习手册职责配置文件路径:系统管理员:配置文件->系统 1 配置 HR:业务组2 配置 HR:安全配置文件3 配置 MO: Operating Unit4运行,复制系统初始数据请求参数描述:复制系统初始的数据:第一次添加组织时,是必须要运行的,否则AP\AR很多界面会报错,没运行时,相当于他们和库存还没有进行关联。
OracleERPEBS总帐模块GL概要培训101页文档

6
、
露
凝
无
游
氛
,
天
高
风
景
澈
。
7、翩翩新 来燕,双双入我庐 ,先巢故尚在,相 将还旧居。
8
、
吁
嗟
身
后
名
,
于
我
若
浮
烟
。
9、 陶渊 明( 约 365年 —427年 ),字 元亮, (又 一说名 潜,字 渊明 )号五 柳先生 ,私 谥“靖 节”, 东晋 末期南 朝宋初 期诗 人、文 学家、 辞赋 家、散
文 家 。汉 族 ,东 晋 浔阳 柴桑 人 (今 江西 九江 ) 。曾 做过 几 年小 官, 后辞 官 回家 ,从 此 隐居 ,田 园生 活 是陶 渊明 诗 的主 要题 材, 相 关作 品有 《饮 酒 》 、 《 归 园 田 居 》 、 《 桃花 源 记 》 、 《 五 柳先 生 传 》 、 《 归 去来 兮 辞 》 等 。
1
0
、
倚
南
窗
以
寄
傲
,
审
容
膝
之
易
安
。
46、我们若已接受最坏的,就再没有什么损失。——卡耐基 47、书到用时方恨少、事非经过不知难。——陆游 48、书籍把我们引入最美好的社会,使我们认识各个时代的伟大智者。——史美尔斯 49、熟读唐诗三百首,不会作诗也会吟。——孙洙 50、谁和我一样用功,谁就会和我一样成功。——莫扎特
oracle ebs 工作心得

PL/SQL 部分select a.sno,a.sname, (select a.sname from dual a where rownum =1) haa from song a;--对于括号里的查询select 列表里有个a 到底是指的是里面dual 还是外面的song表呢当dual 有字段sname时 a.sname 只的就是dual 如果dual根本没有字段sname 它会去外层查询的表里找如果还没有才会报错有的话就指的是外面的表所以最好明确要指的是谁这种情况简称最好保持不一致对于用外连接还是用内连接的一些理解:像此处我商品信息基本表里保存了一个“外键”商品类别ID(其实没有真正的建立外键),用以关联外键信息(商品名称等等),我觉得我在建立这个块视图的时候还是用外连接好,理由如下:我们先查看我们的商品类别的快速编码信息画面如下:现在我们删除第2行我们发现我们成功了(我们也应该让他成功不能因为这个电子类别已经被引用了而不允许删除再说如果要这么做也不科学到时系统大了我们也不确定这个快速编码会被哪些表引用我们当然可以通过外键来实现当被引用时不允许删除但这样就不够灵活了我们的数据库也不提倡建立外键),画面如下:假如如果我用内连接来连接类别这时我们在商品信息的form里将查不到以前用到过电子这一类别的所有记录行了分析如何判断是否用内连接还是用外连接:1:我们可以分析哪个表的记录更重要像这里我们的商品信息是更重要的由于种种原因可能商品类别会被篡改,删除等等我们不能因为这些就把原先有的商品信息过滤掉不让它们显示出来2:我们应该分析需求,比如我们要查看订单信息想知道有多少张订单即使没有订单行业没关系或者我只关心订单头的信息行的记录并不是很关心(也不是完全不关心这里假设只是稍微“关心”一下)此时我们也应该用外连接什么时候用内连接:我们要求“查出来的结果”相互依存有a必须有b 比如b表的信息很重要有b必须有a 比如不然b记录作废则此时我们就必须用内连接了举例如下:我们要查看某某商品的销售情况如多少数量等等比如订单头表为head 行表为line我们应该写如下语句select count(qty) from head h, line l where h.head_id=l.head_id and item_id=’abc’理由:(head 在左line 在右)1 如果有头记录没有行记录我们直接排除因为我们要数量没有行记录则没有数量这样我们排除掉了用左外连接2:如果有行记录没有头记录(正常情况,系统是不应该有这情况的)像这样的行记录我们应该是认为无效的作废的所以右外连接也不可取3:根据上面的分析我们应该用内连接我觉得我们到底用什么连接应该视我们需要什么样的数据?是否允许有a表的记录然后没有b表的记录?还是反之?还是必须都互相有?像上面的商品信息关联类型信息一样,我们可以这样问自己:1:我们的结果集里当没有类型信息是商品的信息还显示吗?2:还是我们要的结果集里必须有类型信息不然这样的商品信息不显示?3:我们不应该这样问,因为数据库里有商品信息表里是肯定会有类型信息的假设真这样的话用内连接和用外连接其实就结果一样了(商品信息表内连接商品类型信息和商品信息左外连接商品类型信息)像第一个例子:我们不应该让小小的不重要的商品类型信息影响到商品信息的查看商品信息在那form里是最主要的信息用户想看到的信息像第2个例子:我们需要数量但是有过只有订单头又有何用?如果有订单行没有头?这信息就是非法的无效的所以这样的我们就用内连接注意点1:有一个表song 记录如下:有一个表song1记录如下:我们执行如下查询select a.sno as a_sno,b.sname as b_sname from song a, song1 b where a.sno=b.sno(+)结果如下:结果使我们预想的那样没有错然后我再执行如下查询:select a.sno as a_sno,b.sname as b_sname from song a, song1b where a.sno=b.sno(+) and b.sname<>'flash'结果如下:为什么会这样呢?是因为我们加的b.sname<>'flash' 条件是在表song和song1通过连接a.sno=b.sno(+) 执行完之后再筛选的(那这里为什么第3行没有出来是因为第3行的B_SNAME 为null null也是不等于‘flash’的null 是未知的不等于任何值也不“不等于”任何职)分步:连接完之后的结果集为:再b.sname<>'flash' 筛选结果集当然就变成这个了如下:(那这里为什么第3行没有出来是因为第3行的B_SNAME 为null null也是不等于‘flash’的null 是未知的不等于任何值也不“不等于”任何职)它并不是先通过b.sname<>'flash'去筛选song1 表再连接的如果是先筛选的话其语句应该等同于下面的语句:select a.sno as a_sno,b.sname as b_sname from song a, (select * from song1 where sname<>'flash') b where a.sno=b.sno(+)其结果为:根据以上我们得出的结论是 b.sname<>'flash' 是连接结果集出来之后再对那个结果集进行筛选.注意点二:如果我们所加的条件是针对左边的表即select a.sno as a_sno,b.sname as b_sname from song a, song1b where a.sno=b.sno(+) and a.sname<>'flash'其执行效果和select a.sno as a_sno,b.sname as b_sname from (select *fromsongwheresname<>'flash')a, song1b where a.sno=b.sno(+)其结果集都为:因为左边的表为基表先筛选基表再去连接还是先连接再筛选连接结果其结果不难想象应该是一样只是执行顺不一样而已如果是内连接呢select a.sno as a_sno,b.sname as b_sname from song a, song1b where a.sno=b.sno and a.sname<>'flash'的执行结果和select a.sno as a_sno,b.sname as b_sname from(select* from song where sname<>'flash') a, song1b where a.sno=b.sno的执行结果也是一样的(虽然执行的顺序不同)根据上面我得出的结论是:1:类似如“其中一个表的字段(或相关的)= (或其他运算符)一个和另一个表无关的”where条件他是不参与连接的他是在连接后再对连接结果进行筛选的2:写左连接时(左表a 右表b)如果是进一步对a表进行删选如a.id=123 等等其和先对a表进行筛选再来和b左连接其效果是一样的(右连接也一样)如果是加b.id=123这样的条件我们就要注意了我们就要分析到底是要先对b进行筛选还是对最终结果的筛选因为他们的执行结果是不一样的不注意就会写错如果是要先筛选b 再连接我们就要这样写123=b.id(+);(其实我们可以理解为123是a表中的一个字段中的值对于a表每一行其值都为123 如果我们是要对最终结果的筛选直接写成123=b.id就好了3:通过上面2的分析对外连接的辅助表( 左连接时的右表右连接时的左表) 添加类似id=123的where条件时我们才需要格外主要是否要在id后面加(+)号因为其他情况其结果是一样的补充说明:现在执行如下查询:select a.sno as a_sno, b.sname as b_sname from song a ,song1bwhere a.sno=b.sno(+);其结果为:如果我只要连接b表中sname=’flash’的记录呢?即我要得出如下结果集:查询语句该怎么写呢可以这样写:select a.sno as a_sno, b.sname as b_sname from song a ,song1bwhere a.sno=b.sno(+) and'flash'=b.sname(+);这里我们可以理解为‘flash’为a存在一列,而且其列值总为flash即上面语句类似如下:select a.sno as a_sno, b.sname as b_sname from (select'flash'col ,song.* from song) a ,song1bwhere a.sno=b.sno(+) and a.col=b.sname(+);如果我要限制左边表我要的结果集是:只有a表中sno=5的才去连接b表中的sno该怎么写呢?我们这样写是错:select a.sno as a_sno, b.sname as b_sname from song a ,song1bwhere a.sno=b.sno(+) and a.sno=5(+) ;根据上面的变通写法我们可以把5理解为b中存在一列其列值总为5,即我们可以这样写:select a.sno as a_sno, b.sname as b_sname from song a , (select5as col , song1.* from song1) bwhere a.sno=b.sno(+) and a.sno=b.col(+)我们得到的结果集为:这正是我们要的结果.FORM 部分很多forms 触发器在多表单的应用程序中是否触发时有区别的需要特别留意,举例如下:---WHEN-NEW-BLOCK-INSTANCE--this trigger does not fire when focus changes from one form to another.When-New-Item-InstanceFires when the input focus moves to an item. Specifically, it fires after navigation to an item, when Oracle Forms is ready to accept input in an item that is different than the item that previously had input focus, even across multiple formsWhen-New-Record-InstanceIn a multiple-form application, this trigger does not fire when focus changes from one form to another关于FND_MESSAGE:FND_MESSAGE.show 与FND_MESSAGE.debug效果相同,用于把信息以最基本的方式显示给用户如:fnd_message.debug('WHEN-NEW-BLOCK-INSTANCE');FND_MESSAGE.hint这种方式不会弹出对话框给用户,而是显示在左下脚的状态栏上面这效果和message(‘abc’) 一样的如下所示:WHEN-NEW-BLOCK-INSTANCE 里Message() 是向下面的状态栏输出信息FND_MESSAGE.error以Error信息的方式显示给用户FND_MESSAGE.warn以选择信息的方式显示给用户,可以选择Ok或者Cancel,返回值分别是TRUE和FALSE WHEN-NEW-FORM-INSTANCEmessage('message WHEN-NEW-FORM-INSTANCE'); 报错可能是执行的时候状态栏还没出现资源等还没分配等等但fnd_message.debug('WHEN-NEW-BLOCK-INSTANCE');就算在pre_form里也可以弹出窗体WHEN-VALIDATE-ITEM 和pOST-CHANGE 的讨论WHEN-VALIDATE-ITEM:当值和上一次进入时的值不同时在光标离开当前项时触发如当进入list 项后如果选择一次且选的的还是进入前的值光标离开后不会触发如果改变了值光标不离开然后又把值改回来当光标离开后触发器还是会触发理解:只要当前项的值改变过(即使又改回来)当光标离开后该触发器就会触发后来在一个文本框中测试时发现了些不同当文本框进入时的值为2.00 时我改变为3 然后离开如果有如下触发器则执行顺序为POST-CHANGE>WHEN-VALIDATE-ITEM(大于表示优先执行)现在我再进入此时的值为3.00 如果我改为3 离开该项则还是会执行POST-CHANGE>WHEN-VALIDATE-ITEM 如果我再进入此时还是3.00 然后我修改为2 (不离开)继续修改为3.00 然后离开此时不会触发这2个触发器所以我得出如下结论:当进入文本项(时间为t1 )后然后修改值然后离开在执行上面那2个触发器的时候(POST-CHANGE 的时间为t2 WHEN-VALIDATE-ITEM为t3 由执行顺序可知t3>t2)即t1至t3 如果界面上的文本字符串没有改变过则不会触发上面之前考虑的list 项的WHEN-VALIDATE-ITEM触发器中为什么我把列表值改了一下然后马上又改回来(没有离开过)为什么会触发呢?这我理解为你改第一次时已经把那一次的值赋给了:块.项然后再改回来然后离开的时候form 判断因为:块.项改变过所以就会触发WHEN-VALIDATE-ITEM 了test 项不是在界面上也改了吗?后面又改回来为什么不触发呢?这可以理解为test 的改动不会马上赋值给:块.项所以在执行那2个触发器的时候:块.项的值在进入时至触发那2个触发器的时候没有改变过所以就不会触发了注:WHEN-VALIDATE-ITEM 当进入文本项的值为null 出的时候还是null 该触发器也会执行即当文本项为空如果文本项在进入和离开的过程即使动都没动过也会触发WHEN-VALIDATE-ITEM当离开时的值为空时:pOST-CHANGE 不会触发WHEN-VALIDATE-ITEM会查询完某一个块后会执行这个块里的所有pOST-CHANGEfnd_message.set_name('FND','FORM_RECORD_CHANGED');fnd_message.error; 的执行效果如下POST-CHANGE WHEN-VALIDATE-ITEM POST-TEXT-ITEM 的触发顺序如下:当鼠标离开一个项时如果有如下触发器被触发则其顺序为POST-CHANGE > WHEN-VALIDATE-ITEM > POST-TEXT-ITEM >我一次性给我的采购订单信息的行块新增了2条故意编写insert触发器让后面的一行的一行出错点击保存时发现2条记录都没有保存成功(on_insert会执行2次) 即只要有一个地方失败则就会回滚后面又测试了是否是因为先执行了错误的那一条的所以导致第2条没有保存然后发现就算先执行了正确的那条再执行错误的那条正确的那条也不会成功疑问:界面上的项设置了必需但数据库里的数据对应列为空我们还是可以从form上把它查出来如下所示当时这些值我是从form上插入的然后我手动执行update cux_porder_lines_syb set goods_price=null; 将采购单价清空然后查询等当明细时还是可以查出来然后修改这些行是如果不去动采购单价(可以进去但是不要光标在该项的时候修改该栏位即使清空也不行),我们还是可以保存的如下我已经将采购数量从保存成功了。
Oracle EBS 学习总结

一、HOST文件c://windows/system32/drivers/etc/hosts最后加入192.168.0.8 浏览器进入:8000user:yysoft_zhmpassword:yysoft2015二、TNS文件D:\DevSuiteHome_1\NETWORK\ADMIN\tnsnames.orayysoft=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) (CONNECT_DA TA=(SID=vis)))三、建表、同义词、序列-- Create tablecreate table CUX.HYP_VENDORS(VENDOR_ID NUMBER not null,VENDOR_CODE V ARCHAR2(20),VENDOR_NAME V ARCHAR2(50),ADDRESS1 V ARCHAR2(200),VENDOR_TYPE V ARCHAR2(1),CREATION_DA TE DATE,UPDATED_DATE DA TE);create or replace synonym HYP_VENDORSfor CUX.HYP_VENDORS;-- Create sequencecreate sequence hyp_vendors_sminvalue 1maxvalue 99999999start with 100001increment by 1;四、WHEN-NEW-FORM-INSTANCEgo_block(‘block_name’);app_window.set_window_position(‘child_block’,’center’,’parent_block’);五、QUERY-FINDgo_block(‘block_name’);六、PRE-INSERT:block_name.item_name := package_name.function_name(parameter1…);七、WHEN-NEW-RECORD-INSTANCEIf :block_name.item_name <> ‘N’ thenSet_block_property(‘block_name’,DELETE_ALLOWED |DEFAULT_WHERE,PROPERTY_FALSE);End if;八、记录组的建立Select_statement九、LOV的建立选择现有记录组LOV返回值LOV分配的项LOV高:4750,宽:3000十、开关服务器的步骤开机:按开机键登陆root 密码:Founder123进入数据库su –oracle 密码:oracle 输入:sh startDB.sh进入应用服务器su –applmgr 密码:applmgr 输入:sh startAPP.sh 关机:进入应用服务器su –applmgr 密码:applmgr 输入:sh stopAPP.sh 进入数据库su –oracle 密码:oracle 输入:sh stopDB.sh进入根目录su –root 密码:Founder123 输入:shutdown-h now十一、创建数据视图CREATE OR REPLACE VIEW view_name ASSelect_statement;十二、创建触发器CREATE OR REPLACE TRIGGER trigger_nameINSTEAD OF INSERT OR UPDATE OR DELETE ON view_nameFOR EACH ROWDECLAREBEGINIF inserting THENINSERT INTO table_name V ALUES();END IF;IF updating THENUPDA TE table_name set item = vlaue WHERE primary_key = primary_key;END IF;IF deleting THENDELETE FROM table_name WHERE primary_key = primary_key;END IF;END;十三、创建包规范和包体CREATE OR REPLACE package_name ISFUNCTION function_name(parameter_name IN | OUT | IN OUT V ALUE_TYPE, …) RETURN V ALUE_TYPE;PROCEDURE procedure_name(parameter_name IN | OUT | IN OUT V ALUE_TYPE, …);END package_name;CREATE OR REPLACE PACKAGE BODY package_name ISFUNCTION function_name(parameter_name IN | OUT | IN OUT V ALUE_TYPE, …) RETURN V ALUE_TYPE ISBEGINEND;END package_name;十四、五个固定字段的维护LAST_UPDATE_DATE,LAST_UPDATED_BY,LAST_UPDATE_LOGIN,CREATION_DATE,CREATED_BY数据块级别触发器PRE-INSERT、PRE-UPDATE中加入fnd_standard.set_who;十五、FORM中的对齐规则数字是右对齐字符,文字,日期是左对齐十六、设置数据块属性,才可以做增删改数据块的键模式:可更新数据块设置主键:是项主键:是设置主键初始值::SEQUENCE.my_sequence.NEXTVAL十七、子类化所有显示项都要子类化TEXT-ITEMLISTCHECKBOXCURRENT_RECORD_INDICATOR十八、主子表在子表中建立主从关系,主数据块要正确,建立后,关系在主数据块上,子表中的外键的属性,从项中复制值:primary_block.primary_key十九、从一个FORM跳转到另一个FORM中在第一个FORM中加入按钮,加入WHEN-BUTTON-PRESSED触发器代码写:fnd_function.execute(FUNCTION_NAME => ‘form_name’,OPEN_FLAG => ‘Y’,SESSION_FLAG => ‘Y’,OTHER_PARAMS => ‘parameter_name = ’ || :block_name.item_name);二十、格式掩码设置999,999,999,999.00 当为零时显示.00999,999,999,990.00 可以显示0.00yyyy-mm-dd 日期格式掩码等二十一、查询PL/SQL数据字典SELECT ao.object_nameoFROM All_Objects aoWHERE ao.object_type LIKE'%SEQUENCE%'AND ao.owner LIKE'%APPS%';SELECT *FROM user_triggers utWHERE ut.trigger_name LIKE'%HYP%';二十二、异常声明:lv_error V ARCHAR2(200);lv_raise EXCEPTION;抛出:RAISE lv_raise; --引发异常异常处理:EXCEPTIONWHEN lv_raise THENFND_MESSAGE.SET_NAME(‘application_name’,’name’);FND_MESSAGE.SET_TOKEN(‘token_name’,lv_error);APP_EXCEPTION.RAISE_EXCEPTION;二十三、注册请求系统管理员→并发→方案→可执行系统管理员→并发→方案→定义系统管理员→安全性→请求二十四、请求为:PL/SQL存储过程PROCEDURE procedure_name(errbuf OUT NOCOPY V ARCHAR2,retcode OUT NOCOPY V ARCHAR2)IS BEGINfnd_file.PUT_LIEN(); --在查看输出中输出fnd_file.LOG(); --在日志中输出END;二十五、FORM中启动请求触发器:WHEN-BUTTON-PRESSEDDECLARElv_number NUMBER;BEGINlv_number := fnd_request.submit_request(application => 'appl_name', program => 'request_short_name',description => '',start_time => '',sub_request => FALSE,argument1 => argument1);END;二十六、PL/SQL游标DECLARECURSOR cursor_type ISselect_statement;cursor_name_rec cursor_type%ROWTYPE;BEGINFOR cursor_name_rec in cursor_type LOOPdbms_output.put_line(output_language);END LOOP;END;二十七、公用代码建立Application Developer→应用产品→代码→公用二十八、公用代码的查询SELECT lval.lookup_code, --制作LOV时,存入数据库的项lval.meaning,lval.description --制作LOV时,显示的项FROM fnd_lookup_types ltype,fnd_lookup_values lvalWHERE ltype.lookup_type = lval.lookup_typeAND lval.lookup_type = 'CUX_DEST_OFFICE'AND nguage = 'ZHS';二十九、子菜单制作先做一个菜单,把这个菜单放置在主菜单下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12.81、冲销日记账1)原始借:租金10,000 本位币美元贷:现金10,000 本位币美元冲销借:现金10,000 本位币美元贷:租金10,000 本位币美元2)可以创建冲销日记账分录来冲销应计、估计、临时调整和重新分类,或更正错误。
3)方法:转换借贷项:通过转换借项和贷项金额来冲销日记账分录。
红字冲销:通过将原始日记账金额从正值改为负值来冲销日记账分录。
4)日记账> 输入> 复核日记账(B)其他活动日记账> 生成> 冲销2、自动冲销日记账1)可以自动冲销上一个月的应计日记账分录,并自动将其过账(如果需要)。
2)自动冲销日记账的前提条件:--日记账余额类型为“实际”--日记账类型已启用“自动冲销”选项--日记账已过帐,但尚未冲销--日记账冲销期间为“打开”或“将来可输入”3) 设置> 日记账> 自动冲销(AutoReverse)3、日记账分录报表提供:会计结算日期、类别、日记账名称、参考、日记账批4、与Oracle General Ledger 集成--在Excel中创建日记账--通过Web ADI 加载到GL_INTERFACE 表--从接口表中提交“日记账导入”-从Web ADI中与加载流程同时提交-从Web ADI 中作为独立的提交流程提交-从Oracle General Ledger中使用“导入日记账”窗口提交5、Web ADI 的核心功能1)布局功能--从布局中删除或向布局中添加字段--指定字段在布局中的位置--为布局中的字段分配默认值--保存布局,可以由具有适当责任的某个人来定义,然后由整个站点使用2) 文本导入功能--将文本文件数据导入到桌面文档中--创建可以修改和重复使用的映射模板,根据需要更改数据临时的移动目标。
3) 安全功能--将Web ADI 功能与菜单关联,创建用作安全配置文件的自定义访问点--将菜单附加到分配给用户的职责中,用用户级别限制Web ADI访问--为自助连接添加默认参数:强制用户在其桌面上生成文档时使用预定义的参数--将表单功能与用户的菜单关联,已授予其访问集成器的权限4) Internet 计算功能--集中部署,要操作词产品,客户机只需要浏览器和Excel--在Web 上运行6、通过Web ADI 进行桌面集成1) 集成器:Oracle General Ledger-日记账集成器、Oracle General Ledger-预算集成器、创建资产集成器、实地盘点集成器、HRMS集成器2)Oracle General Ledger-日记账集成器:--根据可定义的布局,自动生成基于电子表格的日记账分录工作表--允许通过复制和粘贴日记账行,然后进行增量式修改来快速的输入日记账--允许您定义可以反复修改和加载的日记账模板--使用安全措施和交叉验证规则以及其他引用字段全面验证账户--通过Oracle General Ledger开放接口将日记账加载到Oracle General Ledger7、导入日记账日记账> 导入> 运行1)将子分类帐和源系统数据导入Oracle General Ledger--定义分类账、币种、帐户、日记账来源和类别设置Oracle General Ledger,以接受日记账导入数据--运行“优化”程序,并定义并发程序控件。
--从源系统导出数据,并填写GL_INTERFACE表。
--运行“日记账导入”流程--使用“执行日记账导入”可督查导入的所有日记账分录的状态--将“日记账导入”流程创建的日记账分录过账8、暂记过账如果已为每个日记账来源和类别定义了一个暂记帐户,则“日记账导入”程序会将具有无效帐户组合的分录过账至预定义的暂记帐户。
典型错误:-不允许明细过账-帐户在该日期被禁用-禁用帐户-帐户代码组合无效-帐户代码组合标识不存在9、导入日记账参考1)汇总日记账:将所有来源的事务处理汇总到一个日记账行中2)明细日记账:在Oracle GL中为日记账行保留所有来源相信信息10、日记账导入验证流程--加载至GL_INTERFACE表--按来源和组织标识导入日记账--是否有错误?--有很多错误> 在“日记账导入”中删除来源> 更正源系统中的错误> 重新加载至Interface表--有少部分错误> 联机更正日记账导入--没有错误> “日记账导入”流程创建一个可过账的日记账批12.91、会计科目设置管理器步骤:--定义法人实体(optional)--创建会计科目设置结构--完成分类账选项设置--完成报告选项设置(有时必需)--将平衡段值分配给法人实体(op)--将平衡段值分配给分类账(op)--定义子分类帐会计选项(有时必需)--定义业务实体,如果使用的是分配了法人实体的会计科目,则需要为主要分类账定义业务实体(op)--定义公司内平衡规则(有时必需)--定义排序,为分类账和报告币种定义会计和报告排序选项,对每个分类账重复此步骤(op)--完成主要分类账到辅助分类账的映射(有时必需)--完成会计科目设置--执行附加的Oracle General Ledger设置步骤(op)2、定义辅助分类账> 数据转换层????1)余额余额层分类账仅以另一种会计科目表示维护主要分类账余额。
可以使用“Oracle General Ledger合并”将主要分类账余额传送至该辅助分类账。
如果余额层辅助分类账使用的币种与主要分类账不同,则使用“Oracle General Ledger 合并”将余额从主要分类账的余额层报告币种传送至余额层辅助分类账。
如果相同,表示的是主要分类账的折算余额。
2)日记账日记账层辅助分类账以其他会计科目表示主要分类账日记账分录和余额。
仅通过“总账过账”程序进行维护。
默认情况下,使用下列日记账来源的日记账不会传送至日记账层辅助分类账:@移动/合并@移动/合并冲销@重估3)子分类账子分类账层辅助分类账维护子分类账日记账、日记账分录和余额的其他会计科目表示。
通过同时使用Oracle SubLedger Accounting 和“总账过账”程序进行维护默认情况下,下列类型的日记账将通过“总账过账”程序而非Oracle Subledger Accounting (OSA)复制到辅助分类账:@由不使用OSA的Oracle 子分类账创建的日记账@在主要分类账中输入的人工日记账分录@来自电子表格或Oracle系统,且通过主要分类账的GL接口表输入的日记账默认情况下,使用日记账来源的日记账不会传送至子分类账层辅助分类账:@移动/合并@移动/合并冲销@重估@使用OSA的子分类账来源4)仅限于调整仅限于调整辅助分类账表示的会计信息不完整,仅包括调整、人工调整或由Oracle SubLedger Accounting 创建的自动调整。
步骤:@创建人工调整,可直接在辅助分类账中输入人工日记账分录@使用OSA创建自动调整,需要将一种子分类账会计方法同时分配给主、辅分类账,并定义OSA规则指示系统仅将子分类账会计调整传至此辅助分类账。
必需与关联的主要分类账拥有相同的科目表、会计日历/期间了类型组合和币种。
3、报告币种折换层--余额:维护折算的余额--日记账:使用“总账过账”程序维护以报告币种表示的日记账和余额--子分类账:同时使用Oracle SubLedger Accounting 和“总账过账”程序维护来源分类账的子分类账日记账、GL日记账和余额的币种表示。
4、主分类账与辅助分类账关系?:辅助分类账以另一种会计科目表示方法表示主要分类账的会计数据,它在下面一个或多个方面与主分类帐不同:科目表、会计日历/期间类型组合、币种、子分类账会计方法、分类账处理选项分类账与子分类账关系?P28812.101、汇总帐户1)如果某帐户的余额由若干个明细帐户的余额汇总而成,则该账户称为汇总帐户。
2)使用汇总帐户可以执行联机汇总查询,并加快财务报表、成批分配和经常性日继续公式的处理速度。
3)不能直接向汇总帐户输入或过账事务处理。
2、常用的维1)公司:用于指明法人主体的段。
如按主要行业、国家内的区域或国家组汇总不同的公司。
2)成本中心:用于指明企业的功能区(如会计、设备和发运等)的段。
3)帐户:指明“自然”帐户(如现金、应付账款或工资费用)的段。
4)产品:可以将产品汇总到产品组(如个人计算机、存储设备等)。
5)地区:指明地理位置的段。
3、明细帐户与汇总帐户比较1)汇总帐户--将日记帐过账到对应的明细账户时,系统将更新汇总帐户--允许进行联机汇总查询--加快并发处理2)明细帐户--允许直接过账业务事务处理和日记账4、累计组--是某指定段的所有父段值的集合--属于某个累计组的值必需包含若干个子值的父值--父值和子值属于同一值集,该值集附加在键弹性域段中5、所创建的汇总账户数=明细段值的数量(具有“D”值的段)* 父段值的数量(具有“累计组名称”的段)* 1(具有“T”值的段)模板值:--D 模板将为每一个明细段创建并维护一个汇总帐户。
在所有模板值中,此值所创建的汇总帐户最多。
--T 模板将创建并维护一个汇总了所有明细段余额的汇总帐户。
--累积组模板将为每个分配到指定累计组的父段值创建并维护一个汇总帐户。
6、“维护汇总模板”程序如果上次分类账过账后添加了新的明细帐户,则过账流程将自动更新汇总模板。
7、如果更改了弹性域层次结构,则运行“增量添加/删除汇总模板”程序,如果只更新了明细帐户,则运行“维护汇总模板”程序12.10一、Oracle General Ledger 高级日记账1、经常性日记账为每个会计期都重复执行的事务处理定义经常性日记账,如应计费用、折旧费用和分配1)类型:--骨架日记账,它的金额会因会计期而异。
不必输入公式,输入帐户组合即可。
--标准日记账,在每个会计期使用固定帐户组合和固定金额,可以使用常数输入日记账。
--公式日记账,使用公式来计算金额的经常性分录。
2)日记账> 定义> 经常性3)公式经常性日记账--输入:在相应的账户中,根据列出的帐户输入金额或余额--加:将上一行的金额或帐户余额加到此行--减:从此行中减去上一行的金额或帐户余额--乘:用最新的金额或帐户余额除以在此行输入的数额--除:用最新的金额或帐户余额除以在此行输入的数额。
如果金额为正,则为借记帐户。
如果为负,则为贷记帐户。
经常性日记账:公式行:自动抵销行:(行号为9999,与公式行属于同一日记账)2、成批分摊一种单个日记账分录公式,用于在一组成本中心、部门、分部或其他组成部分之间分配收入和费用。
1)多行使用一个公式,公式是A*(B/C)12.13.20102)使用公式A*(B/C)--A 代表要分配的“成本集”。