1.本发明涉及业财转换领域,更具体而言,涉及一种用于处理业务单据的方法以及相应的系统、计算机设备和介质。
背景技术:2.随着21世纪互联网革命浪潮的到来,各企业信息化竞争日趋激烈,市场及行业的白热化竞争对企业内部各方面的运转效率提出越来越高的要求。管理会计概念的普及和共享应用服务的发展,为企业财务信息化转型提供了可供借鉴的解决方案,而如何将业务单据中的数据快速高效并且准确地转换到财务凭证中是本领域技术人员急需解决的关键问题。
技术实现要素:3.本发明的目的在于提供一种能够至少部分地解决上述问题的方案。
4.具体地,根据本发明的第一方面,提供一种基于业财转换的方法,其包括:
5.响应于凭证生成触发事件,执行凭证生成过程,所述凭证生成过程包括:
[0006]-解析待处理的业务单据以得到解析后的单据数据,在所述解析后的单据数据中,所述业务单据中每个单据区域中的每个单据字段的值与该单据区域的单据区域标识符以及该单据字段的单据字段标识符相关联;
[0007]-获取与所述业务单据对应的凭证模板以及所述凭证模板的取值规则,所述凭证模板包括多个凭证区,所述凭证区包括凭证头区和凭证分录区,对于所述凭证头区和所述凭证分录区中的每个的每个凭证字段,所述取值规则包括用于该凭证字段的规则表达式,所述规则表达式指示获得该凭证字段的值要执行的操作以及涉及的操作对象,所述操作对象包括常量和/或源自所述业务单据,并且对于所述凭证头区和所述凭证分录区中的每个的至少一个凭证字段,用于其的规则表达式包括单据区域标识符和单据字段标识符以指示源自所述业务单据的相应的操作对象;
[0008]-基于所述取值规则和所述解析后的单据数据生成财务凭证,包括对所述凭证模板执行如下填充过程:对所述凭证头区和凭证分录区中的每个的每个凭证字段,利用用于其的规则表达式计算其值并用计算的值对其进行填充,其中对于用于其的规则表达式包括单据区域标识符和单据字段标识符的凭证字段,利用用于其的规则表达式计算其值包括:从所述解析后的单据数据中获取与用于其的规则表达式中的单据区域标识符和单据字段标识符相关联的单据字段的值作为用于其的规则表达式中的相应的操作对象,然后利用用于其的规则表达式计算其值,以及
[0009]
响应于凭证推送触发事件,执行凭证推送过程,以对生成的财务凭证进行推送。
[0010]
根据本发明的第二方面,提供了一种基于业财转换的系统,其包括处理器,所述处理器被配置为执行计算机指令以:
[0011]
响应于凭证生成触发事件,执行凭证生成过程,所述凭证生成过程包括:
[0012]-解析待处理的业务单据以得到解析后的单据数据,在所述解析后的单据数据中,所述业务单据中每个单据区域中的每个单据字段的值与该单据区域的单据区域标识符以及该单据字段的单据字段标识符相关联;
[0013]-获取与所述业务单据对应的凭证模板以及所述凭证模板的取值规则,所述凭证模板包括多个凭证区,所述凭证区包括凭证头区和凭证分录区,对于所述凭证头区和所述凭证分录区中的每个的每个凭证字段,所述取值规则包括用于该凭证字段的规则表达式,所述规则表达式指示获得该凭证字段的值要执行的操作以及涉及的操作对象,所述操作对象包括常量和/或源自所述业务单据,并且对于所述凭证头区和所述凭证分录区中的每个的至少一个凭证字段,用于其的规则表达式包括单据区域标识符和单据字段标识符以指示源自所述业务单据的相应的操作对象;
[0014]-基于所述取值规则和所述解析后的单据数据生成财务凭证,包括对所述凭证模板执行如下填充过程:对所述凭证头区和凭证分录区中的每个的每个凭证字段,利用用于其的规则表达式计算其值并用计算的值对其进行填充,其中对于用于其的规则表达式包括单据区域标识符和单据字段标识符的凭证字段,利用用于其的规则表达式计算其值包括:从所述解析后的单据数据中获取与用于其的规则表达式中的单据区域标识符和单据字段标识符相关联的单据字段的值作为用于其的规则表达式中的相应的操作对象,然后利用用于其的规则表达式计算其值,以及
[0015]
响应于凭证推送触发事件,执行凭证推送过程,以对生成的财务凭证进行推送。
[0016]
根据本发明的第三方面,提供一种计算机设备,其包括存储器和处理器,所述存储器上存储有计算机指令,所述计算机指令在由所述处理器执行时导致上述的方法被执行。
[0017]
根据本发明的第四方面,提供一种非暂时性计算机可读存储介质,其上存储有计算机指令,所述计算机指令在由处理器执行时导致上述的方法被执行。
[0018]
利用本发明的方案,可以自动地分两个阶段(凭证生成和凭证推送)由业务单据生成相应的财务凭证以及推送生成的财务凭证,有利于方便、灵活地在合适的环节进行校验以高效地生成和推送财务凭证,同时降低凭证中信息出错的概率。另外,本发明的方案为引入凭证生成、凭证推送相关的判断以确保合法的凭证生成和凭证推送创造了条件。
附图说明
[0019]
以示例的方式参考以下附图描述本发明的非限制性且非穷举性实施例,其中:
[0020]
图1是根据本发明一实施方案的用于处理业务单据的方法的示意性流程图;
[0021]
图2是示出根据本发明一实施方案的一示例凭证模板的示意图;
[0022]
图3是根据本发明另一个实施方案的用于处理业务单据的方法的示意性流程图。
具体实施方式
[0023]
为了使本发明的上述以及其他特征和优点更加清楚,下面结合附图进一步描述本发明。应当理解,本文给出的具体实施例是出于向本领域技术人员解释的目的,仅是示例性的,而非限制性的。
[0024]
图1示意性示出根据本发明一实施方案的用于处理业务单据的方法100。方法100可以包括步骤s110和步骤s120。
[0025]
在步骤s110,响应于凭证生成触发事件,执行凭证生成过程,以由待处理的业务单据生成财务凭证。
[0026]
所述凭证生成触发事件可以是各种可能的由业务单据生成财务凭证的触发事件。例如,所述凭证生成触发事件可以包括例如但不限于以下之一:与所述业务单据相关联的业务流程所处的当前环节具有手动生成凭证的配置;与所述业务单据相关联的业务流程所处的当前环节具有结束时自动生成凭证的配置;以及,接收到将所述业务单据转换成财务凭证的转换请求。
[0027]
在步骤s120,响应于凭证推送触发事件,启动凭证推送过程,以对生成的财务凭证进行推送。
[0028]
所述凭证推送触发事件可以是各种可能的对生成的财务凭证进行推送的触发事件。例如,所述凭证推送触发事件可以包括例如但不限于以下之一:与所述业务单据相关联的业务流程所处的当前环节具有手动推送凭证的配置;与所述业务单据相关联的业务流程所处的当前环节具有结束时自动推送凭证的配置;以及,接收到推送生成的财务凭证的推送请求。
[0029]
在一个实施例中,执行凭证推送过程包括将生成的财务凭证推送到第三方核算系统。
[0030]
凭证生成过程包括步骤s111、步骤s113以及步骤s115。
[0031]
在步骤s111,解析待处理的业务单据以得到解析后的单据数据,在所述解析后的单据数据中,所述业务单据中每个单据区域中的每个单据字段的值与该单据区域的单据区域标识符以及该单据字段的单据字段标识符相关联。
[0032]
业务单据是由多个单据区域构成的,每个单据区域具有对应的唯一的标识符,即单据区域标识符。业务单据的每个单据区域包含有一个或多个单据字段,每个单据字段也具有对应的唯一的标识符,即单据字段标识符。单据字段的类型可以有多种,比如金额类型、数字类型以及维度类型等,取决于具体情况。
[0033]
在步骤s113,获取与所述业务单据对应的凭证模板以及所述凭证模板的取值规则。所述凭证模板包括多个凭证区,所述凭证区包括凭证头区和凭证分录区。对于所述凭证头区和所述凭证分录区中的每个的每个凭证字段,所述取值规则包括用于该凭证字段的规则表达式,所述规则表达式指示获得该凭证字段的值要执行的操作以及涉及的操作对象,所述操作对象包括常量和/或源自所述业务单据,并且对于所述凭证头区和所述凭证分录区中的每个的至少一个凭证字段,用于其的规则表达式包括单据区域标识符和单据字段标识符以指示源自所述业务单据的相应的操作对象。凭证模板包括除凭证头区和凭证分录区外的另外的凭证区是可能的,如下文将提及的。
[0034]
业务单据与用于其的凭证模板之间的对应性可以是预先建立的。对于特定的业务单据,可以各种可能的方式为其配置一个或多个凭证模板。所述方式可以包括例如使用预设模板、手动配置等或其合适组合。凭证模板中的凭证区和凭证字段可以基于对应的业务单据、与后者适配。可以配置不同类型的凭证模板以能够涵盖可能的大多数业务单据类型,以方便后续使用。对于尚无可用凭证模块的业务单据,可以在针对该业务单据执行凭证生成过程之前先配置用于其的凭证模块。例如,在使用手动配置方式的情况下,可以拖拽的方式将所需要的字段从可用的字段库中配置到凭证模板的各凭证区中。字段库可以是预先建
立的,包括各种可能的字段种类,包括例如但不限于凭证生成日期、核算主体、记账日期、凭证类型、币种等。使用手动配置可以更针对性地生成凭证模板。
[0035]
图2是示出根据本发明一实施方案的一示例凭证模板的屏幕截图。图2所示出的凭证模板为huyx费用凭证模板,包括凭证分录区和在凭证分录区之上的凭证头区。凭证头区配置有多个凭证字段:凭证生成日期、凭证业务日期、核算主体、记账日期、凭证类型、凭证号等。凭证分录区被配置为填充例如客户、核算科目、借方金额、贷方金额以及凭证金额等的具体单据数据。
[0036]
类似地,凭证模板中的每个凭证区和凭证字段可以具有唯一的标识符。凭证模板和业务单据中的标识符可以被用来配置凭证模板中字段的取值规则。对于一凭证字段,用于其的取值规则可以为规则表达式的形式,该规则表达式限定取得该凭证字段的值所需要的一个或多个操作以及相应的操作对象,根据具体情况,所述操作对象可以包括常量和/或由单据区域标识符以及单据字段标识符指示的源自业务单据的操作对象。在常量的情况下,操作对象被设置为取特定的常量。在由单据区域标识符以及单据字段标识符指示的情况下,操作对象被设置为基于该单据区域标识符以及单据字段标识符唯一地识别的业务单据中某具体单据区域中某具体单据字段的值确定,例如等于该具体单据区域中该具体单据字段的值。操作可以包括例如但不限于:对金额字段进行数学运算、对维度类型字段取所需要的属性、对多个维度类型字段进行维度映射等。
[0037]
在步骤s115,基于所述取值规则和所述解析后的单据数据生成财务凭证,包括对所述凭证模板执行如下填充过程:对所述凭证头区和凭证分录区中的每个的每个凭证字段,利用用于其的规则表达式计算其值并用计算的值对其进行填充。对于用于其的规则表达式包括单据区域标识符和单据字段标识符的凭证字段,利用用于其的规则表达式计算其值包括:从所述解析后的单据数据中获取与用于其的规则表达式中的单据区域标识符和单据字段标识符相关联的单据字段的值作为用于其的规则表达式中的相应的操作对象,然后利用用于其的规则表达式计算其值。
[0038]
例如,对于待填充的任一凭证字段,可以确定用于该凭证字段的规则表达式所涉及的操作对象。对于为某常量的操作对象,操作对象即等于该常量。对于由单据区域标识符以及单据字段标识符指示的操作对象——若有的话,操作对象即由该单据区域标识符以及单据字段标识符唯一地识别的业务单据中某具体单据区域中某具体单据字段的值。具体地,可以根据规则表达式中所包括的单据区域标识符找到对应的单据区域,然后根据规则表达式中所包括的字段标识符找到该单据区域中对应的单据字段,获取该单据字段的值作为该操作对象。在涉及的字段类型是维度的情况下,若需要取到维度的相关属性时,可以调用维度的获取属性接口来获取属性作为字段的取值。在确定规则表达式中所涉及的操作对象后,可以对所确定的操作对象执行规则表达式所指示的相关操作,然后将如此获得的值作为结果填入凭证模板中的对应凭证字段,从而实现对凭证字段的填充。
[0039]
根据情况,在填充凭证字段时,获取操作对象以及对操作对象执行相关操作中的每个可以进行一次或多次,并可以各种可能的顺序进行。
[0040]
在一个实施例中,步骤s115包括:基于所述取值规则和所述解析后的单据数据对所述凭证模板执行所述填充过程以得到经填充的凭证模板;以及,由所述经填充的凭证模板生成财务凭证。在此情况下,可以可选地进行设置,使得由所述经填充的凭证模板生成财
务凭证的步骤由一触发事件触发。该触发事件可以是来自用户的输入,或满足某种预先配置好的条件。
[0041]
在一个实施例中,在步骤s113中获取的与业务单据对应的凭证模板具有相关联的分录汇总设置,所述分录汇总设置指示按选择的凭证分录区中的选择的凭证字段进行分录汇总。在此情况下,生成财务凭证还包括在步骤s120之前执行以下步骤:在经填充的凭证模板的基础上,按所述选择的凭证字段对凭证分录区的分录数据进行汇总。
[0042]
用户可以根据需要设置进行汇总所依据的凭证字段。例如,在一个实施例中:为了更加直观地了解单个客户的付款金额,用户选择按照凭证分录区中的“客户”字段进行汇总,此时若经填充的凭证模板的凭证分录区中有3条付款数据,所述3条付款数据分别来自客户a、客户a以及客户b,则根据该分录汇总设置,按照用户选择的凭证字段“客户”由这3条付款数据生成两条汇总的数据,其中一条汇总的数据是将来自客户a的2条付款数据进行汇总后生成的,另一条汇总的数据是来自客户b的付款数据进行汇总后生成的。
[0043]
就对分录数据进行汇总而言,所采用的取值规则、对操作对象的获取等可类似地参照前文关于步骤s113和s115所述的相关内容,只是规则表达式可以使用凭证模板中凭证区和凭证字段的标识符,另外操作对象可以来自经填充的凭证模板,在此不再赘述。
[0044]
在一个实施例中,在步骤s113中获取的与业务单据对应的凭证模板具有相关联的多凭证设置,所述多凭证设置指示按选择的单据区域中的选择的单据字段生成多个财务凭证。在此情况下,生成所述多个财务凭证中的每个包括执行所述填充过程一次,对于所述多个财务凭证中的每个,利用所述选择的单据字段具有的多个取值中的一个不同取值执行所述填充过程。
[0045]
举例来说,假设业务单据上的明细区有3条数据,3条数据对应的“科目”字段分别为科目a、科目b、科目a。在这种情况下,若按该“科目”字段进行多凭证设置,则可以将两条“科目”字段为科目a的数据生成至一张凭证中,将“科目”字段为科目b的数据生成至另一张凭证中。
[0046]
进行多凭证设置所依据的字段包括两个或更多个字段是可能的。例如,假设业务单据上的明细区中包含“科目”字段、“项目”字段等多个字段,且共有3条数据,这3条数据的“科目”字段、“项目”字段的取值分别为:科目a、项目a;科目a、项目b;以及,科目a、项目a。在这种情况下,若将生成多凭证所依据的字段设置为“科目”字段和“项目”字段,则“科目”字段、“项目”字段的取值为科目a、项目a的两条数据会被生成至一张凭证中,“科目”字段、“项目”字段的取值为科目a、项目b的一条数据会被生成至另一张凭证中。
[0047]
本发明的方法100可以可选地包括以下步骤:响应于满足凭证校验时机,基于与所述凭证模板相关联的校验规则对经填充的凭证模板或生成的财务凭证进行校验;仅在校验结果为通过的情况下,继续该凭证生成过程或凭证推送过程。
[0048]
根据情况,凭证校验时机可以被设置为包括生成凭证时校验和/或推送凭证时校验。在满足凭证校验时机时,与当前所用的凭证模板对应的校验规则被调用以校验凭证中所填充的数据的准确性。对于单个凭证模板,可以存在一条或多条校验规则。校验规则可以为各种可能的规则,例如可以被设置为验证凭证上某字段的数据是否满足某特定条件,例如但不限于:某字段不能为空、某字段必须等于预设值、某字段须以某一数值/字段为开始、某字段须以某一数值/字段为结束等。例如,对于所调用的任一校验规则,可以获取该校验
规则所针对的字段的值,并且利用该校验规则中所限定的条件对获取的字段的值进行校验,然后返回该条校验规则的校验结果。对于所考虑的凭证模板,若所有相关联的校验规则的校验结果均为通过,可以确定针对该凭证模板的校验结果为通过;否则,针对该凭证模板的校验结果为未通过,此时,可以生成错误报告,以便转到人工处理,例如相关人员可根据错误报告对凭证进行修改或查验。
[0049]
在一个实施例中,待处理的业务单据具有相关联的用于确定合法的凭证生成人的生成人配置。在此情况下,本发明的方法还可以包括确定凭证生成人是否合法的过程。根据情况,该确定过程可以在执行凭证生成过程之前或执行凭证生成过程期间进行。在前者的情况下,该确定过程可以包括:在执行凭证生成过程之前(例如,在接收到凭证生成触发事件之后但在步骤s111之前),判断当前的凭证生成人是否属于基于所述生成人配置确定的合法的凭证生成人;在判断结果为肯定的情况下,执行凭证生成过程。在后者的情况下,该确定过程可以包括:在执行凭证生成过程期间(例如,在步骤s115中的填充凭证模板之后且在由填充的凭证模板生成财务凭证之前),判断当前的凭证生成人是否属于基于所述生成人配置确定的合法的凭证生成人;在判断结果为肯定的情况下,继续凭证生成过程。在任一情况下,若判断结果为否定,本发明的方法结束。这里,当前的凭证生成人可以基于相关联的用户信息确定,该用户信息可以被包括在凭证生成触发事件中,或者独立于凭证生成触发事件被提供。例如,在步骤s115中的填充凭证模板之后且在由填充的凭证模板生成财务凭证之前,这样的用户信息可以被提供以触发由填充的凭证模板生成财务凭证;此时,可由该用户信息识别和确定当前的凭证生成人,然后进行上述确定过程。
[0050]
根据情况,合法的凭证生成人可以是具体的某个人,也可以是与业务单据相关联的业务流程上对应某个环节(例如会计初审、会计复审等)的人。
[0051]
例如,后台程序可以监听流程进入到每个环节的事件,当发现当前监听的环节具有手动生成凭证的配置时,可以自动根据已有的生成人配置获得对应的合法的凭证生成人,后续在生成凭证时可以校验当前人是否具有凭证生成权限。
[0052]
再如,后台程序可以监听流程结束每个环节的事件,当发现当前监听的环节具有结束时自动生成凭证的配置时,可以自动根据已有的生成人配置获得对应的合法的凭证生成人,然后可以进行生成人校验以确保由合法的生成人创建对应的凭证。
[0053]
在一个实施例中,凭证模板具有相关联的用于确定合法的凭证推送人的推送人配置。在此情况下,本发明的方法还可以包括确定凭证推送人是否合法的过程。例如,该确定过程可以包括:在执行凭证推送过程之前,判断当前的凭证推送人是否属于基于所述推送人配置确定的合法的凭证推送人;以及,在判断结果为肯定的情况下,执行凭证推送过程。若判断结果为否定,本发明的方法结束。这里,当前的凭证生成人可以基于相关联的用户信息确定,该用户信息可以被包括在凭证推送触发事件中,或者独立于凭证推送触发事件被提供。
[0054]
根据情况,合法的凭证推送人可以是具体的某个人,也可以是与业务单据相关联的业务流程上对应某个环节(例如会计初审、会计复审等)的人。
[0055]
例如,后台程序可以监听流程进入到每个环节的事件,当发现当前监听的环节具有手动推送凭证的配置时,可以自动根据已有的推送人配置获得对应的合法的凭证推送人,将凭证推送权限插入到凭证推送人的权限中,后续在推送凭证时校验当前人是否具有
凭证推送权限。
[0056]
再如,后台程序可以监听流程结束每个环节的事件,当发现当前监听的环节具有结束时自动推送凭证的配置时,可以自动根据已有的推送人配置获得对应的合法的凭证推送人,将凭证推送权限插入到凭证推送人的权限中,然后可以进行推送人校验以确保由合法的推送人推送对应的凭证。
[0057]
图3示意性示出根据本发明另一实施方案的用于处理业务单据的方法300。
[0058]
方法300开始于步骤s301:接收凭证生成触发事件。
[0059]
在步骤s302处,判断当前的凭证生成人是否属于基于与业务单据相关联的生成人配置确定的合法的凭证生成人。该生成人配置可以是预先建立的。
[0060]
若步骤s302处的判断结果为肯定,方法300进行到步骤s303;否则,方法300进行到步骤s304。在步骤s303处,执行凭证生成过程。该凭证生成过程可以如上文结合图1所述,这里不再赘述。在步骤s304处,该方法结束。
[0061]
完成凭证生成过程后,方法300继续进行到步骤s305:接收凭证推送触发事件。
[0062]
在步骤s306处,判断当前的凭证推送人是否属于基于与当前所用的凭证模板相关联的推送人配置确定的合法的凭证推送人。该推送人配置可以是预先建立的。
[0063]
若步骤s306处的判断结果为肯定,方法300进行到步骤s307;否则,方法300进行到步骤s308。在步骤s307处,执行凭证推送过程。该凭证推送过程可以如上文结合图1所述,这里不再赘述。在步骤s308处,该方法结束。
[0064]
本发明可以实现为一种用于处理业务单据的系统,该系统包括处理器,该处理器被配置为执行计算机指令以执行本发明的一种用于处理业务单据的方法的部分或全部步骤。
[0065]
在一个实施例中,提供了一种计算机设备,其包括存储器和处理器,所述存储器上存储有可由处理器执行的计算机指令,所述计算机指令在由所述处理器执行时指示所述处理器执行本发明的用于处理业务单据的方法的各步骤。该计算机设备可以广义地为服务器、终端,或任何其他具有必要的计算和/或处理能力的电子设备。在一个实施例中,该计算机设备可包括通过系统总线连接的处理器、存储器、网络接口、通信接口等。该计算机设备的处理器可用于提供必要的计算、处理和/或控制能力。该计算机设备的存储器可包括非易失性存储介质和内存储器。该非易失性存储介质中或上可存储有操作系统、计算机程序等。该内存储器可为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口和通信接口可用于与外部的设备通过网络连接和通信。该计算机程序被处理器执行时执行本发明的用于处理业务单据的方法的步骤。
[0066]
本发明可以实现为一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由处理器执行时导致本发明的方法的步骤被执行。在一个实施例中,所述计算机程序被分布在网络耦合的多个计算机设备或处理器上,以使得所述计算机程序由一个或多个计算机设备或处理器以分布式方式存储、访问和执行。单个方法步骤/操作,或者两个或更多个方法步骤/操作,可以由单个计算机设备或处理器或由两个或更多个计算机设备或处理器执行。一个或多个方法步骤/操作可以由一个或多个计算机设备或处理器执行,并且一个或多个其他方法步骤/操作可以由一个或多个其他计算机设备或处理器执行。一个或多个计算机设备或处理器可以执行单个方法步骤/操作,或执行两个或更多个方法步骤/操
作。
[0067]
本领域普通技术人员可以理解,本发明的用于处理业务单据的方法的全部或部分步骤可以通过计算机程序来指示相关的硬件如计算机设备或处理器完成,所述的计算机程序可存储于非暂时性计算机可读存储介质中,该计算机程序被执行时导致本发明的用于处理业务单据的方法的步骤被执行。根据情况,本文中对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器的示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘等。易失性存储器的示例包括随机存取存储器(ram)、外部高速缓冲存储器等。
[0068]
以上描述的各技术特征可以任意地组合。尽管未对这些技术特征的所有可能组合进行描述,但这些技术特征的任何组合都应当被认为由本说明书涵盖,只要这样的组合不存在矛盾。
[0069]
尽管结合实施例对本发明进行了描述,但本领域技术人员应理解,上文的描述和附图仅是示例性而非限制性的,本发明不限于所公开的实施例。在不偏离本发明的精神的情况下,各种改型和变体是可能的。