Oracle EBS FA 回滚已运行折旧(Rollback Depreciation)会计分录无法抛至GL总帐的数据修复

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版本以后,该请求就取消使用,给“折旧>改写”替代了。

猜你喜欢

转载自blog.csdn.net/chenxianping/article/details/89043390