版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、23.2、财务凭证的替代(Substitution)和Validation 样,凭证的替代在多个模块中能找到,IMG Path(IMG Path如图7-1标号2).比较实用的 SubstitutionIMG T-code 有:OBBH:AP/AR/GL Doc.| OACS:AM CreateAssets|OA02:Mass change Assets|GCVY:Global Substitutio n(lnSPL,Compa nyLevel)|GCVX:Local Substitutio n(ln SPL,Compa ny code Level).和Validation 不同的是,Valid
2、ation只做检测,一般不做相应数据的修改,Substitution 弥补了这反面的缺陷,甚至允许和user_exit相结合.假设用 户希望在产生 APAR凭证能将ven dor,customer或其它信息比如写入Assignment(BSEG-ZUONR字段,或者希望某些 P&L科目在记入某些特定成本中心时将些分析 信息写入TEXT(BSEG-SGTXT字段,可使用退代.下面举一个最简单实例假设在公司代码5100中,如使用现金类科目10010120记帐,在Text(BSEG-SGTXT)写入信息,同时在期初,可能会将一些凭证post到上期间,使用替代假设是post到上期间的凭证 Postin
3、g Date 换成上期间最后一天.此简单实例是为了说明问题,其中有些步骤和第7例Validation 相同,就不再一一讲解,希望读者在实际业务中能举一反三,发挥替代作用.1. 自定义的替代程序.相关 Tcode:GCX2.(图 9-2)1 App. Area选择 GBLS2 输入自定义程序名 ZSTSUB(Copy并取代SAP默认的标准程序 RGGBS000)*自定义的程序名称最好不超过8位,在OBBH以乎只能显示程序名的前8位.4故 areaE心叩,Application areaSBLRRCGEROOOVal/sub: Bdts for rdez3BLS 1j|ZffTSOE 2Val/s
4、ub:Exits fior substitution3BRURCLVUOOO Rollup: User exits3IMVZFIGLOOO1Variable field movementKROURKROUOOOMt ctr surrnriarEtn: User exitsLCEALC: GesBerSubstltutKnLCTT匚:TrjhsTy peSdbsti tution相关表格函数和程序相关表格 GB01|T001Q|T80D|GB03|GB03T|GB31|GB31T|GB907|GB90|GB92|GB922|GB901 |OXT_GENOBJDTL|相关函数 FI_SUBSTIT
5、UTION_ACTIVE|FI_SUBSTITUTION_DOC |FI_SUBSTITUTION_HEADER|FI_SUBSTITUTION_ITEM相关程序 ZSTSUB自定义)| GBTDMFI0| GBTDMFIJ|RGUGBROO*使用GCX2退换标准的 RGGBSOO这样就无需申请 Access Key,另外一个 GCX1是跨Client端的,一般用于特殊总帐 SPL中给Field movement定义用户出口 .2. 建立替代步骤同Validation样,也需为其建立 Step, 一个Step包括先决条件和退代(如图9-3).-二:ion001FieldExit2凭证行项目退代
6、3增加删除一个退代* 在本例中,使用 only exit U100( 对应 ZSTSUB?程序 U100)修改 line item 的 Text.4使用用户出口做退代(关于怎么选Form规则请看本例思考).5字段级退代1凭证头退代,在凭证抬头回车回保存凭证时满足条件时生效Substitutions (if 口ermcu|sitE 目 met)RjidoU902ZSUBLIKNaw subrtituti 口门Stones Test STEP for Doc. Line iti|Funds Gen terExit1 Orily exitis substituted by:c Sub我伽;ZSUBU
7、N - St OOi - Substiitibans step RUeTblesdss btiHcnBSEC BSEG ESEC ESBG ESSG ESEG ESEG 创 眈G ESEC ESECFsldluted bv:SUMtMtutiarft寸 2d Franck Accccrtna Q Docwnent Huta D 二I 卧gjB 1j &讣划J、G LIT* tt&frt 0 -JZSUBLINp -JStepOT 孚 PrerecM$iteP G Compter Dwuirwi - O Cert of Ses AcccuntnSubstitutionZSUBLIRstep001
8、Stoned Tt ST9HeldDescriptionTyeMOOWOnly exit000000AEPERSei 1L pei 1 cdACCP000006AOGCJClrg Fiscal Yrwme000004FIFOSGoul t nett 1 telCHUR000014PISTLFunck Ctr.terCHiLR000016FCEERLOFGFunctional AreaCHJLR000016EBESFondCHAK000010GRVKZEsceeutl fYOUR000001GRAFT NBRGramCHJLR000020az命G/L aietCtllRooooieIlfTREH
9、ORE cteCIUR000013MEASUREFkinded Piogra.CR000024FARCETrdg Prt BACHAR000004假设ZSTSUBForm U100的source code如下,那么在满足先决条件时,行项目的Text都写成了 Record Payment Text.FORM u100.#EC CALLED*U100如只是用于line item 退代.所以改变XBLNR5会成功*U100如果同事用于header和line item,则俩句都会成功执行BKPF-XBLNR = Refere nee For STONE Test.BSEG-SGTXT = Record
10、 Payme nt Text .ENDFORM.读者可思考下面几个问题:思考:1如果先决条件没有输入任何值,是否退代会无条件执行 ?2在ZSTSUB本人自定义),用户可参考 SAP标准程序 RGGBS000, RGGBS00的 Form会以什么规则在不同级别的(header,Li ne,Complete doc)退代中做 Exit ,用户能否自定义自己的 field exit,header exit,line exit禾口 complete exit?请看此 FORM get_exit_titles TABLES etab,有类似语句.这些由参数 c_exit_param_none, c_ex
11、it_param_field 禾口 c_exit_param_class 决定exits-name = U100.exits-param =c_exit_param_none.能用在 Field exit,only exit等任何地方exits-title = text-100.APPEND exits.exits-name = U101.exits-param = c_exit_param_field. ”此 Form只用于字段 exitexits-title = text-101.APPEND exits.exits-name = U801.exits-param = c_exit_par
12、am_class.” Form U801 只能在 Callup point 3 complete doc才可使用.exits-title = text-101.Cost center from CSKSAPPEND exits.3 BKPF,BSEG什么样的值才可应用在退代程序中?4为什么有些字段即使在退代中更改了但是不生效下面再以举一实例,彻底剖析退代的运行规则同时解释上面3,4提出的问题.首先在 FI_SUBSTITUTION_HEADER|FI_SUBSTITUTION_ITEM|ZSTSU 定义)| GBTDMFIO|GBTDMFIJ设置断点你能进行跟踪.从技术上讲,在回车或保存触发退
13、代前在屏幕上输入的 一些值就已经保存在一些内表中,然后才执行退代去根据用户设置的条件去退换一些值而已.实例:通常企业在期初未关帐前可能需要在上期间记帐如用户需要假设posting date是上期间某个日期,自动将此日期退换成上期间最后一天使用抬头退代1确定当新增退代时 BKPF-BUDAT!否可见如在此看不到,即使你写了代码也是无效的 如图9-6.1使用 only exit U100, 也可使用 field exit . 2BKPF-BUDAT 可见.ZHDSUB New substitutionStep001扇IB凰Substitutions (if prerequisite is met)
14、Field低 ajtKtituted by: Only exitExitU100Substitutable fields (Class 0084riTableField OesiutiorLType000000yEKFFBATCHLot No.JCHAR000010BKPFBKTTBoc.Header TextCHAR000025BKPFBUDATFostine Date 2jMTS000008EKFFCOINSCard typeCHAR000004EKFFcoroiCard no.CHAR000025BKFFFH HURTTransfer typeCHAR000001BKPFIHTDATEI
15、ntctcst Calc, OateMTS000008BKFFINTFORlrtInt. formula(THAR0000Q4EKFFKNUKVDoc* conditionCHAR000010BKFFPSOJIKKeasonCHAR000010BKPFPSOETPosting DateMTS000008BKFFFSODTChanged, onHATS000008EKFFpsoraJile numberCHAR000030业Tr?irni【曲七#iqq n A CM se*使用下面参考代码将 BCLTA餉BCLFIELD稍微更改就可将 BKPF,BSEG任何字段用于退代 编码.1所有退代字段关系
16、在 GB01表中,可使用下面代码使用 BUDAT可用于退代.在本人的机器上 GB01建立了维护视图,因此实际上可直接使用SE16修改GB01,如果企业可能大量使用退代和确定,可以考虑用SE11为表GB01建立维护视图,否则就使用下面程序.Report ZMODGB01.DATA ZGB01 LIKE GB01 .SELECT SINGLE * INTO ZGB01 FROM GB01WHERE BOOLCLASS = 008AND CLASSTYPE = SAND BCLTAB = BKPFAND BCLFIELD = BUDAT.* AND BCLTAB = BSEG* AND BCLFIE
17、LD = PRCTR.ZGB01-BEXCLUDE = ”.MODIFY GB01 FROM ZGB01 .2在凭证的退代和确定中,有几个比较有用的 Tcode.GGB0: All Validatio ns.GGB1: All Substitutio nsGGB2: All Rule ClassGGB3:没有这样的Tcode,嘿嘿,你自己造一个吧.GGB4:激活2检查替代代码自动生成替代代码是自动生产的,这样的自动生成程序的实际应用很多,比如在CO-PA中,相关表,结构和程序很多是自动生成的,关于程序自动生产请参考拙作ABAP百谈.记得在OBBH画面当新建一退代时,有如图9-7的画面.1退代名
18、2退代class,这个将对应到自动生成程序GBTDMFIJ.iz:,Suteti tut ion 5 円1 Entry foundR ettrictions厂LA闔CS1 fell门Subst.Substitution tedClassZHDSU9New substitutionS2 1匚 匚ciCdSubsttution|5100FDescription在 GBTDMFI中读者能看到四个子程序FORM EXP_TAB_008_BKPF(class 8,callpnt1),FORMEXP_TAB_009_BSEG(class 9,callp nt2).FORM EXP_TAB_015_BKPF
19、 和 FORMEXP_TAB_015_BSEG(Class 15,Callp nt 3).现在以FORM EXP_TAB_008_BKP为例.如果读者不能在此子程序的一个结构TEMP_STRUC发现想退代的字段(原因就不细解),很明显,必须重新生成退代程序.*如果您的退代不工作可以这样找原因,在GBTDMFIG程序中的上面提到的四个Form的TEMP_STRUC结构没有看是否有相应的字段.比如在 TEMP_STRUC结构中没有 BKPF-BUDAT,当然posting date 的退代代码就会不起作用 ,此时执行下面步骤 3运行RGUGBR0吧.原因很简单,在退代程序中定义的BKPF,BSEG
20、相当于内表,退代代码按用户的逻辑修改了BKPF后如TEMP_STRUC实际对应的是可用做替代的全部字段)中没有,BKPF就被Reset回.3重新生成程序SE38运行RGUGBR00将能选的全选上的选项再运行吧(图略).4.编写代码下面是参考程序,判断Posting Date 如在上期间(非上月,以月为期间只是期间的一特例,国外企业似乎都不这样采用,关于期间请参考第4刀SAP期间概念)自动将其退换成上期最后一 天(对其他期间无效,读者可能需要修改才可满足贵企业需求).FORM u100.*同一 Exit(Form)可用于head(Line item) 或Filed 退代,互不影响.*具体原理可跟
21、踪 GBTDMFIG有 GBTDMFI(动态调用)*此程序由Yueming Li编写,如有必要读者可能需要改动.Form 100.BSEG-SGTXT = TEST TeXT.*BKPF-BUDATTABLES: T009B.DATA: BEGIN OF T_T009B OCCURS 10,BUMON LIKE T009B-BUMON,BUTAG LIKE T009B-BUTAG,END OF T_T009B.DATA: L_DATE(8) TYPE C,L_YEAR(4) TYPE C,L_MONTH(2) TYPE C,L_DAY(2) TYPE C,L_PERMONTH(2) TYPE
22、C,L_CURYEAR(4) TYPE C,L_CURM0NTH(2) TYPE C,L_CURDAY(2) TYPE C.L_DATE = SY-DATUM.L_CURYEAR = L_DATE(4).L_CURMONTH = L_DATE+4(2).L_CURDAY = L_DATE+6 (2).L_CURMONTH = L_CURMONTH - 0.L_PERMONTH = L_CURMONTH - 1.L_DATE = BKPF-BUDAT.L_YEAR = L_DATE(4).L_MONTH = L_DATE+4 (2).L_DAY = L_DATE+6(2).L_MONTH = L
23、_MONTH - 0.IF L_CURYEAR NE L_YEAR.BKPF-BUDAT = L_DATE.EXIT.ENDIF.IF L_MONTH NE L_CURMONTHAND L_MONTH NE L_PERMONTH.BKPF-BUDAT = L_DATE.EXIT.ENDIF.SELECT BUMON BUTAGINTO T_T009BFROM T009BWHERE PERIV EQ Z1AND BDATJ EQ L_YEAR yearAND ( BUMON EQ L_CURMONTH Mon thOR BUMON EQ L_PERMONTH ).IF T_T009B-BUMON
24、 EQ L_PERMONTH.APPEND T_T009B.ENDIF.IF T_T009B-BUMON EQ L_CURMONTHAND T_T009B-BUTAG LE L_CURDAY.APPEND T_T009B.ENDIF.ENDSELECT.SORT T_T009B.LOOP AT T_T009B.IF T_T009B-BUMON EQ L_MONTH.IF T_T009B-BUTAG GE L_DAY.CONCATENATE L_YEAR T_T009B-BUMON T_T009B-BUTAG INTO L_DATE.EXIT.ENDIF.ENDIF.IF T_T009B-BUM
25、ON GT L_MONTH.IF T_T009B-BUTAG GE L_DAY.EXIT.ENDIF.ENDIF.ENDLOOP.BKPF-BUDAT=L_DATE.ENDFORM.U100使用函数的FORM u100.#EC CALLED*同一个Form可用做header和line 退代而互不影响BSEG-SGTXT =Line Item Text. For Line Sub.DATA:Z_PSTDATE TYPE SY-DATUM,Z_CURPER LIKE T009B-POPER,Z_CURYEAR LIKE T009B-BDATJ,Z_PSTPER LIKE T009B-POPER,Z
26、_PSTYEAR LIKE T009B-BDATJ, Z_PERLSTDAY LIKE SY-DATUM.*实际永远不会发生记帐到上年和上上期间的*check posting dates period and fiscal yearCALL FUNCTION DETERMINE_PERIOD EXPORTINGDATE=BKPF-BUDATVERSION=Z1 Fiscal Year Var.IMPORTINGPERIOD=Z_PSTPERYEAR=Z_PSTYEAR .*check sysdates period and fiscal yearCALL FUNCTION DETERMINE_PERIODEXPORTINGDATE=SY-DATUMVERSION=Z1 Fiscal Year Var.IMPORTINGPERIOD=Z_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中生对心理健康知识需求的调查与课程设置建议课题报告教学研究课题报告
- 2025年儿科疫苗接种健康指导合同
- 2025年电商平台冷链配送合同
- 高中英语读后续写教学中的多元评价方式探索与实践教学研究课题报告
- 文书模板-旅行社申请出境旅游业务流程
- 2025年全球航空业复苏趋势与投资行业报告
- 2025年二手奢侈品寄卖交易成本分析报告
- 云南省卫生健康委员会所属部分事业单位开展2026年第二批校园招聘的备考题库及答案详解(新)
- 2026年中国太平洋财产保险阿坝中心支公司招聘工作人员3名备考题库及答案详解(夺冠系列)
- 2026年扬州中瑞酒店职业学院单招职业技能笔试备考题库及答案解析
- 2025下半年贵州遵义市市直事业单位选调56人参考笔试题库附答案解析
- 【试卷】吉林省松原市2025-2026学年八年级上学期12月期末测试道德与法治试题
- 反霸凌宣传课件
- 车子棚出租协议书
- 民航空管局面试题及答案
- 云南民族大学附属高级中学2026届高三联考卷(四)语文+答案
- 期末综合测试卷一(试卷)2025-2026学年二年级语文上册(统编版)
- 2025山东青岛上合控股发展集团有限公司社会招聘31人参考笔试试题及答案解析
- 2025年大学康复治疗学(运动疗法学)试题及答案
- 2024年广东省春季高考(学考)语文真题(试题+解析)
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
评论
0/150
提交评论