在物料凭证过账(入出库处理,物料转储处理)时,如果产生了相应借贷金额的变化,系统会自动产生相应的会计凭证。

有许多用户发现系统中有时会出现物料凭证产生了会计凭证没有产生,或者是相反会计凭证产生了物料凭证却丢失了的现象。在物料分类总帐被启用的情况下,系统会报错C+048,相关物料的入出库移动因为此错误而不能进行。由此会对业务产生巨大影响,如重要物料不能移动,月结年结不能做之类。更甚者由此产生的MM和FI之间的巨大差异会成为审计的焦点。

在此对于此现象产生的可能原因,以及如何避免此现象发生的注意事项进行了如下的总结。

在物料凭证过账中经常被使用到的User-exit以及BAdI

物料凭证丢失相应的财务凭证

财务凭证丢失相应的物料凭证

检查机制

SAP notes

在物料凭证过账中经常被使用到的User-exit以及BAdI

物料凭证过账中,有很多需求是进行企业内部自定义的一些过账前的检查,BAdI MB_DOCUMENT_BADI

(method MB_DOCUMENT_BEFORE_UPDATE)和User-exit  EXIT_SAPLMBMB_001(include ZXMBCU01

/ enhancement component MB_CF001)是经常被使用到的。如果在这些用户出口中写入了不恰当的代码,

就会造成表题中所描述的现象。下面给出了一些不恰当的代码示例:

COMMIT WORK

FROM MEMORY

Remote Function Call (CALL FUNCTION .. DESTINATION)

Own updates on the document or stock tables (for example, an update on the table MBEW, MARD, MSEG)

Unlocking data (for example, by DEQUEUE_ALL)

ROLLBACK WORK

MESSAGE TYPE ‘A’

Calling a dialog box (POPUP_TO_CONFIRM, for example)

摘选自SAP note 92550

物料凭证丢失相应的财务凭证

这里引入一个SAP LUW的概念。LUW是Unit Logical Unit of Work的缩写,通常有Database LUWs

和SAP LUWs的区别。 通俗的理解就是SAP为了在多个对话屏幕之间保证数据一致性

(只有保存操作成功一个事务代码才算完成),在Database LUW的基础上所进行的一种设计。

而SAP LUW的技术手段之一就是使用CALL FUNCTION… IN UPDATE TASK将所有要更新的

内容封装并登记起来,由COMMIT WORK触发一并在更新进程(update work process)上执行。

ABAPHELP文档中有更为详细的的介绍与解释。

BAdI MB_DOCUMENT_BADI就是在起到这样作用的Function Module MB_UPDATE_TASK

后被调用到的,因此如果在此BAdI implementation中写入COMMIT WORK这样的命令,

将直接破坏SAP LUW的构成。

因为在此时物料凭证相关的更新任务已经被登记到系统中,等待COMMIT WORK从而写入数据表,

而会计凭证相关的更新任务还没有被系统登记。 如在BAdI 中写入COMMIT WORK,那一旦在会计

更新处理中出现了异常,SAP LUW将不能完整地ROLL BACK。

物料凭证方:

Call function ‘A’ in update task.

Call function ‘B’ in update task.

BAdI  MB_DOCUMENT_BADI (method MB_DOCUMENT_BEFORE_UPDATE)

写入COMMIT WORK -> 物料凭证的更新被触发,数据表MKPF/MSEG会被更新。

会计凭证方:

Call function ‘C’ in update task.

Call function ‘D’ in update task.

->假设在此阶段发生了更新异常,系统将只能ROLL BACK到前次COMMIT WORK后的状态,

由此产生了会计凭证未更新而物料凭证被更新的情况

仍然有用户会有问题,为什么这个问题不是一直发生,以前不都用得好好的?因为此现象只在FI这边

更新异常出错,整个事务代码不能完整地 ROLLBACK时才会发生。 可能因为后台配置的改变或者是

系统在运用中数据的改变(number range 重复了之类)而产生了FI更新的错误,才会发生此现象。

两次COMMIT WORK如果都成功的话,用户是观察不到此现象的。

财务凭证丢失相应的物料凭证

类似的,如果在BAdI或者User exit中写入了ROLL BACK的命令,那么

物料凭证方:

Call function ‘A’ in update task.

Call function ‘B’ in update task.

BAdI  MB_DOCUMENT_BADI (method MB_DOCUMENT_BEFORE_UPDATE)写入ROLLBACK

-> 物料凭证的更新被取消

会计凭证方:

Call function ‘C’ in update task.

Call function ‘D’ in update task.

标准的COMMIT WORK被执行,却只有会计凭证将会得到更新

检查机制因为此问题经常产生,而且一旦大批量发生的话修正非常繁琐,业务影响非常之大,SAP发行了Note 1776835,

一旦系统检测到非标准的COMMIT WORK或者是ROLLBACK 的命令,将丢出中断信息(dump)

而终止整个事务代码的进行。在ST22 dump的详细信息中,用户可以看到非标准COMMIT WORK是

在何处被执行的,从而修改代码,避免此类问题的发生。

因此对于系统版本不够高的用户,推荐使用SNOTE将此Note导入系统中,以免发生

丢失会计凭证的现象。总之用户的自开发应遵循SAP LUW,避免引起不必要的不整合的现象。

SAP notes

关于MMFI整合性问题,SAP有许多官方的Note进行说明与解释

Note 968812 MM-FI Differences caused by ROLLBACK or COMMIT

