在企业中,如果人力管理系统(人力资源管理HRM、人力资本管理HCM等)与财务管理系统都是同一家软件厂商的产品或同一种软件产品的两个模块,每个月在人力系统完成薪酬相关计算后,根据人力系统的数据在财务系统中自动生成薪酬相关财务记账凭证基本是软件原厂的标准功能,一般通过配置即可实现薪酬类核算的自动过账。而企业的人力系统和财务系统来自不同的软件厂商也是十分常见的情况,这就需要两个异构系统通过集成来实现薪酬自动过账,本文是一种方案。
异构系统薪酬过账的大致过程是,在人力系统完成算薪后生成工资表,薪酬核算通常不按个人记账,是按部门分组合计记账,所以工资表的每一行是一个部门的薪酬相关数据。之后通过接口把工资表数据传给财务系统,财务系统接到工资表数据后产生相关单据,基于单据再产生记账凭证并最终过账;也可以直接产生记账凭证过账。此外也有由人力系统直接加工好符合过账要求的记账凭证数据,把记账凭证数据推送给财务系统,财务系统收到数据后直接过账,也是一种方案。一切都以两个异构系统的功能、业务、企业部门分工的情况选择而定。
本文方案的基本思路是,人力系统算薪形成工资表,通过企业服务总线(ESB)或接口集成平台(例如一些iPaaS软件)把工资表数据发送给财务系统,财务系统收到数据先做数据持久化,把工资表数据存入财务系统的数据库中,然后基于工资表数据产生工单(例如用友NC Cloud ERP系统的工单,简单理解为一种表单即可),财务系统根据工单产生预制记账凭证,预制记账凭证经过审核等流程,审核通过之后过账产生正式的财务记账凭证。具体包括如下步骤:
首先人力系统为每个月需要传递的工资表生成唯一的编号,一个工资表对应一个自动过账任务,以下简称“任务编号”。任务编号可以按“业务单元+年+月+序号”的格式组成,其中“业务单元”是用友NCC的概念,与SAP的“公司代码”,或者一些财务系统的“账套”概念基本一致。如果每个月可以把所有薪酬数据放到一个表中,那么每个月只有一个过账任务,如果需要分为多个表,就为多个工资表产生对应的多个过账任务,用任务编号最后的一段的“序号”加以区分;
工资表形成后,人力系统中的过账任务状态为“空”或者是“初始”。人力系统推送工资表数据给财务系统,推送后,人力系统中的任务状态设置为“已推送”;
财务系统收到工资表数据报文后,接口按任务编号查重,如果财务系统的数据库中已有该编号的工资表数据,财务系统向人力系统返回“重复推送”,财务系统不存储新收到的工资表数据,此时人力系统的任务状态也显示为“重复推送”。如果查重后没有,财务系统把新收到的工资表数据存入数据库;
财务系统读取工资表数据开始产生工单或者预制记账凭证,此时需要调用财务系统中的各种档案数据(例如部门),如果主数据管理比较充分,人力系统和财务系统的部门编码是一致的(这是最理想的情况),直接根据工资表数据中的部门编码调用财务系统中对应的部门即可;在部门编码无法统一的情况下(例如财务系统上线早,已有很多部门的编码及其历史业务数据),就需要建立映射表实现两个系统间部门编码的翻译,可以在人力和财务两个系统中选择运维技术能力更强的一方维护映射表;
当部门等主数据匹配或者映射完成后,可以正常产生工单或者预制记账凭证后,财务系统向人力系统反馈“已收到”,人力系统接收到财务系统反馈的“已收到”的信息后,人力系统上的任务状态改为“制证中”(即财务记账凭证正在制作的过程中);
当财务系统把记账凭证成功过账后,财务系统向人力系统返回“制证成功”的信息,人力系统收到该报文后,人力系统上的任务状态改为“已制证”,一次薪酬过账任务完成。另外,按需要,财务系统也可以向人力系统返回记账凭证的编号,人力系统可以存储该编号备查。
以上是正常的情况,同时还需要有异常处理:
第一种:如果人力系统向财务系统推送工资表数据以后,人力系统长时间显示“已推送”,此时数据推送本身可能就遇到了问题,例如:网络问题,或者ESB或者iPaaS或者财务系统异常,财务系统根本没有收到数据。此时需要通过系统运维途径进行确认,经ESB或iPaaS或财务系统管理员确认,确实没有收到数据,人力系统的用户需要再次执行推送操作。
第二种:人力系统推送后,财务系统也成功收到了数据,财务系统处于制证过程中,如果因各种原因人力系统需要重新算薪,重新形成工资表后就需要重新推送。此时,人力系统用户联系财务系统运维人员,取消工单和删除任务编号对应的工资表数据,人力系统按任务编号重新推送数据。
第三种:人力系统已制证后,但因多方面原因人力系统需要重新算薪,如同第二种情况,人力系统管理员联系财务系统管理员,并协调财务人员,删除或冲销任务编号对应的财务记账凭证,之后,财务系统运维人员删除工单和任务编号对应的工资表数据,人力系统用户重新推送数据。
第四种:因人力系统与财务系统的主数据异常(例如:两个系统的部门主数据编码不一致),导致产生工单或记账凭证时出现错误,财务系统管理员删除任务编号对应的工资表数据,双方管理员解决完主数据的问题后,人力系统用户重新推送工资表数据。
关于重新推送,在人力系统任务状态是“已推送”、“制证中”、“已制证”时,推送数据后,接口会做查重,如果财务系统没有删除任务编号对应的工资表数据时,接口都向人力系统返回“重复推送”,人力系统可弹框提示给用户,并且不改变人力系统上的任务状态。直到财务系统管理员删除任务编号的工资表数据后,人力系统重新推送的数据才能被财务系统正常接收,此时人力系统按上述过程,正常设置和显示相应的任务状态。
按基本业务逻辑,在常规情况下,如果出现工资表数据发生变化需要同步调整记账凭证的情况,建议按上述过程重新推送和重新自动产生记账凭证,不建议在财务系统上直接手工修改记账凭证,手工修改容易与人力系统原始数据不一致,带来数据异常和审计等风险。
以上方案供参考和探讨。
业财一体化实战全能营【早鸟价5折、赠送10万字课程】
【课程亮点】:
【课程形式】:
课程形式:视频录播课
【报名方式】:
1、课程入口:扫上图二维码,或点击下面“阅读原文”
2.前200位早鸟价,665元
-END-