IMG-FI-SA-30-04 财务凭证的替代(复杂)

上传人:飞****9 文档编号:129494019 上传时间:2020-04-23 格式:DOC 页数:14 大小:553KB
返回 下载 相关 举报
IMG-FI-SA-30-04 财务凭证的替代(复杂)_第1页
第1页 / 共14页
IMG-FI-SA-30-04 财务凭证的替代(复杂)_第2页
第2页 / 共14页
IMG-FI-SA-30-04 财务凭证的替代(复杂)_第3页
第3页 / 共14页
IMG-FI-SA-30-04 财务凭证的替代(复杂)_第4页
第4页 / 共14页
IMG-FI-SA-30-04 财务凭证的替代(复杂)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《IMG-FI-SA-30-04 财务凭证的替代(复杂)》由会员分享,可在线阅读,更多相关《IMG-FI-SA-30-04 财务凭证的替代(复杂)(14页珍藏版)》请在金锄头文库上搜索。

1、财务凭证的替代(复杂)一、 适用范围:本文档适用于复杂的替代,涉及到ABAP,涉及到出口(exit)二、 替代(Substitution):在凭证保存前根据设置条件判断此凭证是否有效,其中可以按抬头、行项目或完全凭证来判断,然后根据替代规则把原有字段替换当前字段。三、 替代的逻辑:简单理解,首先将用户自屏幕上输入的值临时保存在内表中,当通过了所有的业务检查, 最后保存到数据库, 替代则是根据用户设置的条件去替换掉内表的一些临时内容再保存到数据库。四、 使用到的TCODE:OBBH:AP/AR/GL Doc.OACS:AM Create AssetsOA02:Mass change Assets

2、GCVY:Global Substitution(In SPL,Company Level)GCVX:Local Substitution(In SPL,Company code Level).GGB1:各模块全部替代五、 财务凭证的替代(Substitution)和Validation不同的是,Validation只做检测,一般不做相应数据的修改,Substitution弥补了这反面的缺陷,它和user exit结合将方便用户编写更复杂的逻辑。注意的是,如果Substitution使用User exit在程序中只做检查而不替代内容,此时,Substitution可以完全取代Validatio

3、n。简单地讲,替代就是在会计凭证生产时(包括手工和自动过帐)允许用户根据需求对凭证抬头和凭证行项目进行一定的内容修改,这种灵活的功能可以满足一些非常变态的需求,六、 实例1比如国内很多企业都要求会计凭证有个文本摘要可对某些自动凭证根据规则写入一些文本摘要,或修改凭证的利润中心,功能范围等,同样,理论上讲,SAP系统几乎允许你修改会计凭证的任何内容,甚至包括会计科目,SAP一直强调科目没有级别,对自动科目设置非常严谨,所以修改会计科目通常发生在自动过账时人工无法干预科目的情况,典型的是MIRO时科目只能对应供应商主数据科目,如果一个供应商发票校验需要对应应付或其他应付,系统就无法自动实行,就可采

4、用科目替代。按照国内很多企业的内部制度,所有的会计凭证都需要文本摘要并且多数凭证要打印出来存档,对于很多自动凭证却并不能产生文本摘要,此时可以使用替代塞一个文本进去,有的企业连ERP系统产生的特有的中间凭证也打印,真是不掀嫌浪费纸张。图1是一个文本摘要的例子,和Validation不同的是,Substitution只有两步骤,图1表示的是如果凭证类型是折旧AF,并且科目是累计折旧类科目或折旧费用科目,则文本摘要为“计提本月折旧”。图1中建立Substitution和建立Validation步骤一样。到目前为止,我们发现Validation和Substitution建立都非常简单,只要有简单逻辑

5、思维的用户不需要任何编程经验拖拖拽拽就可以实现功能,国内的ERP设计者应该好好借鉴借鉴,ERP项目实施不容易,不要让可怜的业务顾问天天浪费时间去玩技术玩Coding 。系统允许更复杂的替代逻辑,下面举一个结合用户出口的替代简单应用实例。业务背景:假设在公司代码5100中,如果发生业务招待费,则在其行项目文本摘要字段(BSEG-SGTXT)写入信息“业务招待费”以做统计。同时,在公司代码5100的期初,会将一些调整凭证或月结凭证过帐到上期间,如果有这样的业务,无论用户输入上期间的任何一天,替代将自动将上期间的凭证的过帐日期换成上期间最后一天。参考步骤如下:(1).自定义的替代程序(Tcode:G

6、CX2)最好Copy系统默认的程序出来修改,起码不要申请Access Key! App. Area 选择GBLS,输入Copy出来的自定义程序ZRGGBS00,自定义的程序名称最好不超过8位,系统只能显示程序名的前8位。(2)。建立替代步骤(Tcode:OBBH)建立一个替代的Step包括先决条件和替代内容,如【图3】,你可选择一个替代字段,表示替代这个字段的内容,在此选择”Only exit”,表示使用用户出口编写程序来替代。(3).剖析替代用户出口程序ZRGGBS00(Tcode:SE38).用户出口程序ZRGGBS00分析.究竟自定义的Form例程是field exit,header e

