初识“会计引擎”原理
在财务工作中,当企业业务复杂、数据量大时,完全依赖财务人员人工处理,效率低且正确率难以保证,所以由业务数据实现自动化账务处理势在必行。而实现自动处理前需要先将业务数据向财务数据进行转换,会计引擎可以帮助解决此问题。本文作者介绍了会计引擎的搭建、规则和规则配置,一起来看一下吧。
在企业经营中,财务人员通过会计凭证记录企业的经济活动,并依据会计凭证登记账簿。传统的财务工作中,会计人员根据纸质的原始凭证,依赖财务工作经验编制分录并录入到账务系统中。
当企业业务复杂、数据量大时,完全依赖财务人员人工处理,效率低且正确率难以保证。
所以,由业务数据实现自动化账务处理势在必行。
但是企业的业务数据一般为颗粒度更细的明细数据,而财务数据则是需要符合会计准则的数据,因此必须先将业务数据向财务数据进行转换。会计引擎则可以帮助解决此问题。
基于以上背景,我们可以把会计引擎理解为一个翻译工具。这需要我们提前将翻译规则在预设翻译器中,然后输入业务语言,便可按照预设的规则,输出对应的财务语言。也就实现了业务数据到财务数据的转换,最终生成预制凭证。
01 如何搭建会计引擎
首先要明确,会计引擎的目的是实现账务自动化,即由业务数据自动生成会计凭证。那么我们可以从会计凭证出发,倒推出生成一个会计凭证都需要什么内容,从而明确会计引擎的构成。
市面上比较常见的会计核算系统有金蝶、用友、SAP、Oracle,不同会计核算系统的凭证格式不同。下面我们以用友NC生成的凭证为例。
以下凭证的主要内容包括:
核算账簿(帐套信息)、凭证制单日期、凭证类别、会计期间、借贷方向、凭证摘要、会计科目、币种、金额、辅助核算。
可以看出,凭证是有一定格式的,并且部分内容无法从业务数据中直接获取。基于以上,会计引擎应具备的主要功能为:
- 对于直接能找到业务数据与凭证内容对应关系的,根据规则进行映射,直接转换。
- 对于无法找到业务数据与凭证内容直接关系的,则要根据规则对业务数据进行加工计算,再得到凭证需要的结果。
总结来说,会计引擎首先需要预设规则,然后调用相应规则。
02 会计引擎的规则
还以上面凭证举例,简单列举几个想要生成这张凭证应配置的规则:
- 核算账簿的取值规则
- 制单日期的取值规则
- 会计期间的取值规则
- 借贷方向的生成规则
- 摘要的生成规则
- 会计科目的生成规则
- 辅助核算项的取值规则
那么这些规则具体又是如何构成的呢?
我们知道,规则的组成是:条件语句和结果语句,这放在会计引擎当中依旧适用。会计引擎规则中的条件语句由业务数据组成,结果语句则由财务数据组成。
例如:
条件==>商品类别=女装上衣;
结果==>收入成本明细科目=服装类/女装。
理解为:如果业务数据上的商品类别是【女装上衣】时,那么对应到账务系统中的收入成本科目为【服装类/女装】。
在实际业务应用中,规则的条件语句可以是多个,多条件的组合逻辑可以是“或”关系“且”关系等,结果语句同理。
例如:
条件1==>公司名称=北京xx科技有限公司
条件2==>单据类别=应收单
条件3==>商品类别=女装上衣
条件组合逻辑“==>且”
结果1==>核算账簿=北京xx科技
结果2==>会计科目=应收账款/服装类/女装
结果组合逻辑“==>且”
理解为:如果业务数据上的公司名称是【北京xx科技有限公】,单据类别是【应收单】,且商品类别是【女装上衣】时,那么此条业务数据对应到账务系统中的核算账簿是【北京xx科技】,且会计科目是【应收帐款/服装类/女装】。
以上只是介绍了会计引擎规则基本的构成,具体规则内容,还需要结合公司具体的业务场景、业务流程以及账务处理方式等进行详细梳理。
03 会计引擎的规则配置
尽管不同公司、不同业务的会计引擎内容大不相同,但配置页面,万变不离其宗。
考虑到需要配置的规则数量大,适用场景多,我们在实际应用中可以在规则的结构上增加一级——“规则类型”以便管理和配置。
通过维护规则类型,限定每类规则可以使用的条件和结果因子,缩小配置规则时的选择范围。
下面举例一个简单的模型,这里我们默认条件和结果之间的判断词为“则”,同一规则各条件、结果之间的组合逻辑均为“且”。即:如果“条件1”且“条件2“,则“结果1”。
规则类型管理原型页面:
说明:
1)所属组织用来限定当前规则适用的组织范围
2)条件因子和结果因子是数据库内已有的字段,用户通过选择的方式任意添加(条件和结果至少各一个),添加即:指定该种规则类型对应可选的条件或结果。
规则管理原型页面:
说明:
1)每条规则都需要选择已有的规则类型。
2)条件、结果下拉列表中带出的条件因子和结果因子,会根据已选择的规则类型决定。可添加多个条件和多个结果。
3)条件因子的值、和结果因子的值,即所选条件和结果因子对应的枚举值。
举例:
以上会计引擎的功能模型、原型页面等都是最简单的逻辑,在实际应用当中需要根据业务复杂程度、用户个性化要求、服务器性能等再做相关设计。
接下来会有几篇文章来详细介绍业务数据获取及存储,会计凭证生成及提交,会计核算软件的接收和处理,以及几个凭证实例。。
专栏作家
陈天宇宙,微信公众号:陈天宇宙,人人都是产品经理专栏作家。多平台支付领域专栏作者,十年资深产品;专注为10万支付产品经理和支付机构以及企业提供深度支付内容和服务!
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
被动态会计指令DMAAI支配的恐惧
老师,请问还会出会计凭证的其他文章介绍嘛?
首先,为什么能做成引擎,是因为财务的核算科目万变不离其宗,就那么几个;引擎的关键点在于配置没错,你讲的偏向于“翻译”,但是关于“为什么”这么设计,建议展开一下,避免看的人走一些弯路
看了陈老师的文章非常赞同,期待和您做业财引擎相关的深入交流,还请加我微信,多谢。
读遍陈老师的每一篇文章 获益匪浅