EBS WEBADI导入日记账 客户化账户组合规则校验
近期项目需求对EBS中WEBADI导入日记账时,在加载数据时需要对账户组合额外进行客户化的校验,需要能够做到将校验结果体现在WEBADI模板的数据上,并且对每条错误数据都单独报错。
项目上的方案是调整fnd_flex_keyval这个程序包,同时通过多种限制,将使用范围限制在WEBADI的情况下才会再走一步额外的客户化校验,将范围将至最低。
这边近期进行了初步研究,仍未实践,但通过观察代码估计,以下方法是可行的:
1. 通过查看webadi进行日记账导入的集成器的定义,可以找到,webadi进行账户组合校验时使用了类oracle.apps.gl.journalwizard.validators.AccountingFlexValidator。
2. 反编译AccountingFlexValidator可以看到其中的985行
BneFlexStructure localBneFlexStructure = BneFlex.validateSegs(paramBneWebAppsContext.getJDBCConnection(), str6, paramBneFlexStructure.AppShortName, paramBneFlexStructure.IDFlexCode, paramBneFlexStructure.IDFlexNum, paramString, null, str1, null, -1, str5, null, null, false, false, paramBneWebAppsContext.getRespApplicationID(), paramBneWebAppsContext.getResponsibilityID(), paramBneWebAppsContext.getUserId(), this.m_upsDffPackage != null);
3. 上述BneFlex.validateSegs,位于oracle.apps.bne.utilities.oa.BneFlex
4. 反编译BneFlex,
可以看到validateSegs函数中调用了fnd_flex_keyval.validate_segs
5. 综合上述信息,修改思路如下:
A. 首先创建客户化package:CUX_FND_FLEX_KEYVAL,其中的校验存储过程validate_segs的参数与fnd_flex_keyval.validate_segs完全一致,
并且CUX_FND_FLEX_KEYVAL.validate_segs中会先调用fnd_flex_keyval.validate_segs,当fnd_flex_keyval.validate_segs校验成功时,才会进行额外的客户化账户组合的校验
B. 创建类CuxBenFlex,在BenFlex基础上调整,将其中fnd_flex_keyval.validate_segs全部替换为CUX_FND_FLEX_KEYVAL.validate_segs
C. 修改AccountingFlexValidator,调整其中的BneFlex.validateSegs为CuxBneFlex.validateSegs
理论上重编译为class文件并重启oacore后,可以生效。
之后实践完成之后我会在此随笔中补充实践结果。
EBS WEBADI导入日记账 客户化账户组合规则校验的更多相关文章
- EBS动态创建账户组合实现
目的:使用程序动态创建账户组合.如果账户组合存在的话,返回存在的ID,不存在的话就动态创建账户组合并返回id. 实现步骤: 1. 得到账簿的CHART_OF_ACCOUNTS_ID 2. 得到账户弹性 ...
- python 导入re模块语法及规则
正则表达式是功能比较强大的模块,应用在很多地方,抓网页,数据分析,数据验证等,下面讲述python 导入re模块语法及规则. 1,re模块语法 re.match 从头开始匹配 re.search 匹配 ...
- springMVC:校验框架:多规则校验,嵌套校验,分组校验;ssm整合技术
知识点梳理 课堂讲义 学习目标 能够阐述表单验证的分类和区别 能够运用表单验证的常用注解 能够编写表单验证的示例 能够编写SSM整合的应用案例 能够总结SSM整合的步骤 1 校验框架 1.1 入门-视 ...
- 案例17-validate自定义校验规则校验验证码是否输入正确
1 自定义校验规则代码 <script type="text/javascript"> //使用validate插件进行表单的校验 $(function(){ $(&q ...
- EBS GL 日记账行“账户说明”段说明显示不全
问题描述: 路径:总帐管理超级用户/日记帐/输入 如下图所示,日记账行的“账户说明字段”段值说明显示不全 解决方法: 路径:总帐管理超级用户/设置/财务系统/弹性域/关键字/段 如下图所示,找到相应的 ...
- Oracle EBS 导入日记账报错
EM29/EM01 ED01
- [GE]导入图片至Word,然后按规则命名(2/2)
#将所有docx文件改成可读 Set-ItemProperty -Path "e:\screenshot\*.docx" -Name IsReadOnly -Value $fals ...
- [APAC]导入图片至Word,然后按规则命名(2/2)
#将所有docx文件改成可读 Set-ItemProperty -Path "e:\screenshot\*.docx" -Name IsReadOnly -Value $fals ...
- Interface_GL通过gl_interface导入日记账(案例)
2014-06-17 BaoXinjian
随机推荐
- 团队项目需求心得——慢阻肺疾病管理APP
一.项目介绍: 先上图: 这是我们小组开发项目的系统构成图. 本项目研发面向家庭/社区,对稳定期中慢阻肺患者病情和环境全方位监测.简单病情趋势分析和患者行为干预,并且提供患者与家庭医生和专家沟通渠道的 ...
- hadoop管理命令
-help 功能:输出这个命令参数手册 -ls 功能:显示目录信息 示例: hadoop fs -ls hdfs://hadoop-server01:9000/ 备注:这些参数中,所有的hdfs ...
- 递归----Python
#递归不仅仅是学习python中会遇到的一些问题,在学习每一个语言的过程中都会遇到递归.使用递归可以让复杂的循环变得简单. 递归:程序调用自身的行为 1.写一个数的阶乘 #递归 def factor( ...
- Problem A: STL——灵活的线性表
Description 数组和链表是我们熟知的两种线性结构,但是它们不够灵活(不能同时实现直接插入.删除和访问操作),给你若干种操作,你能通过一种灵活的容器,实现它们的功能吗? 操作1:Build a ...
- 关于“load”方法
load是一个方法,在程序文件中,只有ruby遇到它的时候才会执行.Ruby不会搜索整个文件去执行load命令.也就是说,当Ruby解释器遇到它的时候,它才会去寻找它要加载的文件.这意味着需要加载的文 ...
- Javascript设计模式记录
prototype与面向对象取舍 使用prototype原型继承和使用面向对象,都可以实现闭包的效果.那么这两个的选择点,就是方法会不会产生多个实例. 例如,我们需要做一个闭包数组,并给他提供一个添加 ...
- 20175223 实验一 《JAVA开发环境的熟悉》实验报告
目录 北京电子科技学院(BESTI)实验报告 实验名称:实验一 Java开发环境的熟悉 实验内容.步骤与体会: 一.实验一 Java开发环境的熟悉-1 二.实验一 Java开发环境的熟悉-2 步骤: ...
- Qt 文件的操作
文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提 ...
- [Hadoop] 启动HDFS缺少服务
启动Hadoop后使用JPS命令查看进程,发现只有NameNode和NodeManger. 原因:格式化两次namenode.导致namenode和datanode中的CID不一致. $ hadoop ...
- mybatics 与jpa
mybatics,dao层接口,mapper: public interface UserMapper { @Select("SELECT * FROM T_ROLE WHERE ROLE_ ...