Oracle EBS 版本:R12.1.3
业务场情:
一、资产分配
1.1 查找资产:FA>Assets>Asset Workbench
输入资产编>选择资产帐套>查找
1.2 资产分配(转移): Assignments
注意:转出为负数,转入为正数
二、运行折旧:FA>Depreciation>Run Depreciation
运行折旧请求以后,会产生二个事件
1.折旧(Depreciation)
2.折旧已运行回滚(Rollback Depreciation)
其中涉级表有:XLA_TRANSACTION_ENTITIES和XLA_EVENTS(EVENT_STATUS_CODE = 'U' 和 PROCESS_STATUS_CODE = 'U')
三、创建会计科目:FA->Create Accounting
注意: End Date 参数默认值为当天。
四、查看会计事件和会计科目:FA>Assets>Asset Workbench
Tools>View Accounting Events/View Accounting
4.1 View Accounting Events
4.2 View Accounting
会计分录介绍如下:
1. GL Date为2019-03-06是2019-03会计期间第一次折旧的会计分录
2. GL Date为2019-03-07是2019-03会计期间第二次折旧的会计分录
3. GL Date为2019-03-31是2019-03会计期间第二次折旧时,回滚(相当于冲销)第一折旧的会计分录。但是,其它版本(R12.2.6)或其它公司系统,不会产生第1种和第3种会计分录。估计与会计事件定义有关系,当运行折旧关闭会计期时,才能产生“回滚已运行折旧”事件。
由于“Rollback Depreciation”的GL日期是2019-03-31,而“创建会计科目-资产”请求的终止日期是2019-03-07。因此,不能产生GL 日记帐。去GL日记帐追溯也找不到会计事件“Rollback Deprecitation”的日记帐的行。同时,通过如下SQL语句可以找出哪些会计分录未抛至GL总帐
SELECT XTE.LEDGER_ID, XTE.Source_Id_Char_1,
FAA.ASSET_NUMBER,
FAA.DESCRIPTION,
Xe.Event_Status_Code,
xe.PROCESS_STATUS_CODE,
XEh.Gl_Transfer_Status_Code, --N表示未传至GL
xeh.gl_transfer_date,
Xte.Entity_Code,
Xte.Entity_Id,
XE.CREATION_DATE,
XEL.ACCOUNTING_DATE,
XE.EVENT_DATE,
XE.CREATED_BY,
XEL.CREATED_BY,
XEh.*,
xel.*,
IR.JE_HEADER_ID,
glb.name, --日记帐批
glh.name --日记帐名
FROM Xla.Xla_Transaction_Entities Xte,
Xla.Xla_Events Xe,
Xla_Ae_Headers Xeh,
Xla_Ae_Lines Xel,
Gl_Import_References Ir,
FA_ADDITIONS_V FAA,
gl_je_batches glb,
gl_je_headers glh
WHERE Xe.Entity_Id = Xte.Entity_Id
AND Xte.Application_Id = Xe.Application_Id
AND Xe.Entity_Id = Xeh.Entity_Id(+)
AND Xe.Event_Id = Xeh.Event_Id(+)
AND Xe.Event_Type_Code = Xeh.Event_Type_Code(+)
AND Xeh.Ae_Header_Id = Xel.Ae_Header_Id(+)
AND Xel.Gl_Sl_Link_Id = Ir.Gl_Sl_Link_Id(+)
AND Xel.Gl_Sl_Link_Table = Ir.Gl_Sl_Link_Table(+)
and ir.je_batch_id = glb.je_batch_id(+)
and ir.je_header_id =glh.je_header_id(+)
AND XTE.source_id_int_1= FAA.ASSET_ID
AND Xe.Application_Id = 140
AND Xte.Entity_Code != 'TRANSACTIONS'
--And XE.EVENT_TYPE_CODE = 'ROLLBACK_DEPRECIATION'
AND XE.EVENT_DATE >= TO_DATE('2019-03-01', 'YYYY-MM-DD')
and FAA.ASSET_NUMBER='XXXXX2016007'
and XTE.Source_Id_Char_1 = 'XXX FA BOOK'
如何数据修复会计事件“Rollback Deprecitation”会计分录抛至GL总帐?
使用如下SQL语句:
UPDATE Xla_Events a
SET Event_Status_Code = 'U'
,Process_Status_Code = 'I'
WHERE Event_Id IN
(SELECT A1.Event_Id
FROM Xla_Events A1
WHERE A1.Event_Status_Code = 'P'
AND A1.Process_Status_Code = 'P'
AND A1.Event_Type_Code = 'ROLLBACK_DEPRECIATION'
AND A1.Application_Id = 140
AND Trunc(A1.Event_Date) BETWEEN
Trunc(To_Date('2019-03-01', 'YYYY-MM-DD')) AND
Trunc(To_Date('2019-03-31', 'YYYY-MM-DD'))
AND EXISTS
(SELECT 1
FROM Xla_Ae_Headers b
WHERE b.Event_Id = A1.Event_Id
AND b.Gl_Transfer_Status_Code = 'N'
AND b.Event_Type_Code = 'ROLLBACK_DEPRECIATION'))
AND Trunc(a.Event_Date) BETWEEN
Trunc(To_Date('2019-03-01', 'YYYY-MM-DD')) AND
Trunc(To_Date('2019-03-31', 'YYYY-MM-DD'))
AND a.Application_Id = 140;
COMMIT;
注意:datafix时,尽量缩小修改数据范围。
因此,修改并发请求“Create Accounting - Assets”的“End Date”为当前会计期最后一天。
另外,“回滚已运行折旧”事件是什么情况产生呢?
经过测试有如下情况:
1.资产转移(Transfer)或资产报废:
2.资产改写(折旧和调整,注意R12.2.6还添了“报废”):FA>Depreciation>Charge
注意:在Oracle EBS 11i环境中,回滚折旧是提交请求“回滚已运行折旧”,而R21版本以后,该请求就取消使用,给“折旧>改写”替代了。