资源描述
SAP FICO太TMD容易系列 屠夫宰SAP系列之特别总帐一日通特别总帐一日通特别总帐 (Special Purpose Ledger)13.7.1基本设置(Basic Settings)13.7.2计划(Planning)163.7.3实际过帐(Actual Posting)163.7.4期间处理(Periodic Processing)163.7.5信息系统(Information System)163.7.6工具(Tools)16特别总帐 (Special Purpose Ledger)SAP的应用和实施其实远不象传说中的那么神秘,特别是现在相信ERP的概念已经深入”民心”,不象多年前你实施一个ERP项目甚至还得负责企业用户的基本电脑操作培训.我做ERP开发已经近十年了,第一次听说SAP应该是98年,那时我在修补BAAN,我的第一印象就是听说干SAP的待遇其高.我开始接触SAP是2004年下年,我的感觉是其实SAP的应用不过如此,最搞笑的是似乎很多人已经忘却了SAP TMD首先也是一个软件系统,既然这样, 相对ERP设计来讲,它的应用和实施本来就应该不是复杂的,一个系统本来就应该是Keep usage as simply as possible,而设计才应该是Consider business process as complex as possible ,除非你设计的ERP的系统专门只为了解决某行业的某企业的某阶段的某些问题.有人说俺杀猪的还没领悟SAP的精髓(注, 精髓此二字是他们经常挂在嘴边的,不过估计他们是自己也没搞清楚,如果没错的话,我记得猪呀牛的只有骨髓,你硬要说我没吃过骨髓那就真的是诬陷).我和老婆讲,每天起床不用浪费时间折被子吧,这晚上不又要铺下来吗?老婆回答:如果今天你不折被子,明天你又会找借口说睡觉不用洗脚吧,反正洗完了又会变脏,如果不会或没有变脏又何苦洗,这叫生活规则,懂啵?这个问题正好回答为什么SAP应用如此简单可是你企业却要耗费巨资去请顾问,这就是游戏规则.一位学者这样阐述人生的3重境界,第1重:见山是山,见水是水,第2重:见山不是山,见水不是水,第3重是:见山仍是山,见水仍是水. 企业ERP的应用也该如此,第1,ERP是一个信息系统,第2,ERP是一个(辅助)管理系统,第3,ERP是一个信息系统.有位兄弟说了一句话:不上ERP是等死,上了是找死.如果你从这个角度来讲,就很容易理解,之前国内大部分企业都是经过多年计划经济时代的国企,管理水平如何我不多说,我应用台湾张五常的一句话:国企不倒,天理难容.如果你的企业要靠ERP来代退人管理,一个企业吹嘘上了ERP后堵住了资金黑洞,另一个企业更得意上了ERP后采购猫腻没了,真是I服了U,这是什么跟什么呀,就不多评论了. 一个真正的高管理水平的公司应该将ERP看成一个信息系统,能及时提供正确数据的信息系统(管理决策还是靠人),管理应已成习惯,无为而治,MD,现在好好再宰两年SAP以后再慢慢来吹,等以后俺得势了一定要高薪聘请象俺老弟SAP搅肉机这样的专门能吹善写的高手做秘书天天也整点管理方面的文章到处去晒晒问:你为什么把这篇文章叫特别总帐一日通.没当此时,我总很谦虚地回答,主要一是屠宰SAP真TMD太容易了,你只要花一天的时间看看这篇文章就已经能成为传说中的超级SPL杀手,二是SAP AG估计暂时还没设计出比较有难度的复杂东西来(据可靠消息,本来SAP AG那帮鸟人也不服气确实曾想设计一些专门难一下屠夫这样的刺头的东西,后来经慎重考虑觉得没有必要这样刁难俺老人家,同时主要是就算整出来了,最后还不照样惨死在俺刀下,只是时间问题,就不了了之.).1基本设置(Basic Settings)下面10项的IMG path基于上图.(1)Perform PreparationT-code :GCVO SE16:T000C如图1,在此定义允许Local Ledger, Global Ledger post到特别总帐和允许一些文本使用多语言版本.使用SPL是如此的简单,如果读着使用SAP标准的SPL Ledger L0(表GLT1)的话,读者不必要去了解SPL的具体细节,要做的只有两步,1 GCVO启动SPL, 2 Tcode:GCL2 Maintain ledger时加上您的Company Codes就可以(请参照(6) Master Data- Maintain Ledgers),如需要,你可为Ledger L0选择不同于一般总帐的会计年度变式.FB50记笔帐,使用GD23或SE16:GLT1就能看到数据被Post到Ledger L0了,如果你的Ledger 0和Ledger L0的会计年度不同,你特意做个Test Scenario,相信你已经看到FI数据post到了SPL Ledger L0. 如果这时你很高兴以为SPL真的很TMD容易混,那就TNND错了.特殊总帐的原理很简单,就是在记帐时数据Post到Leger 0(一般总帐)同时根据你的配置将数据记到特别总帐相关表而已.(2) Maintain Coding BlockT-code:OXK1|OXK2|OXK3什么是Coding block?为了让读者彻底理解它举一个简单的例子,假设你设计了一个学生成绩管理系统,其中记录学生成绩表XSCJ有这些字段XhID(学号),Name(姓名),grade(年级),Class(班级),Chinesescore(语文成绩),Mathscore(数学成绩) 等,现在需要在填写学生成绩同时输入学生的年纪身高信息 (在此姑且不讨论设计范式,因为按设计范式,XSCJ表保留XhID就足够,Name,Grade,Class你通常会建立另一学生资料表XSZL,如果你看SAP的物料主数据设置,就是物料描述都建立MAKT表,已经是第N范式).这时需要的是更改XSCJ加入这些字段或在XSCL表中加入一个结构,这结构包含年纪身高字段. 然后在记录学生成绩时定义一个子屏幕弹出(或默认带出,SAP管这叫Account Assginment coding block screen)一个窗口让用户维护学生信息,在保存学生成绩时将这些信息也一并保存.SAP Codig block一般原理基本如下,它允许增加字段,自动将增加的字段加入各模块的相关表中,并且动态产生一些支持程序. 各模块的相关表究竟是哪些表?下面将继续详细阐述coding block的设置.OXK3 Maintain coding block fields进入后界面如图2. 1专家模式如果读者对ABAP很熟悉,使用此模式,你将一步步建立domain, data element,structure(CI_COBL,CI_COBL_BI),然后是将增加的field加入表BSEG(当然还有其它模块的表和Structure),如果读者觉得自己还不是专家,就使用默认的Light mode(简易模式)吧,它自动完成这些操作.你按F6键Add自定义Field,选择开发类(47后是Package),输入字段类型和长度.2coding block subscreen OXK1你想在记帐的account assignment屏幕自动加入刚才自定义字段(本例是ZZCB1),请使用它3产生一些程序4SAP标准的科目分配字段,这些字段使用SE16:TCOBF可看到,ZZCB1也在此中. 5自定的ZZCB1,需要指出的是如果使用的是include structure, 这字段将假如COBL,TCOBF,BSEG等表 6只是将此结构Append到COBL中,OXK1并不可见,它将被用在一些用户自定义程序中.激活字段ZZCB1的Logcoding block field ZZCB1激活过程由于修改了大量标准表和结构(即要将这字段插到各模块可能设计的表中),你可能需要Access Key.读者必须耐心等待整个激活过程,在此过程中,读者可发现所有的记帐操作都可能会错误,毕竟连BSEG表都正在更新.那个著名的记帐总程序SAPMF05A需要重新编译(不知读者对半解释型的ABAP的运行速度反应如何?).图3读者可看到激活field ZZCB1更新了的ABAP对象,包括CO用到的一些ABAP对象,典型的比如CO Line item表COEP和SPL 共用的Send table ACCIT_GLX(结构)等,SE11你看到有了ZZCB1 .1.在等待激活时你唯一要做的就是耐心等待,如果过程中途意味Cancel, 这将有一定风险,你可能会发现记帐出了问题,这就意味大多数会产生财务凭证的交易失败,开PO出了问题.你可根据ABAP错误使用SE11直接去激活ABAP对象.如果需要,可执行这些程序重新生成程序或排错,SE38:RGUGBR18|RGUGBR00|RGUGBR26| RSINCL00.2. 为什么激活过程会如此长?很容易理解,SAP是一个庞大的集成系统,但是会计凭证的产生(表BSEG)就有个模块Post过来的相关数据,你在BSEG加了一个字段,这些模块的相关程序或程序中使用的结构肯定要做相应调整 . 至于激活内部的设计逻辑如何, SAP AG的设计人员应该最清楚.3.什么时候要自定义Coding block字段? 一企业希望费用能按多种用途分析,Internal Order,Cost center, Functional area等还是不能满足其需求,Line item Text已做它用,财务部依旧要求费用区分能By类,By个人,By区域,By.,总之,似乎你已经没辙,这样的情况下,你就字定义coding block字段,上面已经知道这些字段是可用于Account assignment的(OXK1).一般的财务软件都会提供一个类似功能,就是允许用户自由定义Account assignment字段.4. SAP允许定义最多7个coding block fields,这些自定义字段也可用在SPL中,因为在SPL Send table ACCIT_GLX(结构)你能看到它(前提是你必须将ZZCB1加入你定义的SPL 表,请看接下来的相关配置).CO相关表比如COEP你可看到ZZCB1,这意味自定义字段的数据也能传到CO模块,很不幸的是,你不能将自定义字段ZZCB1内容传到CO-PCA模块,因为似乎没有相关配置允许你更改Ledger 8A的表GLPCA/GLPAP/GLPCT(比如你可将Ledger L0的GLT1改成你自定义的table,而这table你包含了ZZCB1).关于如何使用OXK1定义Account assignment subscreen请看例2 维护coding block screen (3) Tables一. Execute Express InstallationTcode: GCIQ如图4,快速安装(Express installation)你可建立更改删除table group,Field movement和SPL Ledger,在此介绍如何建立SPL 的table group .1建立一个table group ZSTSPL .2在按此按钮时会提示STSPLT-Summary table,ZSTSPLA-Actual line item table,ZSTSPLP-Plan line item table,ZSTSPLO-Object table_1 (object/partner)和,ZSTSPLC- Object table_2 (transaction attributes)5个表将被建立.3在install Table group时,会产生一些程序,SAP强烈推荐reinstall table group,特别是test,和production server是同一台(估计没多少企业会这样),很显然,reinstall会重新更新这些程序,有ABAP知识的人知道程序激活后在同一server是跨client的, 如果不这样做可能导致一些潜在错误.随着计算机的迅猛发展,由于服务器的性能已经大大提供, SPL数据通常设置和一般总帐同步,SPL出错的后果是正常的财务操作也会做不下去,所以你reinstall table group.4所谓的send fields,从1知道在建立table group时会产生5个表,此些表的部分字段是SAP动态根据其自己设计逻辑动态产生的(比如ZSTSPLT-summary table就类似GL summary table GLT0,其中包含TSL01-TSL16-对应各期间交易|凭证货币的累计金额和HSL01-HSL16则是对应累计本位币金额,这些字段必须在SPL的summary table),你还可加入其他字段.5细心的读者会发现这些额外的字段恰好就是account assignment fields6只是这些字段前加了ZZ前缀,假设加入profit center ZZPRCTR和自定义的ZZBC1字段7自定义的ZZBC1字段.1 什么是table group?Table group的意思就是将这些SPL表将组成一个group-ZSTSPL用在特殊总帐上,一套帐一般都要包含计划数据,实际数据和Summary数据,这概念适合各种特别总帐(包括利润中心帐).作为一般总帐,就要复杂的多,比如我们都知道会计凭证表BKPF,BSEG,Summary table GLT0,还有很多计划表.2 为什么加入利润中心字段ZZPRCTR和ZZCB1字段?(一).之所以加入ZZBC1是便于是读者更理解coding block,如需要你建立加入几个自定义字段都可以.(二).无论是Cost of sales accounting Ledger 0F(GLFUNCT)还是Ledger L0(GLT1)默认都没有利润中心,只有Business area(据称PCA是用来退代BA的,如果是这样,我猜测当时设计时可能就没考虑profit center字段,纯属臆猜,不必当真).如果你需要在SPL中使用利润中心,请自定义table group加入此字段.在顺利建立table group后,使用SE11可发现grouping的5个表中都包含了RZZPRCTR和RZZZCB1,只是前面多了R前缀.这样做是否记帐时ZZCB1和利润中心字段数据就到SPL中了,当然不会,如SAP真有人工智能估计企业的SAP engineers就会大量失业.你还必须定义field movement , 请继续往下看.似乎只能自加入7个字段,我想这主要是考虑性能问题.自定义的coding block 字段不仅可用于一般总帐和成本模块而且可用于特殊总帐,SAP设计之精妙和完美不得不另人佩服,将所谓的非hard coding(可配置)推到极点.难怪业界有闻SAP什么业务都可配置出来,虽有夸张,今日观之,信矣.需要指出的是,在install时会有如图6的提示,特殊总帐的成功安装会将SPL table 转换成Report Write(Painter) table .熟悉Report painter的读者一定不会对set,key figure,characteristic陌生,关于report painter请看本书相关Report painter的详细介绍.图6中将cost center 和functional area做为固定特征值.如图7,在install table group时SAP提示其建立了一些report ,读者可自行检查.Report write table 和GRCT我花了很长时间和一个印度FICO顾问向它解释实际上report painter所使用的CCSS并不是SE11看到的CCSS,report painter的GLT0和SE11的GLT0并不完全相同,他要求我能在Report writer table GLT0中增加Functional area字段以方便报表编制.首先,你使用Tcode GRCT看看所谓的report writer table,它可理解为一个View ,report painter的GLT0当然连接的是透明表GLT0的数据,但是它还有相关的程序支持, 透明表GLT0加这些支持程序组成了report writer(painter) table.看看report painter CCSS,不但包含了表还有象CCSS这样的strucuture .两点留给读者思考.1 table group中的object table有什么用途?几个SPL table 组成一个table group.输入一table group是如何找到其中包含的SPL table的?2 Install SPL table group会建立一些report painter set,细心的读者会发现在建立成本中心组(KSH1),成本要素组时(KAH1),会计科目组(KDH1)等等,这些数据也会作为report set存在, 问题是这些数据保存在什么表中?二. Define Table GroupTcode: GCI2如图8,将上面的table group设置为Local table.三. Display Assignments GraphicallyT-code:GCD6没什么特别,你输入一个SPL table,将同一table group的tables以图形界面显示出来而已. 四.Technical HelpT-code: GCCG|GCGG|GCU2|GCI2|GCVB通常在你create和install table group,SPL产生了相关表,结构和一些程序,这种动态产生ABAP对象的例子在很多地方都可见到,比如凭证的确定和退代被激活后会自动产生一些程序;CO-PA激活后自动产生一些CO-PA相关表和支持程序.技术帮助是说如果在这些自动产生对象的过程中出现错误,读者可手工再去产生一次,通常这步并不是必需要的,尽管如此,依旧介绍几个Technical Help的Tcode .1 GCCG用户要求在GLT0增加Functional area字段,显然SE11直接增加Functional area后假设在SPL做了类似install table group的动作会自动产生一些支持程序,这些动作会重新编译记帐程序,于是在记帐时提示Functional area错误,SE11去除Functional area字段后,错误依旧,此时,就要使用GCCG .GCCG用来就是更新SPL产生的语法错误.2 GCU2SAP说SPL做多允许53个期,通常和一般总帐采用12+4 period,当我们看OB29相关帮助是说最多可使用365期间.如你的SPL想使用比如24(half a month),53 period(week)先维护好此结构.然后GCI2安装table group,就能使用53 period .3 GCVBmaintain update type在SAP47已经被禁止, 了解ABAP知识的用户可通过SE93输入Tcode GCVB然后找到程序RGISETGL就可发现程序在INITIALIZATION.时使用了message E410(00).显然SAP认为采用同步实时更新SPL table比较安全,毕竟采用Delay start不能保证GL和SPL数据的完整性,当然这是以牺牲一定的Performance为代价的.如果你确实想使用delayed update.编写程序将表TFDIR字段FUNCNAME= G_GLDB_POSTING_1的字段UTASK直接改成2.(4) Maintain Table DirectoryT-code:GCI3 SE16: V_T800A如图9-1,特别想指出的是,SPL中同样似乎也只能设置3种货币,Transaction currency,Second curreny和Third currency,通常second currency在一般总帐是Local currency(company code curerency), Third currency是所谓的Additional currency(group currency),既然是SPL就不存在local currency的概念,当然如需要,你可更改让second currency就不用local currency而用group currency等.在设置parallel货币(SE16:V_T001A)时,似乎只能设置一个Additional local currency(通常是Group currency),因为第一个local currency是必须的,你看GLT0表只有document currency,Local currency,group currency,即使你在V_T001A定义了3rd local currency,数据记到什么地方?当然会有错误,至于怎样设置3rd local currency只有咨询SAP AG了.有人说SPL可使用3rd local currency, 和document currency共4 currencies,似乎也做不到,因为GCL2只能设置3种货币,所以图9-1的Fourth currency估计是用来做装饰美观用的,看看图,恰好可使Currencies和Quantities两行选项对称,哈哈.(5) Maintain Fixed Field MovementsT-code:GCI4 SE16: V_T800MSAP帮助说” Coding is generated from the entries in T800M. This coding is stored in RGIMF000”, 固定的字段移动,就是这些字段的移动是必须的,似乎在此你并不能增删这些配置,如你想自定义字段移动,请使用GCF1 .回顾一下CO-PA,即使你只建立一个characteristic和一个value filed,然后KEA0激活都可,然后你发现想record type,version,period,controlling area, customer这样的字段已经在PA表中了,同样,Fixed field movement表示FICO Post到SPL的某些字段是基本的必须的,如这些字段所承载的信息都未post到SPL,SPL就没有任何意义了.我测试过,即使现在你直接从表T800M delete所有内容,SPL依旧没问题,我想此时数据从FICO过到SPL是通过程序RGIMF000了.(6) Master DataIMG Path:如图10,关于Master Data IMG的10项配置.一. Maintain ActivitiesT-code: GCV1|GCV2|GCV3|GCV4 SE16:T022|T022T在理解什么是Activities, 请读者做下面两个动作.1使用SE16:BKPF,查询条件BKPF-GLVOR依此分别输入RFBU|RMWA|RMWL|RMWE|RMRP|SD00|KOAE|RMPR,然后着重看查询出的记录的两个字段BKPF-TCODE,BKPF-AWTYP,我想读者对activiites就会有初步了解.*需要指出的是BKPF-AWTYP是另一个重要字段,比如AWTYP= BKPF可判断此FI DOC是直接从FI模块post过来的,=MKPF是物料移动产生的,= VBRK是SD billing产生的,细心的读者会发现BKPF,MKPF,VBRK恰好都是header table. 读者可自行检查其它值,了解这些对理解FICO非常有帮助特别是报表开发.2另一个动作是分配CO No. range的Tcode:KANK,点击Group按钮进去看看,有一堆Activities.Activity其实可理解一种业务交易(business transaction)类型,其实在Ledger 0(一般总帐)中也使用了它,在SPL中同样使用它将确定其它模块或外部数据如何将数据Post到SPL 中.*通常并不需要自定义一个Activity ,使用SAP标准的activity就可,读者有兴趣倒是可研究SAP标准的activity.如图3.7.1.6-2 1自定义的activity-ZACT,很遗憾,自定义的activity type只能选择0-不post transaction和3可选post但不能是Verion 1.读者使用SE16: T894-SPL和FI-LC合并报表版本表,自定义的activity只能用在计划版本中,关于建立自定义Ledger的版本请看接下来的第三步Maintain Ledger. 研究过记帐程序SAPMF05A读者会发现很多activity是写死的,SAP并不是万能,毕竟你想自定义一个activity再嵌入SAP标准逻辑!二.Maintain Field MovementsT-code: GCF1|GCF2|GCF3|GCF4 SE16: T888|T888T|T888M定义一个Field movement其实是形成一个Field group,这些field在分配Activities给company code (Global company) Ledger时将被决定post到特别总帐中.7写个user exit,读者觉得似乎含糊不清,可以这样简单理解,一个field movement包含一个field group(就在前面刚讲过SPL的Table group),一个field group决定多少Field(字段)将被post到SPL中.在这里你使用了receiver field,RACCT,RZZPRCTR,RZZZCB1.对于RACCT字段,使用请看例2的程序.不是有很多鸟人说我公司一个charts of account,集团总部是美国,法国要出法国的报表,中国要出中方报表,MD,现在要维护account h和alternative account是一对多的关系,FS00你也不看看, SKB1不是by company code的吗?不同的company code同科目在不同公司NND,就是多对对都行,俺建立一个表定义对应关系,然后使用user exit去读.这么简单的社会主义初级的问题还老问,完全是拖社会主义后腿的不道德行为.如图3.7.1.6-3,1自定义的Field movement ZFLM,2自定义的SPL summary table白ZSTSPLT,就是在前面定义table group时产生的summary table.3所谓的Send table,此三个实际上是结构(结构可这样理解就是不包含任何数据不使用来存放数据而是用来在程序中定义内表-内存中的表,这也容易理解,假设程序需要将数据写到多个表中,用结构定义一内表包含这些表的所有字段,在前台操作或保存时先将数据临时存在这些内表中,经过判断无误在做一事务提交到表中)4这些是ZSTSPLT表的字段,56为了方便读者理解,本人特意将sender table 的posting key赋给确ZSTSPLT的利润中心,而自定义的coding block field ZZCB1记录的是操作用户名称. 是的,假设读者使用FB50什么的级了笔帐,会发现SPL表的利润中心和ZZCB1分别保存的是PK码和Username,所以在设置sender field必须注意不能犯错.7GCX1|GCX2定义的用户出口.如有需要字段值可根据用户出口定义的Form获得(详细请看3.7.1.10 User Exits)三.Maintain Ledgers在此可对ledger新建更改删除和拷贝等动作T-Code:GCL1|GCL2|GCL3|GCL4|GCL6 SE16:T881|T881T1 在讲述Ledger只前,只想说一句,就是做FICO如果不知道SAP默认的几个ledger(中文叫帐套吧)是很悲哀的.2 在允许建立更改SPL前,必须使用GCVO激活SPL(表T000C-GL_ONLY-local ledger,T000C-BKRS_ONLY-Global Ledger任何一个为X).3通常想使用自定义的table group不用copy from reference ledger(copy from Ledger L0是不可以的,因为GLT1是所谓的共享表-pooled table).4 最简单的方法就是直接使用Ledger L0 with summary table GLT1,将默认的公司代码删除换上 实际需要的公司代码就可以.如图3.7.1.6-4,1接下来可将SPL Z1 assign给公司代码|公司,2分配Activity,你可决定ledger Z1需要分配什么activities(比如Z1只需要FI post过来的数据),3版本,通常定义两种版本,1-actual version,2-plan version,所谓的实际版本就是从FI|MM|SD等产生凭证时post过来的,计划版本允许是用户输入的,无外乎是将来可以去对照实际和计划差异啥的,计划数据保存在ZSTSPLP中,SAP默认只有实际版本,在可使用计划版本之前用户必须自定义. 4记得GCVO设置了多语言版本,如没设置,Ledger text不会显示(全球化策略是SAP在多个应用中都允许使用多语言版本的文本,比如物料描述,可定义不同版本不同的语言描述,在各种打印报表中,可定义不同版本的text element). 5table group中等summary table,6必须选上它才可assign activity(Ledger都不允许post意味此SPL根本就没实际用途),78rollup和summarize是有区别的,rollup按一定规则将记录累积,summarize似乎是直接将line item累积起来,实际的line item数据将写如和ZSTSPLT同一table group中的 ZSTSPLA中, 9起码必须保存transaction currency(document currency),如果需要还可使用另两中currency(关于currency请参考1.2币别设置). 10如果选了保存数量可能会影响性能,读者不妨这样理解,在各模块产生凭证时同时需要根据各种条件决定是否post到SPL中.在保存了Ledger Z1后,接下来来是分配公司和分配交易作业(activity).如图3.7.1.6-5,1分配作业,2分配所有的公司代码,通常并不需要如此做,3删除一个被分配的公司代码(前提是最好成绩没有业务数据),40-表示block posting, 和3.7.1.6-46不同的是,它仅仅是block一company code,而后者是将整个Ledger block,1-允许post到SPL,5在此选择了和公司代码全局参数中不同的AM年度变式.在FM|Treasure,AM,SPL都有年度变式的设置,在这几个模块中,是否它们必须相同呢?我的理解是FM的年度中必须和company code global parameter,SPL当然可以不一样(要不怎么使用SPL在一些使用特殊会计年度变式的企业出所谓的中方报表),AM可另外再设置自己的所谓的shortened fiscal year(详请参照3.6资产会计)设置.在第二步建立field movement产生field group请选上和AM相关字段.分配activity,如图3.7.1.6-61Activity group,在权限解剖另有详述,2选择activity,前面对activity已经有描述,如图,假设只允许RFBU才post数据到Ledger Z1,3field movement4可选择符合一定的规则才post数据(关于规则请看Validation和Substitution),5如果读者对Activities不数字,就使用此步,它将所有G/L使用的activities全部加上,建议使用此功能,61-表示和一般帐中符合activity的ledger数据同步实时post 过来,从技术上讲,就是将倆者做成同一个事务2-后续post,非同一事务post .7Post data到SPL是否检查时间,可以限制某期间不允许post数据到SPL, 8是否写line items到SPL(堆一般帐line item table通常是BSEG|COEP-如果设置从CO post数据到SPL的话,Z1 Ledger是ZSTSPLA),9如不选,表示不post数据到SPL,所以通常是要选择的,要不能就干脆将此activity删除.SPL的数据除了从FI,MM,SD的实际业务数据post过来,和可设置直接从CO模块post,比如一些plan数据.为了方便读者理解,假设Ledger Z1只设置了Activity RFBU (FI posting),然后读者可自行使用FB50,FB60,Fb70,F-02等做几个凭证再SE16看看 table group的几个表的数据变化.四.Maintain Global Companies读者也许会问,至此什么是Local ledger还好理解,但是还是未明白什么是global ledger.首先请参考3.7.1.3 Tables 设置, T-code :GCIN,建立global ledger的table group,其它和local ledger设置相同.同样,如果不想麻烦,可使用标准的global ledger table GLT2等.*关于合并报表请参考3.5报表合并准备和4.1报表合并(Consolidation)配置.如图3.7.1.6-7,读者需要的仅仅是将Ledger,activity分配给global company而已.T-code: GCG1| GCG2|GCG3|GCG4|GCG5 SE16: T880五Maintain Company Codes.T-code: GCB1|GCB2|GCB3|GCB4 SE16: T001详情请本节第三步六.Maintain Integrated Master Data七.Develop Enhancements for Master Data Exitssdfs八.Maintain Fiscal Year Variantssdfs九.Maintain User Tablessdfssdfs十.Maintain Code Combinationssdfs(7) Production Start-Up Preparation将历史FI,MM,SD的那些破数据给transfer into SPL(8) Validation(9) Substitution(10) User Exits2计划(Planning)113实际过帐(Actual Posting)224期间处理(Periodic Processing)5信息系统(Information System)兄弟俺经常研究这个破信息系统都要成IS专家了,最近听说Co-PC的IS比较好玩就浪费了了点时间在这上面折腾,这太对不起人家SAP AG了.6工具(Tools)靠,只有GCDE,GCAC,GCGS兄弟仨好玩些.例1 使用SPL出中方会计报表一个典型的例子就是在一些外企由于会计期间和中方标准(多数外企可能使用公历2月做年度第一个期间,并且每个期间还可能不是自然月份,比如使用每月最后一周五做期间最后日或每月第一周二做期间起始日)可能有所不同,我们使用特别总帐出中方式的报表,这样在GCL2时分配公司时就可使用SAP标准的K4年度变式(分配后双击公司代码会弹出一子屏幕在此选用SPL的会计年度变式).1.假设读者使用了年度变式24,然后在SPL 允许的公司代码用FB50记笔帐,Posting period是2005/06/10,如果成功帐务数据立即传送到SPL tables, 使用SE16检查GLT1(Summary table,类似总帐的GLT0,可能读者非常熟悉),GLS1(Line Item),就能发现其posting Period是11(因为使用的是FV 24).2.为了便于大家更理解SPL中采用的年度变式和标准总帐采用的年度变式的不同,再举一个实例,标准总帐采用的年度变式如图3.7.1.1-1.1这是个year-dependent的变式,2005/01/01是第6期间,而中方标准是第一期间.22005/07/02是2005第12期间的最后一天(2005年年结以此天为底),而2005/07/03开始是2006年的第1期间的第1天. 这个变式有点特殊,就是2005年度的12个会计期间覆盖的日期是从2004/07/31-2005/07/02. 现在的问题是要出中方标准报表,ABAPer将很难按符合中方标准的按月份定期间的逻辑去抓取财务数据,在此情况下启动SPL很容易解决此问题,报表从SPL相关表中抓取数据就可.通过上面的例子读者应该对SPL有所了解了,下面将更深入解释SPL的配置.*SAP到底有多少所谓的帐,读者SE16:看看表T881就知道.而且读者还可自定义. 但是起码Ledger 0必须知道,就是一般总帐它将summary数据写入GLT0.FORM e01_mvc USING from_field LIKE accit_glx-hkont to_field LIKE glu1-racct. #EC * DATA: l_altkt LIKE skb1-altkt. Alternative Document No CONSTANTS : c_bukrs LIKE skb1-bukrs VALUE 5300. Company Code CLEAR l_altkt. IF accit_glx-bukrs = c_bukrs. SELECT SINGLE altkt FROM skb1 INTO l_altkt WHERE bukrs = accit_glx-bukrs AND saknr = accit_glx-hkont. IF sy-subrc EQ 0 AND l_altkt NE space. accit_glx-altkt = l_altkt. ENDIF. ENDIF. to_field = accit_glx-altkt.ENDFORM. E01_MVC例2 维护coding block screen 如有传播,请注明是俺杀猪的宰的,拜托尊重一下劳动成果
展开阅读全文