Oracle ebs控制科目输入(ADI+人工)方案

背景:
客户需要限制某些科目只能从接口进入系统,不能手工及类手工方式录入。

思路:

寻求标准方案;客户化ADI。

标准方案:

先查看科目值集处对科目属性的控制,其中有一个控制项是“第三方控制账户”,控制账户内可选择“限制人工日记帐”(此时想看能否可以选择来源进行控制,于是通过sql方式【select * from fnd_lookups t where t.meaning like ‘%限制人工日记%’】找到控制账户的lookup_type”GL_CONTROL_ACCOUNT_SOURCES”,发现不能新增来源),于是从字面理解是否只会对日记账来源为“人工”的进行控制。

测试结果:前台界面确实控制住不能录入,并弹窗提示“您不能使用控制账户。请选择其他账户”,满足需求。

然后通过ADI导入,无论ADI的来源选择何种,均会提示“您不能使用控制账户。请选择其他账户”,满足需求。

最后通过接口表的方式,通过设置过“限制人工日记账”的科目导入生成账务,可以正常生成日记账,满足需求。

完美解决问题,不再讨论客户化的方式。

ORACLE优化查询资源消耗的语句

1、SQL ordered by Gets
select *
from (select substr(sql_text, 1, 40) sql,
buffer_gets,
executions,
buffer_gets / executions “Gets/Exec”,
hash_value,
address
from v$sqlarea
where buffer_gets > 0
and executions > 0
order by buffer_gets desc)
where rownum <= 10;

2、SQL ordered by Reads
select *
from (select substr(sql_text, 1, 40) sql,
disk_reads,
executions,
disk_reads / executions “Reads/Exec”,
hash_value,
address
from v$sqlarea
where disk_reads > 0
and executions > 0
order by disk_reads desc)
where rownum <= 10;

3、SQL ordered by Executions
select *
from (select substr(sql_text, 1, 40) sql,
executions,
rows_processed,
rows_processed / executions “Rows/Exec”,
hash_value,
address
from v$sqlarea
where executions > 0
order by executions desc)
where rownum <= 10;

4、SQL ordered by Parse Calls
select *
from (select substr(sql_text, 1, 40) sql,
parse_calls,
executions,
hash_value,
address
from v$sqlarea
where parse_calls > 0
order by parse_calls desc)
where rownum <= 10;

5、Running Time top 10 sql
select *
from (select t.sql_fulltext,
(t.last_active_time –
to_date(t.first_load_time, ‘yyyy – mm – dd hh24 :mi :ss‘)) * 24 * 60,
disk_reads,
buffer_gets,
rows_processed,
t.last_active_time,
t.last_load_time,
t.first_load_time
from v$sqlarea t
order by t.first_load_time desc)
where rownum < 10;

技术笔记(小P的技术记录博客)