一种SAP通用数据转换平台的设计与实现

2023-09-02 03:02李洋光
关键词:字段凭证数据处理

李洋光

中远海运科技(北京)有限公司,北京 100010)

0 引 言

当前SAP(System Applications and Products)在我国的ERP(Enterprise Resource Planning)市场中占据着优势地位,很多大型国有企业都是SAP的用户,涉及的行业包括金融、地产、物流和制造业等。然而,各企业在实施SAP项目过程中,不可避免地会遇到新旧系统间数据切换的情况,包括数据的格式转换、有效性验证、批量导入和核对等,其中对数据处理的质量有很高的要求,这也是各SAP项目中最重要的环节之一。比如各公司在实际经营过程中会对财务核算标准进行调整,包括会计准则、业务往来账务核算模式和机构改革与业务重组带来的核算体系等,这可能会在数据转换过程中带来诸多不确定因素。

作为一款国际化大型ERP财务软件,SAP内置有标准的数据批导程序,包括LSMW(Legacy System Migration Workbench)、eCATT(Extended Computer Aided Test Tool)和BDC(Batch Data Conversion)等,但这些功能或程序都需在按特定的规则对原系统的数据进行调整之后才能使用,对于海量数据的转换而言并不是一种便捷的方式;同时,对于需用户人工处理的数据而言,SAP并不能提供便捷、有效的数据处理手段,存在日志管理能力差、屏幕录制过程复杂、残生会话管理繁琐、字段不能灵活增减和数据可视化的友好度不高等问题。[1]如何高效且快速地实现新旧系统间的数据转换,始终是SAP实施单位面临的一个比较棘手的难题。

综上所述,在开展SAP系统迁移和数据处理工作时,需要一套完整且可定制的数据转换系统,通过数据接收、清洗、转换、核对、调整和传送,解决用户关心的数据处理问题。在此背景下,本文提出一种数据转换平台设计方案,满足用户对数据转换的准确性和高效性的需求,同时通过实际项目的实施验证该平台的实用性和可推广性。

1 平台设计方案

1.1 主要需求分析

在实施SAP项目过程中,项目组经常会遇到各类问题,大致可分为以下3类。

1.1.1 数据量庞大

对于一些大型集团型企业而言,其下属公司众多,各公司的业务和信息化现状有所不同,采用的财务核算系统存在差异,会计科目设置不够规范,导致整个集团内部的会计核算规则和核算内容不统一,进而影响其财务分析的准确性。

1.1.2 颗粒度不统一

随着新旧系统之间数据的迁移,不可避免地会遇到会计核算方式调整的情况,可能涉及到的场景包括会计科目表变化、会计准则变化和个性化核算字段变化等。此外,用户对系统上线期间的数据细化程度的要求不同会影响新系统中初始业务数据的颗粒度,进而对数据量产生影响。

1.1.3 操作性较差

系统上线之后,很多日常业务都将通过系统直接处理,这样就对业务人员的业务水平和计算机操作水平等提出了更高的要求。然而,SAP的用户友好度并不高,存在部分操作步骤较为复杂、程序界面相对陈旧和中文翻译常有错误等问题。

为此,在项目实施之前往往需进行新旧科目、字段状态组、成本中心、利润中心和业务范围主数据的对照,根据对照好的新科目,按币种、必输辅助核算的明细项小计汇总,所有行项目数据按小计字段合并,同时压缩行项目数量,从而减少用户端的数据处理量,这样会给系统带来很大的数据清洗压力。

针对上述问题,可开发一套能针对不同系统结构、不同规格原始数据的通用型数据转换平台,满足对大量复杂数据进行接收、清洗、转换、核对、调整和传送的需求。

1.2 平台总体架构

平台采用Java语言设计开发新旧凭证转换模组,采用Data Source ETL工具将原SAP系统的数据导入MySQL等关系型数据库中。平台总体架构见图1。

图1 平台总体架构

1.3 平台设计思路

平台根据映射关系将新旧科目分为3类,有2种处理方法:

1) 对于旧科目与新科目之间的关系为一一映射或多对一的关系,且科目的字段状态组一一映射的情况,平台自动进行数据转换,无需人工操作;

2) 对于旧科目与新科目之间的关系为一对多的关系,或旧科目与新科目的字段状态组之间的关系为一对多的关系的情况,根据标记由用户进行人工拆分,最终结果由平台通过接口导入SAP中,生成凭证。

凭证转换平台可自动校验每个科目的必输字段,若有新增字段必输要求的情况,同样需要用户进行人工拆分,如成本中心、内部订单和报表分类等。

