资源描述:
《sap 常见替代错误》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、替代问题解决重新生成程序问题Se38:RGUGBR00重新生成替带程序,选择项见下图:有时候,你必须运行该程序重新动态生产一下,替代/有效性检查才能将新的程序重新编译插入会计凭证总程序SAPMF05A,特别当你使用出口替代时,必需的!现在假设出现错误.双击红色部分,可以看到详细信息.显示userexitZP01不存在,就是OBBH/OB28有效性检查/替代中宣布了出口ZP01,但是在RGGBS000(Tcode:GCX2中定义)中却没有定义,因此程序不能激活.检查方式:注意以下3个替代表GB921T:替代/各
2、步骤描述GB921:替代/各步骤条件GB922:替代/各步骤被替代的内容SE16:GB922输入ZP01查找出其对应替代名称,见下图:可以发现替代ZSHSC01这个替代用到错误的替代出口ZP01,而且注意到其是AM模块的替代.Tcode:GGB1查看所有各模块的替代(GGB0查看所有的有效性检查),发现替代ZSHSC01步骤001使用了出口例程ZP01,可以直接使用GGB1查看,当系统替代太多实,才使用上面的表先快速定位,见下图:双击退出程序ZP01,发现RGGBS000替代/有效性检查总程序中根本找不到该子
3、例程,因此需要删除该替代ZSHSC01下的步骤001.将所有错误的替代步骤删除,有效性检查错误同样处理,有效性检查请查看GB93*!为什么替代不生效?显然,俺对这个研究太深了,首先,你应该Se38:RGUGBR00,如果还不生效,请检查相关动态程序的子例程EXP_TAB_008_BKPF/EXP_TAB_009_BSEG中的临时结构是否包含被替代的字段。请参考:http://mfg.kingdee.com/pages/sapguru/blog/archive/2009/04/07/353528.aspx如果不
4、包括,则替代不成功,几乎所有的会计凭证内容都可被替代,包括科目甚至金额(绝对要小心),当然这难度系数大点,这种设计思路值得ERP设计者借鉴。举个简单例子,你MIGO101收货,用户可能只输入采购单和行项目收货数量有限信息,保存后首先在内存中进行各种判断,各种组织结构读取,收货可能形成物料凭证,基金预算凭证,CO-PA凭证,物料分类帐凭证和FI凭证,这些数据首先在缓存中被组织,然后同步commit到数据库,替代的原理是,所有数据基本组织好了,保存在一内表A(缓存)中,如果没有替代或增强什么的,直接就到数据库了,
5、现在做个临时内表比如叫B,替代/增强的动作将如下:1.内表A=内表B2.内表B作为参数传输进入替代,假设行项目替代,替代生成的内容将到EXP_TAB_009_BSEG,EXP_TAB_009_BSEG中的字段内容更改到内表B,EXP_TAB_009_BSEG中的字段都不包括你替代的字段,你还替代啥?通常sap默认的字段没有问题,关键是你后来在GB01修改允许替代的字段可能失效,原因是程序没有动态重新生成,这种动态程序生成的东西也是一个手段,因为不同企业可能需要替代的字段不同.不过,现在你要问,为什么sap不默
6、认所有的FIdoc字段都允许被替代呢?搞这么复杂干球,我也是这样想的,不过,将简单的事情弄复杂才能赚钱呀,要是大家替代的使用都搞的象俺杀猪的这样熟,俺还能大把赚钱吗?所以以前俺喜欢大骂AG,现在俺开始有点喜欢那些鸟人这样折腾,方能显示”深奥”!1.内表B=内表A.2.内表A到数据库.最后,需要说明的是,凡是财务上的增强,通常都一定可以通过替代解决,不要想其他的东西,切记!如何取对方科目或其他信息替代2种途径:1.完全凭证替代,可能不好用,MIRO/BILLING时完全凭证替代不起作用,同时即使起作用也可能没有
7、用,比如我可能要取采购单和销售单的信息替代财务凭证某个字段内容,怎么办呢?使用方法2,在采购单/销售单等处设置一内存ID,然后在FI替代将它读取出来.exporttomemoryid/setparameterIDimportfrommemoryid/getparamterID比如根据销售组织替代利润中心,财务doc显然无销售组织,则使用内存ID!