所有由小潘发布的文章

喜欢分享的小潘.

Oracle ebs 资产编号跳号问题分析

       在财务系统中会有很多地方都用到缓存,Oracle的解释是为了提高性能而做出的设置,比如在资产模块中,资产编号的生成,就设置了缓存为20,具体如下:

create sequence fa.fa_additions_s
minvalue 1
maxvalue 2000000000
start with 100000001
increment by 1
cache 20
order;

解决方案有两个(一般不建议操作,因为资产编号对资产盘点没有很大的帮助,在实物资产系统一般是用资产标签号进行标识唯一的资产,可说服用户使用标签号;同时建议做个性化对资产编号进行锁定不允许修改):

1)直接去掉序列号缓存,执行下列命令,但这可能会在性能上造成一定的下降:

alter sequence fa_additions_s nocache; 

2)固定序列号的缓存,通过下列命令:

dbms_shared_pool.keep('FA_ADDITIONS_S','Q').

当确认序列不再变更,把上面的代码添加到一个sql脚本,它可以在db启动时运行它,这样在db反弹后pinning不会丢失。

这个问题可能会发生在应用程序的任何序列中,所以用你的序列名替换FA_ADDITIONS_S。

Oracle EBS职责分配不生效问题处理(变更过失效日期)

一、通过功能管理员清除高速缓存,同时通过系统管理员提交“有效用户和职责”,观察结果;

二、通过请求同步局部工作流,观察结果;

三、如果前面两步未生效,可考虑应用以下解决方案

1. Go into the responsibility: System Administrator.

2. Navigate to Request > Run.

3. Submit request 'Synchronize WF LOCAL tables'

4. Submit request 'Workflow Directory Services User/Role Validation'

5. Check result in table wf_local_user_roles via:

select role_name, effective_end_date from wf_local_user_roles
where user_name='<>';

6. If still find some records haven't been changed to null, perform:
a.) backup the records:
create table wf_local_user_roles_bak as
select * from wf_local_user_roles
where user_name='<>' and effective_end_date <> to_date('<>','RRRR-MM-DD');
b.) update effective_end_date to null
update wf_local_user_roles
set effective_end_date=to_date('9999-01-01','RRRR-MM-DD')
where user_name='<>' and effective_end_date <> to_date('<>','RRRR-MM-DD');

7. Retest the issue.

8. Migrate the solution as appropriate to other environments.

Oracle建立DBLink相关命令

单节点:

/*drop public database link xx_link;*/

create public database link xx_link
       connect to xx_user identified by xx_user 
       using ' (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XXXX)
    )
  )';

双节点:

/*drop public database link xx_link;*/

create public database link xx_link
connect to xx_user identified by xx_user 
using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP) (HOST = 10.0.1.92)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP) (HOST = 10.0.1.93)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =PROD)
)
)';

Oracle ebs财务系统年中结算流程(善用Oracle提供的标准检测util)

1.Oracle 总账应用中年终结算流程包含在开启/关闭期间程序里。当用户开启新一年的第一个期间,开启/关闭期间程序中的"gloire" 流程会完成传送所有收入及支出(损益表)账户余额至留存收益账户(REA)的工作。

之后程序会将新一年的第一个期间中的这些收入和费用账户的起始余额设置为0。这些处理流程不会创建日记账,只是单纯的更新新期间的账户余额。其余类型的账户实际余额-资产、负债和所有者权益(资产负债表)平移到新的一年。

注意:在打开新年度之前检查是否有错误的账户类别(不正确的会计、账户类别的科目组合)是很重要的。

帮助找出错误的账户类别请运行总账的诊断工具:错误的账户类别活动脚本Note:1416402.1

2. 用户可以在完成前一年的所有处理流程后开启’新’一年<internal only用户可以在完成前一年的所有处理流程之前>。这允许子分类账处理流程继续正常的工作。当日记账被传送至“最新开启期间”的前一期间时,如果新一年的第一个期间落在日记账导入的期间与最新开启的期间之间。传送程序会前滚实际余额至曾经开启的所有期间,以此更新留存收益余额,

注意:过早的开启新一年的第一个期间会导致传送性能下降。这是因为传送程序会前滚至所有受影响的账户余额至所有开启的期间<internal only至所有曾经开启的未来期间>。

3.在开启/关闭程序期间, "gloire" 流程为每个在前一年当中有活动的平衡段值确认一个有效地,激活的留存收益账户(包括当年没有活动的但在GL_BALANCES表里有余额的科目)。流程需要这些留存收益账户即使一个平衡段值的所有事务处理最终净额为0。

4.在开启新一年的第一个期间之前,“关闭”前一年,需要采取以下步骤: 

  1.  备份数据库。

  2.  核对下一个日历年以及定义过的期间。

  3.  运行在关闭期间时应该运行的报表。如果用户有需要为年终结算查看更多的报表,请依次运行。在总账中没有“年终”报表。

5.在完成以上步骤后,开启新一年的第一个期间。该流程成功完成之后,为新一年运行试算表报表(trial balance report )并且检查确保所有的收入以及支出账户的起始余额为0。

注意:如果期初余额有任何疑问,请使用Note.1416402.1中的分析脚本。

6. 如果公司要求在年结时产生会计分录,需要运行年结分录流程:

       “关闭流程 – 创建损益表以关闭日记账”-会创建结转余额到留存收益科目的会计分录。

       “关闭流程 – 创建资产负债表以关闭日记账”-结转余额到下一年。

7.如果用户有任何收入或者支出账户没有结0,大多数是因为错误的账户类型。检查账户都设置为正确的账户类型(例如:收入或者支出)。

检查账户类型路径:GL->设置 =>财务=>弹性域=>键=>值

  查询账户值并且tab直至段限定词窗口弹出。账户类型会显示在该窗口上。如果账户类型是错误的,按照“误分类账户类型”文档。该文档可以在“总账用户指南”中的“维护(maintenance)”标题下找到(该流程适用于11i和R12)。

  还必需检查科目组合中的账户类别,如果存在不正确的账户类别的段值(通常会是费用类),也会存在不正确的账户类别的会计科目组合,只更正段值不会更正科目组合。

8. 只有实际的余额会自动结转至新的一年,保留款和预算余额需要运行保留款和预算余额年结流程传送数据到新的一年。 

9. 使用用户指南中的年结检查列表检查总账中的年结流程。