摘要: 1. 目的:使用API取到应收事务处理的付款条件(实现标准功能的付款条件和到期日)2. 实现方法:调用 ARP_TRX_DEFAULTS_3.get_term_default获得付款条件3.实现代码:[c-sharp:collapse] + expand sourceview plaincopyprint?/*=======================================================*FUNCTION/PROCEDURE*get_cust_trx_type_id*DESCRIPTION:*获得付款方式的id*ARGUMENT:*p_customer_id:客 阅读全文
posted @ 2012-11-15 11:44 刘伟聪 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 在EBS实施中,经常遇到从外部传进来一个被登记的销售订单,需要通过程序进行销售订单的挑库发放下面是对SO挑库发放的实现步骤的详细实现:1.对销售订单的有效性验证 1)检查销售订单的行是否被完全传回客户化表 2)验证销售订单的关键字段 3)检查子库存是否启用了货位控制,如果启用了货位控制,没有生成货位,则调用API生成货位 4)调用API检查子库存中的某一个物料的现用量和可用量2. 销售订单发放 调用API进行销售订单发放 发放成功: 返回一个批号,这个批号作为挑库发放的参数3. 销售订单挑库发放 调用API进行挑库发放 发放前 行状态:准备发放下一步:挑库发放判断依据:销售订单发放生成的批号作 阅读全文
posted @ 2012-11-15 11:42 刘伟聪 阅读(1089) 评论(0) 推荐(0) 编辑
摘要: 目的:模拟EBS Form界面的功能,调用标准的API实现自动处理物料搬运单。实现思路:1. 先创建一个客户化的表,这个表中用来保存物料搬运单的一些信息。2. 调用标准的API:inv_loc_wms_pub.create_locator动态创建货位(根据项目、任务和库存三个段 来创建)。3. 调用标准的API:inv_quantity_tree_pub.query_quantities检查某一库存组织的某一子库存下某一物料的现用量和可用量。4. 调用标准的API:inv_mo_line_detail_util.insert_row在MMTT表中插入一条记录。5. 调用标准的API:INV_R 阅读全文
posted @ 2012-11-15 11:40 刘伟聪 阅读(2372) 评论(0) 推荐(0) 编辑
摘要: 在标准Form中提交客户化请求,通过使用Form的个性化,完全可以实现这个需求。下面这个例子是在发票界面上打印付款申请,使用工具栏上活动--打印付款申请提交请求。首先创建菜单按钮,这个就不赘述了,触发器事件选择WHEN-NEW-FORM-INSTANCE其次,响应打印按钮 ,这里使用执行过程这个内置项来调用请求,调用的过程代码如下 [c-sharp] view plaincopyprint?PROCEDUREsubmit_pay_request(p_org_idINVARCHAR2,p_invoice_id_listINVARCHAR2)ISl_successBOOLEAN;l_request 阅读全文
posted @ 2012-11-15 11:34 刘伟聪 阅读(1892) 评论(2) 推荐(0) 编辑
摘要: 在Oracle EBS二次开发中经常会使用下拉列表,下拉列表一般是写死的,实际上也是可以使用Record Group进行动态设置,实现的步骤如下:1,首先定义一个Record Group假设为TEST_REC_GP,SQL如下:[c-sharp] view plaincopyprint?SELECTcr.general_namelookup_code,cr.medicament_categoryvalueFROMcux_catalog_53_rulescrSELECT cr.general_name lookup_code, cr.medicament_category val... 阅读全文
posted @ 2012-11-15 11:30 刘伟聪 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 本文记录了一些在Form开发过程中积累下来的技巧:Form中提交并发请求非数据库字段查询处理控制Form为只查询控制Item的属性Trigger的执行层次按钮处理逻辑日历相关1,Form中提交并发请求在提交请求之前,首先需要验证块,如果某些必填项没有填的话当然不能提交请求。[c-sharp] view plaincopyprint?APP_STANDARD.APP_VALIDATE(BLOCK_SCOPE);IF(notFORM_SUCCESS)THENRaiseform_trigger_failure;ENDIF;IF:SYSTEM.FORM_STATUS='CHANGED' 阅读全文
posted @ 2012-11-15 11:05 刘伟聪 阅读(2582) 评论(0) 推荐(0) 编辑
摘要: 错误信息:无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 --------------------------------------------------------------------------------结束标记 'BATCH_DETAILS' 与开始标记 'PartyName'不匹配。处理资源 'http://erptest.easttop.com.cn:8000/OA_CGI/FNDWRR.exe?temp_id=3364...</BATCH_DETAILS>- 阅读全文
posted @ 2012-11-15 11:03 刘伟聪 阅读(1102) 评论(0) 推荐(0) 编辑
摘要: 在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般来说都是做一些条件限制。在不修改标准Form的fmb文件的前提下,可以通过Custom.pll来实现。一、Custom.pll的工作机制在EBS中大部分Form都是在TEMPLATE.fmb的基础上创建的,另外还有一些HR模块的Form是在HRTEMPLT.fmb的基础上创建的,这些模板Form在form级的触发器中会去调用custom.pll这些Form级的触发器为:ZOOMWHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE WHEN-NEW-RECORD-INSTANCE WHEN-NE 阅读全文
posted @ 2012-11-15 11:01 刘伟聪 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 使用Custom.pll修改标准Form的LOV中描述了如何使用Custom.pll修改LOV,现在介绍另外一种不需要修改fmb文件修改Form LOV的方法,使用Form的个性化工具。本文结合一个简单的Form做描述,这是没有个性化之前的LOV,LOV取自表FND_USER,没有做任何条件限制。首先打开Form的个性化工具,点击菜单帮助–诊断–自定义代码–个性化:一、选择触发器事件以及触发器对象在打开的个性化窗口中如下图,其中触发器选择WHEN-NEW-ITEM-INSTANCE,触发器对象选择HEADER.HEADER_ITEM(对应LOV的Item),保存:二、确定触发器动作 1.创建L 阅读全文
posted @ 2012-11-15 11:00 刘伟聪 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 在Oracle XML Publisher中需要实现每页打印固定行数:在程序中进行处理,这种方式需要将数据和格式混在一起,而且处理起来比较麻烦,搞得不好程序性能也会受到大的影响使用XSL命令来处理,这种方式加上条件判断,可以比较简单的实现固定行数的打印我设计了一个凭证打印,每张凭证打印只能打印5行,在没有限制行数的情况下,编写的标记如下:<?for-each:G_JE_LINE_NUM?><?JE_LINE_NUM?><?ACCOUNTED_CR?><?ACCOUNTED_DR?><?DESCRIPTION?><?end for 阅读全文
posted @ 2012-11-15 10:59 刘伟聪 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 1.在工具中添加调用报表的功能条件:触发器事件:WHEN-NEW-FORM-INSTANCE活动:类型为:菜单菜单项:specialn n为1..6菜单标签:打印xx报表2.对specialn 做设定条件:触发器事件specialn活动:a.设定全局变量: 类型为特性,对象类型为:全局变量 目标对象:全局变量名(例如:XX_NUM) 特性名称:Value 值:=select'101'||':'||:TOMAI_MAIN_HEADER_BLK.REQUEST_NUMBER||':'||:TOMAI_MAIN_HEADER_BLK.REQUEST_N 阅读全文
posted @ 2012-11-15 10:52 刘伟聪 阅读(595) 评论(0) 推荐(0) 编辑
摘要: EBS版本:12.0.0以上在Oracle EBS 12 之前,很多项目中希望按照某些规则进行总账数据的屏蔽只能通过客户化开发来实现,如按照OU进行凭证的屏蔽,同时FSG报表的数据也需要按照同样的规则屏蔽相关数据.这样的要求需要开发人员修改较多的数据库视图定义和PL/SQL程序,同时导致EBS的升级是一个较麻烦的事情。在Oracle EBS 12之中,Oracle对数据安全性的控制作了独立的设计。后续文章中,我将结合功能和技术对总账的数据安全性控制做一个介绍,由于内容设计系统功能和技术层面,因此会分做多篇文章来描述。数据访问权限集(Data Access Set)介绍Oracle EBS12 阅读全文
posted @ 2012-11-15 10:40 刘伟聪 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 本文描述实现总帐数据访问安全性控制的设置步骤一、定义数据访问权限集路径:总账超级用户–>设置–>财务系统–>数据访问权限集定义数据访问权限集有以下主要3个步骤:输入数据访问权限集的信息:名称、说明、科目表、日历、访问权限集类型和默认分类账给数据访问权限集分配分类账/分类账集设置权限:只读、读和写定义示例1)全部分类账类型访问权限集类型:全部分类账访问详细资料中选择分类账/分类账集的名称设置权限:Read and Write2)平衡段值类型访问权限集类型:平衡段值访问详细资料中选择分类账/分类账集的名称和特定的平衡段值:指定只能读写平衡段值为01的设置权限:Read and W 阅读全文
posted @ 2012-11-15 10:40 刘伟聪 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 下面介绍数据访问安全性控制两个不足的地方一、凭证查找在凭证查找的窗口中,凭证批号和凭证号的列表没有按照数据安全的设置进行屏蔽,因此会出现列表能够选择出来的凭证批和凭证是无法查找出来的,这样给用户的使用带来了一定的不方便。如下:注:此凭证通过具有权限的职责查询出来如上图的凭证:06-NOV-02 Project Mfg To Consolidation USD此凭证所有的凭证行的账户组合的平衡段值都是03的,而我的职责分配了数据权限集只能访问平衡段值为:01的。但是这个凭证名称在查找窗口的凭证列表中还是出现的,只是我选择了它之后查找没有结果,如下图: 二、账户组合录入在总账模块输入账户组合时,如 阅读全文
posted @ 2012-11-15 10:39 刘伟聪 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 下面介绍启用了数据访问安全性控制之后可能会遇到的问题一、凭证导入失败如果职责设置了受限制的数据访问权限集,很有可能在进行凭证导入的过程中发生错误,由于导入过程中导入程序会检测用户是否有读取数据的权限,如果发现GL_INTERFACE表中包括了一些用户无法在总账模块操作的数据,导入程序会报出如下的错误代码和信息:EM29 You do not have access to this ledger and account combination.二、无法打开会计期无法打开会计期,打开会计期的按钮是灰色的,如下图: 这是由于用户的职责不具备完全访问分类账数据的权限,只要切换到具备完整数据访问权限的职 阅读全文
posted @ 2012-11-15 10:39 刘伟聪 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 本文介绍在客户化开发的程序中需要考虑总账数据访问安全性的控制一、Form界面开发如果Form界面中需要引用账户组合,同时希望账户组合受到数据安全性控制,需要增加如下的工作:添加GLCORE.pll库文件到Form中在账户组合字段的WHEN-VALIDATE-ITEM触发器中添加如下的代码来验证权限gl_flexfield. validate(ledger_id NUMBER, flexmode VARCHAR2, flexvalue VARCHAR2, alevel VARCHAR2, full_validation BOOLEAN, edate DATE) 这个过程验证如果失败后,过程中会抛 阅读全文
posted @ 2012-11-15 10:39 刘伟聪 阅读(1266) 评论(0) 推荐(0) 编辑
摘要: 在数据开发应用中,很多时候需要对数据进行排序,但是在Oracle 数据库中,有空值一说(NULL)。如果一个列中有的值是空的,则如果对此列进行排序的话,空值的行将被排序放到后面,如我对HR模式下的EMPLOYEES员工表按照佣金比率列进行排序的话,SELECT t.employee_id, t.last_name, t.commission_pctFROM employees tWHERE t.employee_id BETWEEN 178 AND 181ORDER BY t.commission_pct结果如下:179 Johnson 0.10178 Grant 0.15180 Taylor 阅读全文
posted @ 2012-11-15 10:27 刘伟聪 阅读(343) 评论(0) 推荐(0) 编辑