分类目录归档:GL模块

Oracle ebs 交叉验证规则导出

–已测试,请变更账套名
select x.flex_validation_rule_name,
       x.description,
       h.include_exclude_indicator,
       h.concatenated_segments_low,
       h.concatenated_segments_high
  from apps.fnd_flex_vdation_rules_vl      x,
       apps.fnd_flex_validation_rule_lines h,
       gl_ledgers                          g
 where 1 = 1
   and x.id_flex_num = g.chart_of_accounts_id
   and x.flex_validation_rule_name = h.flex_validation_rule_name
   and (h.id_flex_code = 'GL#')
   and (h.application_id = 101)
   and g.name = 'FIN_Ledger'
 order by x.flex_validation_rule_name;

Oracle EBS查找帐套本位币及币种间汇率转换的方法

(1)获取帐套本位币

--取得当前帐套本位币
SELECT gsob.currency_code
  FROM gl_sets_of_books   gsob,
       hr_operating_units hou
 WHERE gsob.set_of_books_id = hou.set_of_books_id
   AND hou.organization_id = fnd_profile.value('ORG_ID');

(2)币种间转换

--取得指定币种(例如:HKD)当天转向当前帐套本位币(例如:CNY)的汇率
SELECT gdr.conversion_rate
  FROM gl_daily_rates_v gdr
 WHERE gdr.from_currency = 'HKD'
   AND gdr.to_currency IN (SELECT gsob.currency_code
                             FROM gl_sets_of_books   gsob,
                                  hr_operating_units hou
                            WHERE gsob.set_of_books_id = hou.set_of_books_id
                              AND hou.organization_id = fnd_profile.value('ORG_ID'))
   AND gdr.conversion_type = 'Corporate'
   AND gdr.conversion_date = trunc(SYSDATE);

(3)调用EBS的API来转换

SELECT gl_currency_api.get_rate(x_from_currency   => 'HKD',
                                x_to_currency     => 'CNY',
                                x_conversion_date => trunc(SYSDATE),
                                x_conversion_type => 'Corporate') from dual;

员工分配职位错误(在分配持续时间内职位无效)

这里先说一下这个错误出现的背景:
    需要对一员工设置为预算员,当然这是就需要在员工分配属性里面设置已经完成的员工职位。此员工职位假设是昨天设置的,员工是今天设置的,也就是员工职位先于员工建立一天。此时去分配职位的时候就会出现如下图所示是错误:

     APP-PAY-07900

解决方法:直接将员工的起始日期改为职位建立的日期或者之后即可,如下图所示:

     延后日期

Oracle EBS更改标准财务三大报表

    (以前的日志摘录)最近遇到一个很头疼的事情,客户马上要接受保监会的验收,但是他们对Oracle EBS系统中的财务三大报表的格式不满意。我们项目组考虑在很短的时间内要写出三个报表,是要花费大量精力的,同时现在考虑到人力有限,所以,我们商量在标准报表的基础上修改,看客户能否接受。
        修改标准的FSG模板真不好弄,里面的代码我们是看不到的,要控制格式只能通过不断的对FSG定义上和利用FSG标准模板上的窗体域写入代码来尝试。千回百转,当我们第一次将雏形打印出来拿给客户看的时候,客户说可以接受。由于工作原因,项目经理去另一个项目上去,剩下我一个人在客户公司,客户最近不断地要求我更改格式,主要遇到以下几个问题:
    1.  标准的“发布 FSG 报表”本身是不带边框的,客户要求对报表的每一项都要用边框;
    2.  标准的三大财务报表(损益表、资产负债表、现金流量表)的项目条目中有不带数值的行,客户需要不带数值的行也要有边框;
    3.  标准的FSG报表的输出数值只能超过千位的数字有标示位".00",客户需要所有数值都要有".00"标示,比如,1034,332,32.00   230.00  1.00的格式;
    4.  列名需要加粗黑体并且居中
    大体上就上面四个要求,刚听到客户提这些需求的时候,我还觉得很简单的,我们项目经理说这个可能不好弄。在确定用更改标准FSG模板的前提下,从服务器上下载模板名为“FSGXML 基本模板”的模板,开始着手更改。
    对要求1,我们在标准模板的相应地方加上边框,更新模板(这时发现此模板不能更新,于是终止此模板,重新定义新的模板),将加上边框后的模板上传至新定义的模板上,跑请求看结果。效果是这样的,整个正文内容部分是加上了边框,但是对没有数值的地方,边框不会自动添加,就显示出“缺省”的地方,十分不美观,客户也不能接受。之前我是这样解决的,对原来不需要显示的地方用"0"填充或者用多项的和填充,的确这样做了以后,不再用空缺的行,相对之前是好看了许多,于是我打印出来给客户看这部分的效果,客户说:“这个样子改比之前那种“缺省”的外观来说是好美观了,但是却犯了一个原则的性才错误,比如资产负债表中,第一行是项目,按照你的做法是将项目这行的数值设为所有的条目的和(我自己以为是正确的),但是保监会要求的不会有这样的显示,项目这行在任何情况下都是不能有数值的。”于是重新思考方式来满足要求1。因为不是客户化的功能,很难从细节上控制格式,万般无奈的时候,我试着将整个表格外面再加一层表格,上传测试,奇迹般的在“缺省的”地方竟然加上了外边框。这间单元格的边框线目前未能解决,客户已经接受此部分的修改。
    对要求2的解决方法在第一步已经顺带解决,在解决这个要求的时候,对FSG的定义一定要很熟悉,这对格式的修改非常重要,一个空格,对少缩进,都需通过设置设定,同时目前报表列头采用的是左对齐,且用trim()函数去掉空格。
    对要求3,我咨询过老的功能顾问,他说这个系统默认对千位以上的数字会自动加上,如果客户实在要将千位以下的数字也显示成那样的效果,可以在定义FSG报表的时候,在定义列集的时候,有个数字格式,在里面加上任意一个字符即可,但是这个字符会在报表中显示出来,于是经过测试,的确是这样,但是沟通后客户不同意这样做,于是继续找方法,对定义FSG报表任何一个选项都反复测试,发现在定义行集的时候,在显示选项中,有个系数设置,感觉像是控制此问题的,但是结果不是,目前还在寻找方法。
    对要求4,正寻找方法中……    
    未完待续……
最后还是完美解决。