对于业务核算模式的变更,以银行科目为例,旧银行科目精确至每个特定的银行账中,新银行科目启用了开户行和账户标识的字段必输要求,根据币种/活期/定期/通知存款/受限资金的维度设计,不同银行账户的记账需通过开户行和账户标识字段的必输控制实现。平台设计思路见图2。

图2 平台设计思路

1.4 数据转换流程

由于系统实现涉及的逻辑比较复杂,本文只选取其中的几个要点加以阐述。

转换节点是实现数据转换的关键,一个完整的数据转换流程是由多个转换节点组合而成的[2]。转换节点设计是关键技术之一,会对系统的运行效率产生影响。

目前Java中已提供应用程序接口(Application Programming Interface,API)脚本,支持在Java程序中采用JavaScript、Groovy和Ruby等脚本语言,不仅能在Java中执行脚本,而且能在脚本中调用Java对象,功能强大[2]。基于脚本的转换节点具有多种功能和很强的灵活性,在运行程序时可根据转换需求编写相应的脚本并动态插入执行。平台数据处理模型流程图见图3。

图3 平台数据处理模型流程图

1.5 数据处理要点

1.5.1 数据获取

为给平台提供旧SAP系统中的财务数据,需从SAP系统中导出一系列财务数据库表。下面仅以总账科目行项目明细数据的抽取为例进行简要分析。

总账科目行项目明细应根据公司代码、会计年度和科目编号取出所需字段内容。这部分内容又分为凭证抬头信息和凭证行项目信息2个子类。凭证抬头信息需从财务凭证抬头表中读取公司代码、会计年度、凭证日期和记账日期等信息;凭证行项目信息在已取得的财务凭证抬头表相关字段信息的基础上,从财务凭证行项目表中获取对应的公司代码、会计年度、科目编码、记账码、本币金额、凭证货币金额、成本中心和客户供应商编码等一系列所需字段。

1.5.2 数据传递

为能将已读取的数据发送给平台,需设计数据发送和接收程序,旧SAP系统通过编写ABAP(Advanced Business Application Programming)程序发起数据传输,将数据发送给平台的中间表,平台读取中间表中的数据。为便于各单位进行权限控制,平台需支持多用户账号,通过界面上的公司代码和数据版本的选择实现数据提取。

1.5.3 数据转换

考虑到业务数据量可能会很大,提升数据转换的自动化水平和准确性非常重要。因此,平台设计有数据规则对应表,以根据用户的需求和任务单元实现对源数据的抽取、清洗和转换,同时要求对数据抽取过程中出现的异常情况进行监控,尽可能地减少冗余数据,保证数据加载的准确性[3]。

平台需对新旧系统的主数据进行匹配,根据数据版本、科目类型和匹配类型等条件对数据进行分类,做到能自动转换的数据由程序直接按相应的规则自动处理,无法自动转换的数据推送给用户界面,由用户人工处理。平台数据映射示例见图4。

用户拆分完数据之后,平台对这部分数据和自动转换的数据进行自动翻新,随后对这些数据进行核对,检查用户输入的主数据是否规范(如是否存在编码错误、位数缺少和数据格式无效等情况),以及是否存在未上报的数据造成业务数据缺失。初步确认数据无误之后,平台会将其推送给新SAP系统,并生成期初数据凭证,同时在日志表中做记录。

1.5.4 数据核对及调整

新系统中的凭证生成之后,需对新旧科目的余额进行核对,若核对失败,平台会针对这部分数据,通过日志表中的记录,按数据处理流程的倒序追溯金额。

1.6 平台的主要功能

1) 维度查询:用户可在平台上查询科目与辅助字段之间的映射关系。

2) 校验机制:用户在进行数据拆分时,触发SAP系统的各种校验机制,例如对字段必输、开户行与账户标识是否匹配和客商编码在系统中是否存在等进行校验。

3) 余额校验:在数据拆分之前、拆分过程中和拆分完成之后,对科目余额进行校验。

4) 冲销机制:对于已传输给SAP的已拆分数据,若用户发现其存在错误,则可在平台上点击“退回”按钮,系统自动将SAP已生成的凭证冲销,并将数据退回到待处理状态。

5) 权限控制:历史数据转换平台可对公司的权限进行控制。

6) 自动翻新:对于满足条件的科目,通过自动翻新维度系统自动进行数据翻新。

2 实例分析

以某集团型企业的SAP迁移项目为例进行分析。该项目涉及的公司有360余家,实施难点及解决方案如下:

