和Validation一样,凭证的替代在多个模块中能找到,IMG Path (IMG Path如图7-1标号2).
比较实用的Substitution IMG T-code有: OBBH:AP/AR/GL Doc.| OACS:AM Create Assets|OA02:Mass change Assets|GCVY:Global Substitution(In SPL,Company Level)|GCVX:Local Substitution(In SPL,Company code Level).
和Validation不同的是,Validation只做检测,一般不做相应数据的修改,Substitution弥补了这反面的缺陷,甚至允许和user_exit相结合.
假设用户希望在产生APAR凭证能将vendor,customer 或其它信息比如写入Assignment(BSEG-ZUONR)字段,或者希望某些P&L科目在记入某些特定成本中心时将些分析信息写入TEXT(BSEG-SGTXT)字段,可使用退代.
下面举一个最简单实例假设在公司代码5100中,如使用现金类科目10010120记帐,在Text(BSEG-SGTXT)写入信息,同时在期初,可能会将一些凭证post到上期间,使用退代假设是post到上期间的凭证Posting Date换成上期间最后一天.
此简单实例是为了说明问题,其中有些步骤和第7例Validation相同,就不再一一讲解,希望读者在实际业务中能举一反三,发挥退代作用.
-
自定义的退代程序.
相关Tcode:GCX2. (图9-2)
[1]App. Area 选择GBLS
[2]输入自定义程序名ZSTSUB(Copy并取代SAP默认的标准程序RGGBS000)
***自定义的程序名称最好不超过8位,在OBBH似乎只能显示程序名的前8位.
相关表格函数和程序.
相关表格GB01|T001Q|T80D|GB03|GB03T|GB31|GB31T||GB907|GB90|GB92|GB922|GB901
|OXT_GENOBJDTL|,相关函数FI_SUBSTITUTION_ACTIVE|FI_SUBSTITUTION_DOC
|FI_SUBSTITUTION_HEADER|FI_SUBSTITUTION_ITEM.相关程序ZSTSUB(自定义)| GBTDMFI0| GBTDMFIJ|RGUGBR00
***使用GCX2退换标准的RGGBS000这样就无需申请Access Key,另外一个GCX1是跨Client端的,一般用于特殊总帐SPL中给Field movement定义用户出口.
-
建立替代步骤
同Validation一样,也需为其建立Step,一个Step包括先决条件和退代(如图9-3).
[1]凭证头退代,在凭证抬头回车回保存凭证时满足条件时生效.
[2]凭证行项目退代.
[3]增加删除一个退代
***在本例中,使用only exit U100(对应ZSTSUB子程序U100)修改line item的Text.
[4]使用用户出口做退代. (关于怎么选Form规则请看本例思考).
[5]字段级退代.
假设ZSTSUB Form U100的source code如下,那么在满足先决条件时,行项目的Text都写成了Record Payment Text.
FORM u100. "#EC CALLED
***U100 如只是用于 line item退代.改变XBLNR不会成功 .
***U100如果同时用于header和line item,则俩句都会成功执行.
***itComp. SE16:w,e,by industry,by Tcode
BKPF-XBLNR = ‘Reference For STONE Test