EBS做付款的时候有时候会出现FRM-40654记录已更新

问题描述:

   EBS做付款的时候有时候会出现FRM-40654记录已更新,导致无法进行下一步操作的问题。

解决方法(只是其中可能性之一,其他也可能是锁表,最后附上锁表的查询SQL):

SELECT S.TITLE,S.DESCRIPTION
  FROM FND_DESCRIPTIVE_FLEXS_VL S
 WHERE S.TITLE LIKE '%支票地址%';
检查结果是否有空格,如果有空格,将空格去掉,然后在界面上进行如下操作:
1.进入到说明性弹性域段,查出标题为“支票地址”的内容
2.去掉冻结弹性域定义的勾,然后将代码为DEFAULT的勾去掉,保存,勾上冻结弹性域定义,保存并编译即可。如下图所示:

payment

查询解锁并解锁命令:

SELECT DOB.OBJECT_NAME TABLE_NAME,
       LO.LOCKED_MODE,
       LO.SESSION_ID,
       VSS.SERIAL#,
       VPS.SPID,
       VSS.ACTION ACTION,
       VSS.OSUSER OSUSER,
       VSS.PROCESS AP_PID,
       VPS.SPID DB_PID,
       'ALTER SYSTEM KILL SESSION ' || '''' || LO.SESSION_ID || ',' ||
       VSS.SERIAL# || ''';' KILL_COMMAND
  FROM V$LOCKED_OBJECT LO, DBA_OBJECTS DOB, V$SESSION VSS, V$PROCESS VPS
 WHERE LO.OBJECT_ID = DOB.OBJECT_ID
   AND LO.SESSION_ID = VSS.SID
   AND VSS.PADDR = VPS.ADDR
 ORDER BY 2, 3, DOB.OBJECT_NAME;

RAC时间不同步造成系统并发请求奇慢

    最近接连几个身边的项目都遇到了类似这样的问题,请求(客制化和标准的都是如此)很慢。由于生产环境是RAC,DBA建议去查看RAC环境中的各台服务器的系统时间,看是否一致。结果一查发现几台服务器都存在1-2分钟的差异。于是进行过一次时间服务的同步操作(如果是RAC需要关闭RAC再同步,否则DBA说容易出现后续RAC启动失败的风险)后,各请求果真速度提高数倍。其中的原理大家可以去了解了解,本人也只是说明这样一个现象及可能的解决方法。

发票批量付款版本Bug(付款日期提前一天)

    由于客户要启用批量付款,且需要通过计划付款来分批付款。于是就把此标准功能上线。
但是最后确遇到,在批量支付界面的支付截止日默认的是当前日期,结果却把第2天的计划
付款数据抽出来。最后去选择计划付款的程序中追溯,发现如图所示的结果:

ap

最后做如图所示的修改即可。

HTML报表中空白行的处理

前段时间在项目上做一个HTML版的凭证打印,空白行的问题找了不少资料,最后终于在一个同事的帮助下完成了。
    比如:一个凭证有4行,此凭证固定行数为8行,如果不做处理,就会出现没有数据的行出现连续空白的情况,最后,定义了
  一个常量,可能现在想很简单,但是当时就没有想到这样做。
   l_cell_null CONSTANT varchar2(10) := chr(38) || 'nbsp;';
   在可能出现空白行的地方,在最后加上如下代码所示的样子:
  nvl(substr((Get_Segment_Desc(c2.list_account,
                                             'segment3',
                                             l_sob_id) || ' ' ||
                           Get_Segment_Desc(c2.segment4,
                                             'segment4',
                                             l_sob_id)),
                           1,
                           40),
                    l_cell_null) || l_cell_null 
最后终于解决了此问题,现在项目上对凭证的格式要求很严格,之前用的是PDF版本的,但是空白页有时候不好把握,最终客户提需求开发了这个HTML班的报表。

Form开发复选框应该注意事项

    今天就写说一个form开发的时候,大家可能不太注意的地方,前几天,我做完一个开发功能,部署到测试环境中去,测试过几次,完全没有问题,就在第二天准备上生产的时候,问题出现了,数据无缘无故丢失了,事情是这样的:
    做财务的可能都会遇到这样的问题,税费计提的功能,大量重复性繁杂的工作量,没有技术性,纯属体力劳动,因此客户提出需求需要用系统帮忙解决此问题,于是,业务顾问谈好需求后,自己作为技术顾问就开始安装功能需求文档做设计,做开发,当然这个本来也不是什么大的开发,就是需要对不同机构,不同产品进行税费计算,然后生成日记账入账即可,于是,form开发,逻辑代码书写都完成了,部署测试环境,内部测试完成,无误,提交客户测试,问题出现了,比如有一个产品A,税率是0.00013,然后需要生成公司间往来,这样,一个税种就会生成总公司本部和分支机构两条日记账,但是结果两条数据都没有出现,由于form界面是开发的,里面的数据是人工维护进去的,如图:

2 1 3

    这两者的差别就是:未选中的时候,此ITEM的值,在数据库里面存储可能是空,可能是N,如果选中不允许,结果就只会在数据库中存储为N,提出这点主要是因为,最近在一个form的开发中遇到这样的问题,我根据此字段去作为判断条件的时候,发现有时候数据正确有时候数据错误,数据库,“有时候”这个问题就很麻烦,做技术的就最怕这个了,于是我仔细核对FORM,才发现这个问题,其实如果对于复选框还好,毕竟只有三种结果,Y,N,NULL,这样的话,我可以根据Y和<>'Y'来,但是遇到其他的,就得注意了,且要记得赋初始值,否则FORM编译会报错,记下以此警醒自己。
    今天就写这样一个小知识点,谢谢。(此文是本人之前发布在ERP100上的,链接 http://bbs.erp100.com/forum.php?mod=viewthread&tid=266572&extra=

Oracle ERP笔记(小小的实施记录博客)