1) 涉及的模块众多,包括总账、往来交易、资产、贷款、分销和数据仓库等,需对各模块进行期初数据准备、发生额数据准备和往来数据清理;

2) 在进行机构改革的同时,需对多个外围系统及接口进行升级改造,因此很多业务的核算模式会发生变化,不同科目核算的颗粒度也有不同的细化程度;

3) 用户要求以2020年12月31日为期初数据时点,将2021年1月—6月的全部明细数据(共1.5亿条行项目)批量导入系统中,2021年7月1日系统正式上线,数据切换复杂度高,数据量大。

2.1 批量科目数据处理

图5为平台批处理科目管理界面,下面就其中的若干字段进行简单说明。

图5 平台批处理科目管理界面

1) 版本:期初上线切换时点,如1231、0630。不同版本的科目数据会以不同的模式导入系统中,如1231版本的科目数据以余额的形式导入系统中,0630版本的科目数据以行规项目明细的形式导入系统中。

2) 类型:新科目的分类,用于处理平台数据,如现金银行类数据、往来类数据和损益类数据等。

3) 映射类型:包括一对一(OO)、一对多(OM)和多对一(MO)。

4) 计算类型:包括自动数据自动翻新(A)、用户人工处理(Y)和不处理(N)。

5) 合计字段:平台在处理数据时从哪些会计核算维度进行小计。

6) 拆分字段:需用户人工补充或拆分的字段。

7) 开户行、账户标识:银行科目必输字段。

2.2 核算规则变化查询

辅助核算字段查询:在拆分数据时,方便用户对辅助字段的映射关系进行查询。用户可在平台上检查辅助字段映射关系的正确性,提升用户人工拆分的效率,见图6。

图6 平台辅助核算字段查询界面

2.3 用户操作优化

用户在进行数据核对和处理时,既可直接在平台上勾选并下载需人工拆分的数据到Excel中,拆分完成之后再上传,又可在线处理当前选中行项目明细。此外,平台还提供追溯功能,能查询当前合并的行数据是从哪些原始数据行合计得来的。

平台总账科目批量处理界面见图7。

图7 平台总账科目批量处理界面

在数据处理完成之后,可通过平台直接导出新的科目余额表,方便与旧系统进行核对。图8为平台科目余额核对界面。

图8 平台科目余额核对界面

2.4 数据的可靠性

由于该项目涉及的公司数量和业务凭证行项目数量较多,为保证正式系统数据的准确性,在将数据传输给正式系统之前,需在质检系统中对其进行核对验证,因此为平台新增目标系统版本控制功能,使用户在调整质检系统数据时不影响已导入正式系统中的其他数据。

对于需精确至账龄日期的往来未清项,平台中的数据能根据原始财务系统数据的更新不断更新,保证数据的有效性和可靠性。

对于已传输给SAP的已拆分数据,若用户发现其存在错误,则可在平台上点击“退回”按钮,系统自动将SAP已生成的凭证冲销,并将数据退回到待处理状态,减少跨系统操作的步骤,提高用户友好度。图9为版本控制示意图。

图9 版本控制示意图

2.5 项目小结

该数据转换平台统一了360余家公司的数据标准,便于核查数据,减少人为错误,提升数据处理效率。与SAP系统内置的数据批导程序相比,该平台具有以下3个特性:

1) 数据处理的高效性,能实现对亿级数量数据的流畅处理;

2) 字段转换的准确性,能满足会计核算变化情况下各核算字段映射结果的准确性要求;

3) 用户操作的友好性,能简化用户操作,提升人机交互的便捷度,进而提高用户的满意度。

3 结 语

本文通过对SAP迁移项目中常见的数据问题和SAP系统预置的批导程序进行分析,针对用户关心的若干数据处理问题,提出了基于Java的通用数据转换平台设计方案,并通过实际项目的实施验证了该平台的可靠性。

采用基于该通用型数据转换平台框架的系统数据迁移解决方案,能将旧SAP系统中不同科目的数据处理工作整合起来,在保证数据的准确性满足要求的同时,对用户的操作过程进行简化,避免人力浪费,保证数据迁移的质量和效率。在搭建平台过程中进行了新旧数据标准制定、数据集成和应用集成等,使其更具开发性和集成度,为高效、快速地实现海量数据由旧系统向新系统转换提供了一种有效方案。

猜你喜欢
字段凭证数据处理
带您了解医保电子凭证
图书馆中文图书编目外包数据质量控制分析
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
已完成汇交并出具汇交凭证的项目统计
(2018年)《中国司法》
(2018年)《司法所工作》
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述