SAPFICO太TMD容易系列屠夫宰SAP系列之特别总帐一日通如有传播,请注明是俺杀猪的宰的,拜托尊重一下劳动成果特别总帐一日通特别总帐(SpecialPurposeLedger)......................................................................13.7.1基本设置(BasicSettings)........................................................................................23.7.2计划(Planning)..........................................................................................................183.7.3实际过帐(ActualPosting)......................................................................................183.7.4期间处理(PeriodicProcessing)............................................................................183.7.5信息系统(InformationSystem)..............................................................................183.7.6工具(Tools)................................................................................................................18特别总帐(SpecialPurposeLedger)SAP的应用和实施其实远不象传说中的那么神秘,特别是现在相信ERP的概念已经深入”民心”,不象多年前你实施一个ERP项目甚至还得负责企业用户的基本电脑操作培训.我做ERP开发已经近十年了,第一次听说SAP应该是98年,那时我在修补BAAN,我的第一印象就是听说干SAP的待遇其高.我开始接触SAP是2004年下年,我的感觉是其实SAP的应用不过如此,最搞笑的是似乎很多人已经忘却了SAPTMD首先也是一个软件系统,既然这样,相对ERP设计来讲,它的应用和实施本来就应该不是复杂的,一个系统本来就应该是Keepusageassimplyaspossible,而设计才应该是Considerbusinessprocessascomplexaspossible,除非你设计的ERP的系统专门只为了解决某行业的某企业的某阶段的某些问题.有人说俺杀猪的还没领悟SAP的精髓(注,精髓此二字是他们经常挂在嘴边的,不过估计他们是自己也没搞清楚,如果没错的话,我记得猪呀牛的只有骨髓,你硬要说我没吃过骨髓那就真的是诬陷).我和老婆讲,每天起床不用浪费时间折被子吧,这晚上不又要铺下来吗?老婆回答:如果今天你不折被子,明天你又会找借口说睡觉不用洗脚吧,反正洗完了又会变脏,如果不会或没有变脏又何苦洗,这叫生活规则,懂啵?这个问题正好回答为什么SAP应用如此简单可是你企业却要耗费巨资去请顾问,这就是游戏规则.一位学者这样阐述人生的3重境界,第1重:见山是山,见水是水,第2重:见山不是山,见水不是水,第3重是:见山仍是山,见水仍是水.企业ERP的应用也该如此,第1,ERP是一个信息系统,第2,ERP是一个(辅助)管理系统,第3,ERP是一个信息系统.有位兄弟说了一句话:不上ERP是等死,上了是找死.如果你从这个角度来讲,就很容易理解,之前国内大部分企业都是经过多年计划经济时代的国企,管理水平如何我不多说,我应用台湾张五常的一句话:国企不倒,天理难容.如果你的企业要靠ERP来代退人管理,一个企业吹嘘上了ERP后堵住了资金黑洞,另一个企业更得意上了ERP后采购猫腻没了,真是I服了U,这是什么跟什么呀,就不多评论了.一个真正的高管理水平的公司应该将ERP看成一个信息系统,能及时提供正确数据的信息系统(管理决策还是靠人),管理应已成习惯,无为而治,MD,现在好好再宰两年SAP以后再慢慢来吹,等以后俺得势了一定要高薪聘请象俺老弟SAP搅肉机这样的专门能吹善写的高手做秘书天天也整点管理方面的文章到处去晒晒…SAPFICO太TMD容易系列屠夫宰SAP系列之特别总帐一日通如有传播,请注明是俺杀猪的宰的,拜托尊重一下劳动成果问:你为什么把这篇文章叫特别总帐一日通.没当此时,我总很谦虚地回答,主要一是屠宰SAP真TMD太容易了,你只要花一天的时间看看这篇文章就已经能成为传说中的超级SPL杀手,二是SAPAG估计暂时还没设计出比较有难度的复杂东西来(据可靠消息,本来SAPAG那帮鸟人也不服气确实曾想设计一些专门难一下屠夫这样的刺头的东西,后来经慎重考虑觉得没有必要这样刁难俺老人家,同时主要是就算整出来了,最后还不照样惨死在俺刀下,只是时间问题,就不了了之.).1基本设置(BasicSettings)下面10项的IMGpath基于上图.(1)PerformPreparationT-code:GCVOSE16:T000C如图1,在此定义允许LocalLedger,GlobalLedgerpost到特别总帐和允许一些文本使用多语言版本.使用SPL是如此的简单,如果读着使用SAP标准的SPLLedgerL0(表GLT1)的话,读者不必要去了解SPL的具体细节,要做的只有两步,1GCVO启动SPL,2Tcode:GCL2Maintainledger时加上您的CompanyCodes就可以(请参照(6)MasterData-MaintainLedgers),如需要,你可为LedgerL0选择不同于一般总帐的会计年度变式.SAPFICO太TMD容易系列屠夫宰SAP系列之特别总帐一日通如有传播,请注明是俺杀猪的宰的,拜托尊重一下劳动成果FB50记笔帐,使用GD23或SE16:GLT1就能看到数据被Post到LedgerL0了,如果你的Ledger0和LedgerL0的会计年度不同,你特意做个TestScenario,相信你已经看到FI数据post到了SPLLedgerL0.如果这时你很高兴以为SPL真的很TMD容易混,那就TNND错了.特殊总帐的原理很简单,就是在记帐时数据Post到Leger0(一般总帐)同时根据你的配置将数据记到特别总帐相关表而已.(2)MaintainCodingBlockT-code:OXK1|OXK2|OXK3什么是Codingblock?为了让读者彻底理解它举一个简单的例子,假设你设计了一个学生成绩管理系统,其中记录学生成绩表XSCJ有这些字段XhID(学号),Name(姓名),grade(年级),Class(班级),Chinesescore(语文成绩),Mathscore(数学成绩)等,现在需要在填写学生成绩同时输入学生的年纪身高信息(在此姑且不讨论设计范式,因为按设计范式,XSCJ表保留XhID就足够,Name,Grade,Class你通常会建立另一学生资料表XSZL,如果你看SAP的物料主数据设置,就是物料描述都建立MAKT表,已经是第N范式).这时需要的是更改XSCJ加入这些字段或在XSCL表中加入一个结构,这结构包含年纪身高字段.然后在记录学生成绩时定义一个子屏幕弹出(或默认带出,SAP管这叫AccountAssginmentcodingblockscreen)一个窗口让用户维护学生信息,在保存学生成绩时将这些信息也一并保存.SAPCodigblock一般原理基本如下,它允许增加字段,自动将增加的字段加入各模块的相关表中,并且动态产生一些支持程序.各模块的相关表究竟是哪些表?下面将继续详细阐述codingblock的设置.OXK3Maintaincodingblockfields进入后界面如图2.[1]专家模式SAPFICO太TMD容易系列屠夫宰SAP系列之特别总帐一日通如有传播,请注明是俺杀猪的宰的,拜托尊重一下劳动成果如果读者对ABAP很熟悉,使用此模式,你将一步步建立domain,dataelement,structure(CI_COBL,CI_COBL_BI),然后是将增加的field加入表BSEG(当然还有其它模块的表和Structure),如果读者觉得自己还不是专家,就使用默认的Lightmode(简易模式)吧,它自动完成这些操作.你按F6键Add自定义Field,选择开发类(47后是Package),输入字段类型和长度.[2]codingblocksubscreenOXK1你想在记帐的accountassignment屏幕自动加入刚才自定义字段(本例是ZZCB1),请使用它[3]产生一些程序[4]SAP标准的科目分配字段,这些字段使用SE16:TCOBF可看到,ZZCB1也在此中.[5]自定的ZZCB1,需要指出的是如果使用的是includestructure,这字段将假如COBL,TCOBF,BSEG等表[6]只是将此结构Append到COBL中,OXK1并不可见,它将被用在一些用户自定义程序中.激活字段ZZCB1的LogcodingblockfieldZZCB1激活过程由于修改了大量标准表和结构(即要将这字段插到各模块可能设计的表中),你可能需要AccessKey.读者必须耐心等待整个激活过程,在此过程中,读者可发现所有的记帐操作都可能会错误,毕竟连BSEG表都正在更新.那个著名的记帐总程序SAPMF05A需要重新编译(不知读者对半解释型的ABAP的运行速度反应如何?).SAPFICO太TMD容易系列屠夫宰SAP系列之特别总帐一日通如有传播,请注明是俺杀猪的宰的,拜托尊重一下劳动成果图3读者可看到激活fieldZZCB1更新了的ABAP对象,包括CO用到的一些ABAP对象,典型的比如COLineitem表COEP和SPL共用的SendtableACCIT_GLX(结构)等,SE11你看到有了ZZCB1.1.在等待激活时你唯一要做的就是耐心等待,如果过程中途意味Cancel,这将有一定风险,你可能会发现记帐出了问题,这就意味大多数会产生财务凭证的交易失败,开PO出了问题….你可根据ABAP错误使用SE11直接去激活ABAP对象.如果需要,可执行这些程序重新生成程序或排错,SE38:RGUGBR18|RGUGBR00|RGUGBR26|RSINCL00..2.为什么激活过程会如此长?很容易理解,SAP是一个庞大的集成系统,但是会计凭证的产生(表BSEG)就有个模块Post过来的相关数据,你在BSEG加了一个字段,这些模块的相关程序或程序中使用的结构肯定要做相应调整.至于激活内部的设计逻辑如何,SAPAG的设计人员应该最清楚.3.什么时候要自定义Codingblock字段?一企业希望费用能按多种用途分析,InternalOrder,Costcenter,Functionalarea等还是不能满足其需求,LineitemText已做它用,财务部依旧要求费用区分能By类,By个人,By区域,By..,总之,似乎你已经没辙,这样的情况下,你就字定义codingblock字段,上面已经知道这些字段是可用于Accountassignment的(OXK1).一般的财务软件都会提供一个类似功能,就是允许用户自由定义Accountassignment字段.4.SAP允许定义最多7个codingblockfields,这些自定义字段也可用在SPL中,因为在SPLSendtableACCIT_GLX(结构)你能看到它(前提是你必须将ZZCB1加入你定义的SPL表,请看接下来的相关配置).CO相关表比如COEP你可看到ZZCB1,