Note 92550  Stock inconsistency due to customer enhancement (exit, BAdI)

Note 1284654  Caution with implementations of the BAdI: MB_DOCUMENT_BADI

sap 分摊分配不产生会计凭证的原因_#MM 物料凭证没有产生相应的会计凭证, 为什么呢? 怎么预防。...相关推荐

  1. SAP HUM针对HU做货物移动后生成的物料凭证何处看相关的HU信息?

    SAP HUM针对HU做货物移动后生成的物料凭证何处看相关的HU信息? VLMOVE事务代码,对某个HU做货物移动,过账后产生如下的物料凭证号, MIGO里显示这个物料凭证号, 想知道该物料凭证号针对 ...

  2. sap 分摊分配不产生会计凭证的原因_SAP软件的物料分类账功能

    物料账介绍 物料分类账(Material Ledger)是SAP财务模块的重要功能之一,用于对标准价计价的物料进行差异处理.激活ML后,系统会在"工厂+物料"层(或更细的层次)为每 ...

  3. sap 分摊分配不产生会计凭证的原因_MM 物料凭证没有产生相应的会计凭证...

    作者:ChampaignWolf    编辑:SAP全球顾问云之家在物料凭证过账(入出库处理,物料转储处理)时,如果产生了相应借贷金额的变化,系统会自动产生相应的会计凭证.有许多用户发现系统中有时会出 ...

  4. sap 分摊分配不产生会计凭证的原因_会计凭证的实际分类及凭证管理应用

    前文我们对于会计凭证基础理论作了一个回顾,同时留了一个思考作业: 相信,你曾经有很多次面对以下问题:为什么我以前用的是收付转,现在只用记账凭证了?那我怎么区分呢?为什么我只有一个凭证类型"记 ...

  5. SAP中看板触发WM转储TO确认自动关联产生MM物料凭证的控制

    己知流程如下: 生产扫看板--系统自动产生TR--自动生成TO转储单--仓库人员确认转储单--确认TO动作会同步产生MM中的311物料凭证 相关业务流程下图的TO转储单和物料凭证中可以看出来.这里发现 ...

  6. SAP 会计凭证和物料凭证的关系

    会计凭证主表 BSEG 会计核算凭证标题 BKPF 物料凭证清单 MSEG 根据会计凭证找到相应的物料凭证: BESG-BELNR 会计凭证号. BKPF-BELNR 会计凭证号. BKPF-AWKE ...

  7. SAP R/3 中会计凭证和物料凭证的对应关系

    关键表: 会计凭证主表 BESG 会计核算凭证标题 BKPF 物料凭证清单 MSEG 根据会计凭证找到相应的物料凭证: BESG-BELNR 会计凭证号. BKPF-BELNR 会计凭证号. BKPF ...

  8. SAP中物料凭证和会计凭证有什么区别

    1.物料凭证对应实际业务中物资部门的出.入库等库存操作记录单据,会计凭证对应实际业务中财务部门的根据原始凭证形成的记账凭证: 2.物料凭证基于工厂层级,会计凭证基于公司代码层级: 3.物料凭证中也有金 ...

  9. SAP CO模块 KSV5 费用分摊分配解析

    CO成本控制是SAP财务的一大难点,有些地方可能会比较绕,但是捋顺思路,其实也还行. (文中所有数据来源皆为作者杜撰,请勿对号入座,谢谢) 第一步KSH1创建接收方成本中心组:1004A001: 第二 ...

最新文章

  1. [CVPR 2020] RandLA-Net:大场景三维点云语义分割新框架(已开源)
  2. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...
  3. android 流式编程,流式编程
  4. 应用程序 mysql 连接_学生信息管理系统之四:实现应用程序与数据库的连接
  5. Spring框架bean的注解管理方法之一 使用注解生成对象
  6. dnf 跨服 服务器 位置,dnf2017跨区表_2017dnf90级版本跨区表_快吧游戏
  7. 这个数据仓库,竟然把淘宝和京东干翻了。。
  8. go和python性能对比_Go和Python Web服务器性能对比
  9. BottomNavigationView的使用
  10. python os.system(cls)没反应_这真的是全宇宙最简单的Python安装方式了
  11. 无数老板做企业还在卖产品赚差价
  12. ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1
  13. popToRootViewController & popToViewController
  14. 牢记31种CSS选择器
  15. mysql查询男生基本情况_MySQL(一)基本查询
  16. 【深度学习基本概念】上采样、下采样、卷积、池化
  17. openwrt添加SLM750模块驱动
  18. 证书有效性验证、根证书
  19. 通俗易懂的Kafka零拷贝机制
  20. 程序员如何避免面向监狱编程?避免踩雷!

热门文章

  1. MapReduce-案例共同好友分析
  2. 外贸邮件怎么群发?群发邮件的电子邮箱有哪些?
  3. userinit.exe异常的全面解决方案
  4. iphone13pro和iphone13pro max的区别 哪个性价比高
  5. cad转kml代码 lisp_CAD图形文件与KML格式精准转换方法
  6. 想唱就唱!草根音乐_超牛的地铁清唱~
  7. 计算机蓝屏安全模式都启动不了,电脑一开机就蓝屏,安全模式也进不去怎么处理?...
  8. 抖音生肖号项目评估,具体操作流程拆解,如何变现?
  9. 送礼送时尚 当然首选自由自在进口食品
  10. Java实现文件格式转换(如amr转MP3)并上传FTP服务器实例