资源描述:
《为erp中的财务系统瘦身》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、为ERP中的财务系统瘦身
2、第1认识对象总帐管理模块是ERP系统里的信息最下游,ERP系统中,多数的模块信息最终会反映在总帐管理模块!从逆向角度来看,总帐管理模块里的每一个科目,都可以与上游的某个管理模块(如果该模块已被开发的话)对应,这就是"总帐"的意义!事实上,许多ERP厂商也是从总帐管理模块开始他们的故事!ERP系统里,上游的所有交易细节在进入总帐模块时都会被约化,只剩下少数概念上的信息:科目,预算,传票交易!"科目"代表交易的原因,"预算"是预定的交易,"传票"则代表实际的交易!每个交易都有原因,所以预算与传票都是以科目做为依据;而且,所有的
3、系统输出项目(Output,包含:报表,统计图表,查询)亦都以科目为依据,呈现出各种不同角度的结果!交易原因可以一直细究,例如:企业在X家银行里存款,而且在这些银行各有Y组账户,每个账户里可能有Z种币别的存款!当每一种"原因"都被赋予一个科目的编号后,集合这些科目就可以形成枝繁叶茂的巨树结构,几个类似的交易原因("科目")可以总结为较为抽象的因素(父阶科目),而每个科目的交易(预算,传票)也被纳入其父阶科目的交易统计!肥胖并不健康在手工做帐时,大抵会同时准备几本账册,当传票窗体/预算数据确认后,其交易数据会被额外登录在各个科目的个别账册中(以下简称
4、"过帐"),其主要的目的在使科目交易的统计(以下简称"归阶")分散在日常的作业时完成,避免在查阅报表时耗费大量人工或时间去进行统计!在关系型数据库被应用前,多数的信息系统也会模仿手工作业的行为:储存交易,并且过帐(异动相关账册内容)!事实上,"过帐"动作可视为交易数据被复制到几份账册!数据一旦被复制到两处(以上)的位置储存,即会衍生以下几个问题:一.难以分辨真伪:不论手工做帐或者应用信息系统,在为数甚多的过帐动作中,一丁点的人为失误或程序错误(人难免失手,马难免失蹄),就会造成窗体与相关报表之间无法勾稽,而这些不吻合的差异并不容易厘清,就像以下的W
5、问句:哪些数据是不正确的?何时发生过帐错误?什么原因造成数字不符?.....回答这些W问句并不容易,即使投入了大量资源!二."信息不吻合"的隐忧:系统输出项目的条件或范围不一,因此可能分别取用不同账册的内容做为数据!当不同位置的信息不一致时,会导致这些输出项目的结果也彼此矛盾,毁及系统的可信任度!过帐的动作愈多,发生失误而造成信息不符的的可能性愈高!因此,我们可以将"过帐"视为高风险性的操作!瘦身的良药妙方在关系型数据库面世之后,由于SQL语法可以在相关数据之间产生关联,并且迅速统计大量数据,这些能力合适地贴切过帐动作,因此,我们可以考虑尝试舍弃"
6、过帐",改采应用SQL语法实时统计交易数据,来达成总帐管理模块里数据归阶的需求!如何以SQL语法实现交易数据的归阶呢?在总帐管理模块中,有三份关键数据,包括:(a)科目与父阶科目之从属数据,(b)交易数据(可能为传票/预算/两者皆有),以及(c)统计过程中暂存的多维度资料!只要能够撰写精确的SQL语法,由科目阶层的最末端(交易科目)开始,根据阶层逐步统计交易数据,并且纳入共同的父阶科目,再将之写入暂存资料,直到最高阶科目(主科目)为止!这个过程包含两层循环,内层只需要比科目长度还少的循环次数即可完成!下面是程序性的表达方式:┌依次处理(1)期初,(
7、2)期前,(3)本期,(4)期末不同时段│1.将指定条件内的(b)交易数据(传票数据或预算)写入(c)暂存资料│┌自(a)交易科目起,至主科目止││2.由(c)暂存数据中统计科目交易数据,结合(a)这些科目的父阶科目后,写入(c)暂存资料│└往上一阶父阶科目└处理次一时段瘦得健康这个机制完全透过SQL语法实现归阶,因此,灵活运用SQL语法是归阶机制成功的必要条件!在实现以SQL实时运算替代交易伴随过帐之后,只要付出几秒钟的成本,执行这个共享机制以完成交易数据的归阶,即可以提供所有输出项目一份统计后的完整科目交易信息!这些输出内容由于全部根源自相同的
8、归阶结果,所以一定"表表相符"(除非SQL语法有误)!此外,只要将交易数据(传票数据或预算)稍加整合统计,即可轻易地验证这份归阶机制的结果!有效的减肥对于许多已经存在的总帐管理模块而言,如果经常发生上述"总帐肥胖症"病征但仍束手无策的话,改写的负荷并不沉重!最重要的,要先根据原有的数据表结构与关联,实现上述可以共享的归阶机制!只要验证归阶结果正确无误后,接着只需要在总帐管理模块中所有的输出项目内改变数据,转而由归阶机制的结果(暂存数据表)取出所需要的数据,然后就完成一套稳定的总帐管理模块了!最后,您相信让总帐管理模块从"病恹恹"变成窈窕健康真的可行
9、吗?笔者确实实现了!需要付出多少成本呢?这就需要视您是否重视总帐管理模块的问题了!