现在,越来越多的大型企业在使用SAPERP进行采购销售等业务的管理,为其带来了物流、人流、资金流与信息流的高度融合,使企业的财务信息与业务信息紧密结合。但在审计过程中,我们也面对着数据难以采集,SAPERP客户端使用不便、无法有效统计的困难。接下来,我将从SAPERP简介、数据采集、凭证数据结构、凭证分析等四个方面进行讲解。
一、SAPERP简介
SAP,为“SystemApplicationsandProducts”的简称,是SAP公司的产品——企业管理解决方案的软件名称。SAP软件能够集中管理数据,为不同业务部门提供统一且真实的数据视图,让不同部门的员工能够轻松获取企业范围内的实时洞察,从而更有效地管理复杂的业务流程。
ERP是“企业资源规划”的简称。ERP软件涵盖所有核心业务领域,如采购、生产、物料管理、销售、市场营销、财务和人力资源。
SAPERP将多领域的智能ERP产品集成于统一的平台之上,可满足用户多方位的业务需求,帮助用户革新业务流程;系统可根据客户所处行业、领域针对性地提出个性化的解决方案,满足客户实际需求。
二、SAPHANA数据采集
在对某集团公司进行审计时,发现该集团公司使用的是SAPERP系统,数据库为HANA内存数据库,采用列式存储。我们将以该系统为例,对数据采集过程进行介绍。
目前有两套方案,其一是使用国内财务数据采集软件,如江苏税软软件科技有限公司的财务数据采集软件P8,可将数据采集到SQLServer中,生成需要的财务数据,但需要购买;其二是让被审计单位使用SAP的ETL工具,将数据采集到SQLSERVER中,方便审计人员对数据进行统计分析。下面,我将以SAP的ETL工具采集数据为例进行讲解。
1.准备系统数据表。
SAP的模块很多,如BSEG(会计凭证行项目表)、BKPF(会计凭证头表)、KNA1(客户主数据表)、LFA1(供应商主数据表)等。采集前,需要准备好SAP系统数据表,非标准数据要用ABAP(SAP的开发者用于开发SAPR/3平台上的编程语言)建表存数据,用于后面的数据采集。
2.准备SAPDataServices环境。
SAPDataServices是通过SAPHANA认证的ETL工具,其主要功能就是将数据从多个业务系统中抽取出来,进行必要的处理,如转换、合并、过滤、清洗,然后加载到BW系统或者HANA。
3.使用SAPDataServices配置数据库。
确保有SQLSERVER的驱动程序,并建立对应的连接。
建立SAP数据仓库连接。
4.建立工作Job。
连接SAP源数据表到SQLServer目标数据表。
5.建立目标表字段映射关系。
6.执行任务。
7.等待任务执行成功。
完成时,会提示Job<NC_ZTJT63>iscompletedsuccessfully。
三、SAP凭证数据结构
企业凭证数据结构与采集数据时准备的SAP数据表有关,为了使用方便,我们需要企业凭证数据中包含客户、供应商、材料等信息。
1.凭证表主要结构。
后面的数据分析将依托于该表进行。
2.主要字段编码说明。
借方贷方标识:S是借方,H是贷方。
科目类型:A是资产,D是客户,K是供应商,M是物料,S是总分类帐科目。
特殊总账主要标志:特殊总账是SAP中的说法,是指应收应付账款之外的其他的应收应付项目。
凭证主要类型:
四、凭证分析
数据采集到SQLSERVER后,可以对凭证中的客户、供应商、物料、总账、特殊总账等问题进行数据的统计和分析。
1.供应商应付款分析。
在分析各个年度、会计月,供应商借贷发生额时,需要注意下面几个问题:
●科目类型选择K表示供应商;
●过滤掉冲销凭证,只选择冲销凭证号为空的数据;
●特别总账标识选择空,表示处理应收应付账款;
●反记帐标志中是X的,需要进行抵减;
●贷方记账一般为负数。
SELECT年度,公司代码,公司名称,供应商编号,供应商名称,
CAST(月份ASINT)会计期间,
SUM(CASEWHEN借方贷方标识='借'AND标识_反记帐=''
THENCAST(按本位币计的金额ASDECIMAL(15,2))
ELSECASEWHEN借方贷方标识='贷'AND标识_反记帐='X'
THENCAST(按本位币计的金额ASDECIMAL(15,2))
ELSE0.0END
END)借方金额,
SUM(CASEWHEN借方贷方标识='贷'AND标识_反记帐=''
THENABS(CAST(按本位币计的金额ASDECIMAL(15,2)))
ELSECASEWHEN借方贷方标识='借'AND标识_反记帐='X'
THEN-ABS(CAST(按本位币计的金额ASDECIMAL(15,2)))
ELSE0.0END
END)贷方金额
FROMDBO.VSAPPZ
WHERE冲销凭证号=''AND科目类型='K'
AND公司代码='3050'AND年度='2022'
AND供应商名称='某石油化学物流有限责任公司'
AND特别总账标识=''
GROUPBY年度,公司代码,公司名称,供应商编号,供应商名称,月份
ORDERBY供应商名称,年度,会计期间
2.客户特别总账分析。
在分析各个年度、会计月,客户借贷发生额时,需要注意下面几个问题:
●科目类型选择D表示客户;
●过滤掉冲销凭证,只选择冲销凭证号为空的数据;
●特别总账标识选择非空,表示处理其他的应收应付项目;
●反记帐标志中是X的,需要进行抵减;
●贷方记账一般为负数。
SELECT年度,公司代码,公司名称,客户编号,客户名称,
B.说明业务,借方金额,贷方金额
FROM
(SELECT年度,公司代码,公司名称,客户编号,客户名称,科目类型,特别总账标识,
SUM(CASEWHEN借方贷方标识='借'AND标识_反记帐=''
THENCAST(按本位币计的金额ASDECIMAL(15,2))
ELSECASEWHEN借方贷方标识='贷'AND标识_反记帐='X'
THENCAST(按本位币计的金额ASDECIMAL(15,2))
ELSE0.0END
END)借方金额,
SUM(CASEWHEN借方贷方标识='贷'AND标识_反记帐=''
THENABS(CAST(按本位币计的金额ASDECIMAL(15,2)))
ELSECASEWHEN借方贷方标识='借'AND标识_反记帐='X'
THEN-ABS(CAST(按本位币计的金额ASDECIMAL(15,2)))
ELSE0.0END
END)贷方金额
FROMDBO.VSAPPZ
WHERE冲销凭证号=''AND科目类型='D'
AND公司代码='1270'AND年度='2022'
AND客户名称='某生物科技有限公司'
AND特别总账标识<>''
GROUPBY年度,公司代码,公司名称,客户编号,客户名称,科目类型,特别总账标识)A
LEFTJOIN
(SELECT*FROMDBO.特殊总账标志)B
ONA.科目类型=B.类型ANDA.特别总账标识=B.SG
ORDERBY客户名称,年度,B.说明DESC
3.购货退回业务。
部分公司将大量业务做退回处理,这时我们可以利用原因代码名称为“购货退回收到的现金”或付款原因代码为“A16”的字段编码,来分析购货退回业务。
SELECT*FROMDBO.VSAPPZ
WHERE原因代码名称='购货退回收到的现金'
ANDABS(CAST(凭证货币金额ASDECIMAL(15,2)))>=1000000.0
ANDNOT([项目文本]LIKE'%公积金%'
OR[项目文本]LIKE'%税金%'
OR[项目文本]LIKE'%保证金%'
OR[项目文本]LIKE'%社保%'
OR[项目文本]LIKE'%福利%'
OR[项目文本]LIKE'%邮递费%')
4.关联交易。
关联交易在企业中已成为一种普遍发生的行为,在带给公司以及控股股东一定利益的同时,为了获得更大利益而操纵利润、合理避税,给企业带来经营以及财务上的诸多风险。
在凭证数据中,有大量客户、供应商和企业交易的情况,这时我们可以利用Neo4j图数据库,配合工商信息数据,筛选投资和相同持股人(单位)的信息,建立客户、供应商和企业的关系图,快速发现关联交易问题。
除了关联交易,在图数据库中,查看闭合多边形结构,可以发现循环交易情况;通过关系走向,可以查看是否存在融资性贸易。具体实施方法,这里不再赘述。■
(作者单位:自治区审计厅)