《财务凭证的替代》由会员分享,可在线阅读,更多相关《财务凭证的替代(7页珍藏版)》请在金锄头文库上搜索。
1、小技巧财务凭证的替代(Substitution)简单地讲,替代就是在会计凭证生产时(包括手工和自动过帐)允许用户根据需求对凭证抬头和凭证行项目进行一定的内容修改,这种灵活的功能可以满足一些非常变态的需求,要不怎么说SAP什么东西都能轻易配置出来呢?比如很多企业都要求会计凭证有个文本摘要可对某些自动凭证根据规则写入一些文本摘要,或修改凭证的利润中心,功能范围等,同样,理论上讲,SAP系统几乎允许你修改会计凭证的任何内容,甚至包括会计科目,SAP一直强调科目没有级别,对自动科目设置非常严谨,所以修改会计科目通常发生在自动过帐时人工无法干预科目的情况,典型的是MIRO时科目只能对应供应商主数据科目,
2、如果一个供应商发票校验需要对应应付或其他应付,系统就无法自动实行,就可采用科目替代。替代Tcode:OBBHAP/AR/GLDoc.OACJAMCreateAssetsOA02MasschangeAssetsGCVGlobalSubstitution(InSPL,CompanyLevel)GCVLocalSubstitution(InSPL,CompanycodeLevel).GGB1各模块全部替代勿LDCopyEntryQDeleteentryDSiiistituticn口StepDRulesubstitutionsp口FinancialacoountriQDODocumentheaderL
3、ineitempAP00001lSteiD001口Step002警PrerequEl1:峪SubstituticnsP臼St即003邓PrerequElte:站SUbstitutioris口St即004OStep005CJstep005SteiaPStwDOBSitstitutionAP00001step00PrerequElteBEFF-BLART=JAFJANDEKFF-EUERS=J18fi(ZAND(CESEC-HKOKTX502020000ANDBSEG-HEOWT-J1502Q6000QJ)ORESEC-HKONT=41001600007)|Substitutions(Ifprer
4、equisiteeFieldisSLtoetitLitedby:TextGanrtartvAie计提本月折旧按照国内很多企业的内部制度,所有的会计凭证都需要文本摘要并且多数凭证要打印出来存档,对于很多自动凭证却并不能产生文本摘要,此时可以使用替代塞一个文本进去,有的企业连ERP系统产生的特有的中间凭证也打印,真是不掀嫌浪费纸张。图1是一个文本摘要的例子,和Validation不同的是,Substitution只有两步骤,图1表示的是如果凭证类型是折旧AF,并且科目是累计折旧类科目或折旧费用科目,则文本摘要为“计提本月折旧”。到目前为止,我们发现Validation和Substitution建立
5、都非常简单,只要有简单逻辑思维的用户不需要任何编程经验拖拖拽拽就可以实现功能,国内的ERP设计者应该好好借鉴借鉴,ERP项目实施不容易,不要让可怜的业务顾问大夭浪费时间去玩技术玩Coding。系统允许更复杂的替代逻辑,下面举一个结合用户出口的替代简单应用实例。业务背景:假设在公司代码5100中,如果发生业务招待费,则在其行项目文本摘要字段(BSEG-SGTXT与入信息“业务招待费”以做统计。同时,在公司代码5100的期初,会将一些调整凭证或月结凭证过帐到上期间,如果有这样的业务,无论用户输入上期间的任何一天,替代将自动将上期间的凭证的过帐日期换成上期间最后一天。参考步骤如下:(1).自定义的替
6、代程序(Tcode:GCX2)ChangeViewClient-SpecificUserExitsinFISLOverviewNewentriesT3园峪图JApptareaEx.prog.ApplicationareaGBLRRGGBR000Val/sub:Exitsruleil图2GELS1|ZRGGBSOOVal/sub:ExitsforsubstitutionGBRUKGLVU000Rollup:UserexitsGIORGIVUOOOVariablefieldmovementKROURKROUOOOCstctrsummariztn:UserexitsJLCBALC:GesBerSUb
7、stitutioriJLCTT-C:TransTypeSubstitution最好Copy系统默认的程序出来修改,起码不要申请AccessKey!App.Area选择GBLS输入Copy出来的自定义程序ZRGGBS00B定义的程序名称最好不超过8位,系统只能显示程序名的前8位。(2)。建立替代步骤(Tcode:OBBH)建立一个替代的Step包括先决条件和替代内容,如图3,你可选择一个替代字段,表示替代这个字段的内容,在此选择”Onlyexit”,表示使用用户出口编写程序来替代。SubsMutoniSUBLIWStep0Q1SloncfSTEP3印.aSubstitutions(rf6nwt)
8、is$ubttutedby:TableFieldDescrirllonType000000匀Onlyexit0000005P5egABPERSettLperiodACCP000006JssegAUGGJClrgFiscalrNUIC000004_JBSECFIFOSCoithentiteCHAR000014FIEFttndsCenterCHAR00001BFKEFR_LONGFunctionalCHAR000016GEBERFundCHAR0000101BSECGIVKZExecutionCBM00D001BSEGGRASTNBRGrantCHAR000020BSECHZUONSp.G/Las
9、sgtCHAR000018BSECINTREHOREcodeCHAR000013:BSEGXEASUREFwdedCHAR000024.eseg|FARCETrdgPart*BA|CHAR000004/I44AHA导第X(3).剖析替代用户出口程序ZRGGBS00(Tcode:SE38).用户出口程序ZRGGBS0命析.究竟自定义的Form例程是fieldexit,headerexit,lineexit或completeexit有系统参数c_exit_param_none,c_exit_param_field和c_exit_param_class决定。通常用户可以看到替代出口程序如下(粗体部分
10、):exits-name=U100.exits-param=c_exit_param_none.exits-title=text-100.APPENDexits.exits-name=U101.exits-param=c_exit_param_field.exits-title=text-101.APPENDexits.exits-name=U900.exits-param=c_exit_param_class.exits-title=text-900.APPENDexits.能用在Fieldexit,onlyexit等任何地方此Forrn用于字段出口FieldexitU801只能在compl
11、etedoc才可使用.*可以对着Copyt曾加自定义的例程REFRESHETAB.LOOPATEXITS.ETAB=EXITS.APPENDETAB.ENDLOOP.增加一个例程就5个简单步骤:1. Exits-name=*表示出口例程名称。2. exits-param=*只有c_exit_param_none/field/class3种,表示例程的用法.3. exits-title=*例程的抬头显示APPENDexits.表示增加该出口例程。4. 接下来定义一个例程Form*/endform.在例程中编写替代逻辑。接下来根据业务背景编写逻辑,假设使用Form100,其类型c_exit_par
12、am_none,可用于“OnlyExit”,参考代码如下表:FORMU100.DATA:Z_PSTDATETYPESY-DATUM,Z_CURPERLIKET009B-POPER,Z_CURYEARLIKET009B-BDATJ,Z_PSTPERLIKET009B-POPER,Z_PSTYEARLIKET009B-BDATJ,Z_PERLSTDAYLIKESY-DATUM.Ifbseg-hkont=这填写您的业务招待费科目BSEG-SGTXT=业务招待费.For业务招待费用文本摘要.Endif.*如果期初发生上期的财务凭证过帐,则自动将过帐日期一律调整为上期期末最后一天.*checkposti
13、ngdatesperiodandfiscalyearCALLFUNCTIONDETERMINE_PERIODEXPORTINGDATE=BKPF-BUDATVERSION=Z1你的会计年度变式,国内多是K4IMPORTINGPERIOD=Z_PSTPERYEAR=Z_PSTYEAR.*checksysdatesperiodandfiscalyearCALLFUNCTIONDETERMINE_PERIODEXPORTINGDATE=SY-DATUMVERSION=Z1FiscalYearVar.IMPORTINGPERIOD=Z_CURPERYEAR=Z_CURYEAR.*能否在输入的posti
14、ngdate记帐让系统去判断.CHECKZ_CURYEARZ_PSTYEARORZ_PSTPERZ_CURPER.*如postingdate不在本期间得到其期间最后一天Z_PSTPER=Z_PSTPER+1.CALLFUNCTIONFIRST_DAY_IN_PERIOD_GETEXPORTINGI_GJAHR=Z_PSTYEARI_PERIV=Z1I_POPER=Z_PSTPERIMPORTINGE_DATE=Z_PERLSTDAY.*无论用户选择过帐到上期哪一天,都将过帐日期设置为最后一天BKPF-BUDAT=Z_PERLSTDAY-1.BKPF-MONAT=ZPSTPER.通过上面的业务我们可以看到,替代+用户出口能实现更复杂的业务,而这些业务通常是简单的拖拽实现不了的,再举一个典型的有用的替代实例。业务背景:在SAP中,供应商主数据的科目只有一个比如通常设置的是应付帐款,在SAP中,科目和中国传统会计不一样,其科目是不强调层级的,比如应付帐款,国内ERP可能会带供应商项目等几个核算项目,SAP采用另一种方式,它将供应商直接看成明细科目,从其主数据自动带出应付帐款,如果还需要区分是什么项目的应付,则可采用统计内部订单或特殊总帐标志,但是,在后勤发票校验(Tcode:MIRO时却不能使用特殊总帐标志。这样,比如企业从同一供应商购买生产用材料(对应普通应付帐款)和项目材料(