在R12版本中月末关帐时经常会出现关不了的情况,而系统的异常报表的信息太过简单且不完全。结合项目本身发生的情况,做了以下的总结,希望能对公司其他R12项目有所启示。
R12月度关帐的要点:
检查SLA传送给GL的数据是否重复和丢失。
-- 检查SLA传送给GL的数据重复
select aeh.gl_transfer_date,
aeh.accounting_date,
aeh.description,
aeh.doc_sequence_value,
cc.concatenated_segments,ael.*
from xla_ae_lines ael, xla_ae_headers aeh, gl_code_combinations_kfv cc
where ael.gl_sl_link_id in
(
select gl_sl_link_id
from APPS.gl_import_references
where je_header_id in
(select je_header_id
from APPS.gl_je_headers
where period_name = '2008-06')
group by gl_sl_link_id
having count(*) = 2
)
and ael.ae_header_id=aeh.ae_header_id
and ael.code_combination_id=cc.code_combination_id
如果存在则为传送给GL的数据重复。 -- 检查SLA传送给GL的数据是否缺失
SELECT xe.event_id, xh.ae_header_id
FROM xla_events xe, xla_ae_headers xh
WHERE xe.event_id = xh.event_id
AND xe.application_id = xh.application_id
AND xh.accounting_entry_status_code = 'F'
AND xe.event_status_code = 'P'
AND xh.application_id = application_id -- (like 200 for AP, 222 for AR etc.,)
AND xh.upg_batch_id IS NULL
AND xh.ledger_id = ledger_id -- give the ledger_id
AND NOT EXISTS
(SELECT 1
FROM xla_ae_lines xl
WHERE xl.ae_header_id = xh.ae_header_id
AND xl.application_id = xh.application_id);
这个问题在oracle Doc ID: Note:729296.1 Subject: SLA: Accounting Data Missing from the SLA Tables
碰到这样的问题需要installed R12 Fin RUP5 or the Subledger Accounting Critical Patches 这个在Doc已经
有了详细的介绍。 关闭AP的会计期:
关闭AP的会计期的check主要是集中在xla这一块。 SELECT xte.*
FROM xla.xla_events xle,
xla.xla_transaction_entities xte,
gl_ledger_relationships glr1,
gl_ledger_relationships glr2,
xla.xla_ledger_options xlo
WHERE xle.entity_id = xte.entity_id
AND xle.application_id = xte.application_id
AND xle.event_date BETWEEN to_date('2008-08-01', 'YYYY-MM-DD') AND
to_date('2008-08-30', 'YYYY-MM-DD')
AND glr2.target_ledger_id = p_ledger_id
AND glr2.source_ledger_id = glr1.source_ledger_id
AND glr2.application_id = glr1.application_id
AND glr1.target_ledger_id = xlo.ledger_id
AND xle.application_id = xlo.application_id
AND xlo.capture_event_flag = 'Y'
AND (glr1.target_ledger_id = xte.ledger_id OR
glr1.primary_ledger_id = xte.ledger_id)
AND (glr1.relationship_type_code = 'SUBLEDGER' OR
(glr1.target_ledger_category_code = 'PRIMARY' AND
glr1.relationship_type_code = 'NONE'))
AND glr2.application_id = 101
AND xte.application_id = p_application_id
AND xle.event_status_code IN ('I', 'U'); SELECT xte.*
FROM xla.xla_ae_headers aeh,
xla.xla_transaction_entities xte,
gl_ledger_relationships glr1,
gl_ledger_relationships glr2
WHERE aeh.ledger_id = glr2.target_ledger_id
AND glr2.source_ledger_id = glr1.source_ledger_id
AND glr2.application_id = glr1.application_id
AND glr1.target_ledger_id = p_ledger_id
AND glr1.application_id = 101
AND xte.entity_id = aeh.entity_id
AND xte.application_id = aeh.application_id
AND aeh.gl_transfer_status_code IN ('N', 'E')
AND aeh.accounting_date BETWEEN to_date('2008-07-01', 'YYYY-MM-DD') AND
to_date('2008-07-31', 'YYYY-MM-DD')
AND xte.application_id = p_application_id ; 当上述的2SQL中存在值时,这个时候AP的会计期是关闭不了的。我们可以通过
xla.xla_transaction_entities.source_id_int_1,ENTITY_CODE 去找到相应的子帐数据。
如果ENTITY_CODE = 'AP_PAYMENTS' 则source_id_int_1 = AP_CHECKS_ALL.CHECK_ID
如果ENTITY_CODE = 'AP_INVOICES' 则source_id_int_1 = AP_INVOICES_ALL.INVOICE_ID
如果ENTITY_CODE = 'TRANSACTIONS' 则source_id_int_1 = RA_CUSTOMER_TRX_ALL.customer_trx_id
如果ENTITY_CODE = 'RECEIPTS' 则source_id_int_1 = AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID
如果ENTITY_CODE = 'ADJUSTMENTS' 则source_id_int_1 = AR_ADJUSTMENTS_ALL.ADJUSTMENT_ID 另外Oracle也提供了AP的异常检查的 Doc ID: Note:437422.1
Subject: R12 Troubleshooting Closing Periods in Payables
主要是以下几个方面:
•All payment batches must be confirmed
•All transactions must be accounted
•All accounting entries must be transferred to general ledger
•All future dated payments which have reached maturity in the accounting period must have their
status updated to negotiable and be accounted
详细细节请参考Note:437422.1 以及上面的SQL语句就可以找到问题。其中check AP会计期的程序其实是调用
XLA_EVENTS_PUB_PKG.PERIOD_CLOSE程序真正的检查程序是XLA_PERIOD_CLOSE_EXP_PKG.check_period_close 。 关闭AR的会计期:
 关闭AR的会计期时,Oracle没有象关闭AP会计期那样严格,只是检查收款和发票的核销。 /* check for Revenue recognition */
SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS (SELECT /*+ ORDERED USE_NL(sys_org gld ct) */
'x'
FROM (SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id
AND accounting_method <> 'CASH') sys_org,
ra_cust_trx_line_gl_dist_all gld,
ra_customer_trx_all ct
WHERE gld.account_class = 'REC'
AND gld.latest_rec_flag = 'Y'
AND gld.account_set_flag = 'Y'
AND gld.gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND ct.customer_trx_id = gld.customer_trx_id
AND ct.complete_flag = 'Y'
AND gld.org_id = sys_org.org_id
AND ct.org_id = gld.org_id); /*** 'Unposted Items Exist' ***/
SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS (SELECT 'x'
FROM ar_adjustments_all adj
WHERE adj.posting_control_id = -3
AND adj.gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND nvl(adj.postable, 'Y') = 'Y'
AND adj.org_id IN
(SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id
AND accounting_method <> 'CASH')); SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS
(SELECT 'x'
FROM ar_misc_cash_distributions_all
WHERE posting_control_id = -3
AND gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND (org_id IS NULL OR
org_id IN
(SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id))); SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS (SELECT /*+ ORDERED USE_NL(sys_org gl ct) */
'x'
FROM (SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id
AND accounting_method <> 'CASH') sys_org,
ra_cust_trx_line_gl_dist_all gl,
ra_customer_trx_all ct
WHERE gl.customer_trx_id = ct.customer_trx_id
AND ct.complete_flag = 'Y'
AND gl.account_set_flag = 'N'
AND gl.gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND gl.posting_control_id = -3
AND gl.set_of_books_id = :control.set_of_books_id
AND ct.org_id = sys_org.org_id
AND gl.org_id = ct.org_id); SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS (SELECT /*+ ORDERED USE_NL(sys_org ra ct) */
'x'
FROM (SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id) sys_org,
ar_receivable_applications_all ra,
ra_customer_trx_all ct
WHERE ra.posting_control_id = -3
AND ra.gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND nvl(ra.postable, 'Y') = 'Y'
AND (ra.customer_trx_id = ct.customer_trx_id OR
ra.applied_customer_trx_id = ct.customer_trx_id)
AND ra.org_id = sys_org.org_id
AND ra.org_id = ct.org_id); SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS
(SELECT 'x'
FROM ar_cash_receipt_history_all crh
WHERE posting_control_id = -3
AND gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND postable_flag = 'Y'
AND (crh.org_id IS NULL OR
crh.org_id IN
(SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id))); SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS
(SELECT 'x'
FROM ar_interim_cash_receipts_all icr
WHERE icr.gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND (icr.org_id IS NULL OR
icr.org_id IN
(SELECT org_id
FROM ar_system_parameters_all
WHERE set_of_books_id = :control.set_of_books_id))); SELECT COUNT(1)
INTO temp
FROM dual
WHERE EXISTS
(SELECT 'x'
FROM ar_transaction_history_all trh
WHERE trh.posting_control_id = -3
AND trh.gl_date BETWEEN :gl_period_statuses.start_date AND
:gl_period_statuses.end_date
AND trh.postable_flag = 'Y'
AND (trh.org_id IS NULL OR
trh.org_id IN
(SELECT sp.org_id
FROM ar_system_parameters_all sp
WHERE sp.set_of_books_id = :control.set_of_books_id)));
假如上面的Sql中有任何一个存在值,当期的会计期是关闭不了的。其实这些都是关闭AR
会计期的check条件。 关闭GL的会计期:
关闭GL的会计期,没有AP/AR条件那么苛刻,只要验证以下SQL就可以了 SELECT xte.*
FROM xla.xla_events xle,
xla.xla_transaction_entities xte,
gl_ledger_relationships glr1,
gl_ledger_relationships glr2,
xla_ledger_options xlo
WHERE xle.entity_id = xte.entity_id
AND xle.application_id = xte.application_id
AND xle.event_date BETWEEN to_date('2008-07-01', 'YYYY-MM-DD') AND
to_date('2008-07-31', 'YYYY-MM-DD')
AND glr2.target_ledger_id = 2022
AND glr2.source_ledger_id = glr1.source_ledger_id
AND glr2.application_id = glr1.application_id
AND glr1.target_ledger_id = xlo.ledger_id
AND xle.application_id = xlo.application_id
AND xlo.capture_event_flag = 'Y'
AND (glr1.target_ledger_id = xte.ledger_id OR
glr1.primary_ledger_id = xte.ledger_id)
AND (glr1.relationship_type_code = 'SUBLEDGER' OR
(glr1.target_ledger_category_code = 'PRIMARY' AND
glr1.relationship_type_code = 'NONE'))
AND glr2.application_id = 101
AND xle.event_status_code IN ('I', 'U');

