Oracle EBS Create Accounting for Third Party Merge"部分合并"(PARTIAL_MERGE)会计事件产生的来源

      Oracle EBS版本:R12.1.3   

      之前一篇文章"Oracle EBS AR关闭会计期间例外提示:APP-AR-294571: XXX-XXX 因一些未处理的会计事件或未传送的日记帐分录而无法关闭"提到需要提交请求“Create Accounting for Third Party Merge”(为第三方合并创建会计科目)。给客户带来比较大的疑虑,为什么我们没有操作客户合并和供应商合并,却总是会有类似的会计事件自动产生呢

针对客户的问题,根据该并发请求参数“事件”从后台找出对应的SQL:

SELECT Xe.Event_Id
      ,Gl.Name                      "Ledger Name"
       ,Xe.Event_Date                "Merge Date"
       ,Xtpv1.Third_Party_Number     "Original Party Number"
       ,Xtpsv1.Third_Party_Site_Code "Original Site Code"
       ,Xtpv2.Third_Party_Number     "New Party Number"
       ,Xtpsv2.Third_Party_Site_Code "New Site Code"
       ,Hp1.Customer_Name
       ,Hp2.Customer_Name
       ,Xte.*
       ,Xe.*
  FROM Xla_Events               Xe
      ,Xla_Transaction_Entities Xte
      ,Gl_Ledgers               Gl
      ,Xla_Third_Parties_v      Xtpv1
      ,Xla_Third_Parties_v      Xtpv2
      ,Xla_Third_Party_Sites_v  Xtpsv1
      ,Xla_Third_Party_Sites_v  Xtpsv2
      ,Ar_Customers             Hp1
      ,Ar_Customers             Hp2

 WHERE Xe.Entity_Id = Xte.Entity_Id
   AND Xe.Application_Id = 222
   AND Xe.Application_Id = Xte.Application_Id
   AND Xe.Event_Type_Code IN ('FULL_MERGE', 'PARTIAL_MERGE')
   AND Xte.Ledger_Id = Gl.Ledger_Id
   AND Xe.Process_Status_Code <> 'F'
   AND Xe.Reference_Num_1 = Xtpv1.Third_Party_Id
   AND Xe.Reference_Char_1 = Xtpv1.Third_Party_Type
   AND Xe.Reference_Num_3 = Xtpv2.Third_Party_Id
   AND Xe.Reference_Char_1 = Xtpv2.Third_Party_Type
   AND Xe.Reference_Num_1 = Xtpsv1.Third_Party_Id(+)
   AND Xe.Reference_Num_2 = Xtpsv1.Third_Party_Site_Id(+)
   AND Xe.Reference_Char_1 = Xtpsv1.Third_Party_Type(+)
   AND Xe.Reference_Num_3 = Xtpsv2.Third_Party_Id(+)
   AND Xe.Reference_Num_4 = Xtpsv2.Third_Party_Site_Id(+)
   AND Xe.Reference_Char_1 = Xtpsv2.Third_Party_Type(+)
   AND Xtpv1.Third_Party_Id = Hp1.Customer_Id(+)
   AND Xtpv2.Third_Party_Id = Hp2.Customer_Id(+)

实例数据如下:客户帐户2337合并至客户新帐户10662。相关来源数据字段全部为空,无法追溯找到相关业务单据。

提交SR官方未给出比较有价值的参考信息。只能通过代码找出业务逻辑,通过从事件类型关键字着查找数据如何产生的,如下SQL:

Select * from dba_source s where s.owner ='APPS' And S.TEXT like '%PARTIAL_MERGE%'

找到数据是由哪包调用产生,如:arp_acct_event_pkg.update_cr_dist>xla_third_party_merge_pub. third_party_merge >XLA_THIRD_PARTY_MERGE.third_party_merge
由于至包时arp_acct_event_pkg.update_cr_dist,根本不知道是哪个功能调用了它。当前猜测有如下几种情况可能会产生合并事件:
1.客户和供应商合并
2.客户帐户A的销售订单被客户帐B退货
3.客户帐户A的AR事务处理被客户帐B收款核销
通过数据检查都未找到这类似业务情况。
最后,检查包arp_acct_event_pkg.update_cr_dist代码:

有段涉及到对表ar_distributions_all数据更新,通过该表的数据初步判断是AR收款生成的数据。

因此,对AR收款进行创建、修改、核销、取消核销、记帐和取消记帐等等测试,最终找到是修改AR收款操作引起的,并且总结如下:
前提条件:
        同一个客户必须要有二帐户
重现(EVENT_TYPE_CODE=’PARTIAL_MERGE‘)部分合并事件的方法如下
1.创建收款CXP_190331,Customer name: 武汉市XXXX限公司 number:10662
2.修改该收款CXP_190331, Customer name: 武汉市XXXX限公司 number:2337,此时,通过后台查找就会产生部分合并会计事件。

同时这也是R12.1.3与R12.1.1之间的差异。




 

猜你喜欢

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