7、xit,line exit 或complete exit有系统参数c_exit_param_none, c_exit_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只用于字段出口

8、Field exit exits-title = text-101. APPEND exits.exits-name = U900. exits-param = c_exit_param_class.”U801只能在complete doc才可使用. exits-title = text-900. APPEND exits. *.可以对着Copy增加自定义的例程 REFRESH ETAB. LOOP AT EXITS. ETAB = EXITS. APPEND ETAB. ENDLOOP.增加一个例程就5个简单步骤:1Exits-name = *表示出口例程名称。2exits-param =*

9、只有c_exit_param_none/field/class3种,表示例程的用法.3exits-title=* 例程的抬头显示4APPEND exits.表示增加该出口例程。5.接下来定义一个例程Form * /endform .在例程中编写替代逻辑。接下来根据业务背景编写逻辑,假设使用Form 100,其类型c_exit_param_none,可用于“Only Exit”,参考代码如下表:FORM U100. DATA:Z_PSTDATE TYPE SY-DATUM, Z_CURPER LIKE T009B-POPER, Z_CURYEAR LIKE T009B-BDATJ, Z_PSTP

10、ER LIKE T009B-POPER, Z_PSTYEAR LIKE T009B-BDATJ, Z_PERLSTDAY LIKE SY-DATUM.If bseg-hkont = 这填写您的业务招待费科目.BSEG-SGTXT = 业务招待费. For业务招待费用文本摘要.Endif.*如果期初发生上期的财务凭证过帐,则自动将过帐日期一律调整为上期期末最后一天.*check posting dates period and fiscal yearCALL FUNCTION DETERMINE_PERIOD EXPORTING DATE = BKPF-BUDAT VERSION = Z1 你的

11、会计年度变式,国内多是K4 IMPORTING PERIOD = Z_PSTPER YEAR = Z_PSTYEAR .*check sysdates period and fiscal yearCALL FUNCTION DETERMINE_PERIOD EXPORTING DATE = SY-DATUM VERSION = Z1 Fiscal Year Var. IMPORTING PERIOD = Z_CURPER YEAR = Z_CURYEAR.*能否在输入的posting date记帐让系统去判断.CHECK Z_CURYEAR Z_PSTYEAR OR Z_PSTPER Z_CU

12、RPER.*如posting date不在本期间得到其期间最后一天Z_PSTPER = Z_PSTPER + 1 .CALL FUNCTION FIRST_DAY_IN_PERIOD_GET EXPORTING I_GJAHR = Z_PSTYEAR I_PERIV = Z1 I_POPER = Z_PSTPER IMPORTING E_DATE = Z_PERLSTDAY .*无论用户选择过帐到上期哪一天,都将过帐日期设置为最后一天BKPF-BUDAT = Z_PERLSTDAY - 1 .BKPF-MONAT = Z_PSTPER .通过上面的业务我们可以看到,替代+用户出口能实现更复杂的

13、业务,而这些业务通常是简单的拖拽实现不了的,再举一个典型的有用的替代实例。七、 实例2业务背景:在SAP中,供应商主数据的科目只有一个比如通常设置的是应付帐款,在SAP中,科目和中国传统会计不一样,其科目是不强调层级的,比如应付帐款,国内ERP可能会带供应商项目等几个核算项目,SAP采用另一种方式,它将供应商直接看成明细科目,从其主数据自动带出应付帐款,如果还需要区分是什么项目的应付,则可采用统计内部订单或特殊总帐标志,但是,在后勤发票校验(Tcode:MIRO)时却不能使用特殊总帐标志。这样,比如企业从同一供应商购买生产用材料(对应普通应付帐款)和项目材料(对应应付项目款)且需要从会计科目上

14、就直接区分时两种应付时就有点小麻烦。一般的思路有这么些:I.因为同一供应商主数据中只能有一个科目又不能特殊总帐标志,建议拆分成多个虚拟供应商来对应不同科目,此法严重违反编码唯一性原则,贼笨。II.会计科目还是使用同一个应付帐款科目,附加一个字段比如文本/参考字段来区分同一个供应商的不同应付,假设供应商还承包了你的在建项目有涉及应付劳务,如果仅用一个文本区分不严谨,也没有从科目上直接区分那样直观。III使用科目替代方式解决,直接从科目上区分不同应付款。参考步骤如下:a.SE16:V_T053定义行文本标志,其中ZNOR:MIRO 普通应付和ZPSC:MIRO 项目应付。b.建立特殊总帐标志9表示应付项目款,并设置好应付项目款会计科目。 在MIRO的时候抬头的“文本”选择a步骤中建立的文本c.使用Only exit出口替代,这样使用替代就直接从科目上就区分出了应付帐款类型,e. 基本设置 1.2.3.4.SE38参考代码如下表(参考使用,责任自负):FORM U100 .

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 经济/贸易/财会 > 资产评估/会计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号