R12月末关帐的异常检查和处理的更多相关文章

  1. T100——取得系统参数值,如关帐日期

    CALL cl_get_para(g_enterprise,g_site,'S-MFG-0031') RETURNING l_para_data 用此方法获取关帐日期

  2. SAP月末结账年结流程

    SAP月末结账年结流程 SAP月末结账操作指南 流程描述:FI期末结帐流程包括应收帐款.应付帐款.固定资产.管理会计结帐.总帐结帐等一系列结帐过程,对于年结增加了余额结转及固定资产年度改变等动作,通过 ...

  3. Monyer's Game 6~10关过关方法

    从Monyer's Game开通到现在,已经有50多人通关了.其中绝大部分人,不管是自己独立完成也好,参考别人也罢,都是自己一步一步过去的.像陆羽兄弟甚至已经为游戏做好了整个通关的教程,在此Monye ...

  4. KingbaseES V8R6 账号异常登录锁定案例

    数据库版本: test=> select version(); version --------------------------------------------------------- ...

  5. SAP-财务知识点

    [转自 http://blog.itpub.net/195776/viewspace-1023912/] SAP FI/CO Reading RepositorySAP财务成本知识库 目 录前言.一. ...

  6. POS与EPOS区别

    本文分文三个部分来介绍,第一部分是两个概念(POS与EPOS),第三部分是 POS与EPOS的区别. 一.epos ( electronic point of sale ) 俗称电话pos机: .EP ...

  7. GL_GL系列 - 总账系统基础(概念)

    2014-07-07 Created By BaoXinjian

  8. SAP问题【转载】

    1.A:在公司代码分配折旧表时报错? 在公司代码分配折旧表时报错,提示是"3000 的公司代码分录不完全-参见长文本" 希望各位大侠帮我看看. 3000 的公司代码分录不完全-参见 ...

  9. SAP FI配置步骤

    http://blog.sina.com.cn/s/blog_8eda1a620100uwzj.html No. 配置对象 事务代码 配置内容 路径 备注 1 定义公司 OX15 企业结构>定义 ...

随机推荐

  1. c# ToString() 用法

    string tempa = Convert.ToString(31, 2);//将10进制数31转换为2进制字符串. string strNums = int.Parse(tempa).ToStri ...

  2. css3 loading效果

    file:///E:/zhangqiangWork/2014/SPDbank/index.html 参考该网站 http://tobiasahlin.com/spinkit/ 查看源代码把里面的dom ...

  3. LightOj1383 - Underwater Snipers(贪心 + 二分)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1383 题意:在平面图中,有一条河,用直线y=k表示,河上面(y>k)的都是敌方区 ...

  4. iOS 给UILabel文字加下划线

    摘自:http://blog.sina.com.cn/s/blog_6cd380c10101b6hn.html //带下划线的“注” NSMutableAttributedString可变的属性字符串 ...

  5. Java学习-007-Log4J 日志记录配置文件详解及实例源代码

    此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...

  6. XPS1330 作为Linux服务器之安装配置计划

      # Task 状态 完成时间 备注 博文链接  1.  打通SSH  未开始  --  安装系统后已经具备  --  2.  打通FTP  未开始  --  安装系统后已经具备  --  3.   ...

  7. eclipse中的Console控制台视图脱离主窗口解决办法

    问题:Console控制台视图由于操作不当,跑出来了,脱离了主窗口 解决:在eclipse主窗口最上面的工具条选项中,找到Window,点击里面的Reset Perspective,即可,这样视图就重 ...

  8. WeUI—微信官方UI库

    WeUI 为微信 Web 服务量身设计 概述 WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一.包含button.cell ...

  9. MySQL管理之道:性能调优、高可用与监控内置脚本

    MySQL管理之道:性能调优.高可用与监控内置脚本 随书附送脚本 keepalive配置文件和脚本开源工具pssh批量管理服务器(python) 下载地址 http://files.cnblogs.c ...

  10. 智能硬件+App移动新生态【10.24北京站】

    活动概况 时间:2015年10月24日13:30-16:30 地点:Wepac空间(海淀区北四环西路68号左岸工社6层) 主办:APICloud.机智云.智石科技.华为云 网址:www.apiclou ...