1 / 2
文档名称:

《常见替代错误》.doc

格式:doc   大小:16KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《常见替代错误》.doc

上传人:AIOPIO 2021/9/20 文件大小:16 KB

下载得到文件列表

《常见替代错误》.doc

相关文档

文档介绍

文档介绍:替代问题解决
重新生成程序问题
Se38:RGUGBR00重新生成替带程序,选择项见下图:
有时候,你必须运行该程序重新动态生产一下,替代/有效性检查才能将新的程序重新编译插入会计凭证总程序SAPMF05A, 特别当你使用出口替代时,必需的! 现在假设出现错误.
双击红色部分 ,可以看到详细信息.
显示user exit ZP01不存在, 就是OBBH/OB28有效性检查/替代中宣布了出口ZP01,但是在RGGBS000(Tcode:GCX2中定义)中却没有定义,因此程序不能激活.
检查方式:
注意以下3个替代表
GB921T:替代/各步骤描述
GB921:替代/各步骤条件
GB922:替代/各步骤被替代的内容
SE16:GB922 输入ZP01查找出其对应替代名称,见下图:
可以发现替代ZSHSC01这个替代用到错误的替代出口ZP01, 而且注意到其是AM模块的替代 .
Tcode: GGB1查看所有各模块的替代(GGB0查看所有的有效性检查),发现替代ZSHSC01步骤001使用了出口例程ZP01, 可以直接使用GGB1查看,当系统替代太多实, 才使用上面的表先快速定位 , 见下图 :
双击退出程序ZP01,发现RGGBS000替代/有效性检查总程序中根本找不到该子例程, 因此需要删除该替代ZSHSC01下的步骤001 .
将所有错误的替代步骤删除, 有效性检查错误同样处理,有效性检查请查看GB93* !
为什么替代不生效?
显然,俺对这个研究太深了,首先,你应该Se38:RGUGBR00,如果还不生效,请检查相关动态程序的子例程EXP_TAB_008_BKPF/EXP_TAB_009_BSEG中的临时结构是否包含被替代的字段。
请参考:
如果不包括,则替代不成功,几乎所有的会计凭证内容都可被替代,包括科目甚至金额(绝对要小心),当然这难度系数大点,这种设计思路值得ERP设计者借鉴。
举个简单例子, 你MIGO 101收货, 用户可能只输入采购单和行项目收货数量有限信息,保存后首先在内存中进行各种判断,各种组织结构读取, 收货可能形成物料凭证,基金预算凭证,CO-PA凭证,物料分类帐凭证和FI凭证,这些数据首先在缓存中被组织,然后同步commit到数据库, 替代的原理是,所有数据基本组织好了,保存在一内表A(缓存)中,如果没有替代或增强什么的,直接就到数据库了,现在做个临时内表比如叫B,替代/增强的动作将如下:
内表A = 内表B
内表B作为参数传输进入替代, 假设行项目替代, 替代生成的内容将到EXP_TAB_009_BSEG, EXP_TAB_009_BSEG中的字段内容更改到内表B ,EXP_TAB_009_BSEG中的字段都不包括你替代的字段,你还替代啥?
通常sap默认的字段没有问题, 关键是你后来在GB01修改允许替代的字段可能失效,原因是程序没有动态重新生成