航运业未完航次利润核算平台的设计与实现

2021-04-18 23:45黄震
软件工程 2021年4期

黄震

摘  要:根据新会计准则和报表披露要求,远洋运输企业需要根据合同进度采用完工百分比核算法对未完航次的收入和成本费用进行核算。本文通过企业的实际应用简要介绍了一种基于SAP(思爱普)系统的未完航次利润核算平台的设计思路和实现方法。通过ABAP(高级商务应用编程)的结构设计上载报文、匹配运营方式和算法变量并利用内表进行系数计算和凭证推导,最后自动完成平行记账,使财务会计和管理会计能同时体现未完航次的当期利润,从而满足了不同航运公司的核算需求和新局势的发展要求,解决了航运企业的实际问题。

关键词:未完航次利润核算;完工百分比核算法;SAP系统;ABAP语言

中图分类号:TP319     文献标识码:A

文章编号:2096-1472(2021)-04-39-04

Abstract: According to the new accounting standards and report disclosure requirements, shipping enterprises need to use percentage-of-completion method to calculate revenue and cost of the unfinished voyage according to contract schedule. This paper proposes to design and implement a profit accounting platform for unfinished voyages based on SAP (System Applications and Products) system. First, through structure design with ABAP (Advanced Business Application Programming), data package is uploaded; operation modes and algorithm variables are matched. Then, coefficient calculation and voucher deduction are performed via using the inner tables. Finally, parallel booking is automatically completed so that financial accounting and management accounting can simultaneously reflect current profits of unfinished voyages. The proposed platform is designed to meet accounting needs of different shipping enterprises and new situations, solving actual problems of shipping enterprises.

Keywords: profit accounting of unfinished voyages; percentage-of-completion method; SAP system; ABAP language

1   引言(Introduction)

对于远洋运输企业而言,往往一个运输合同会跨多个月份,因此,在核算当期利润时,通常采用的是“完成航次核算法”,即只考虑完成航次的利润核算,而对未完成航次则全部不进行计算[1]。但根据新会计准则要求,航运企业也需对未完航次进行利润核算,出具按“完工百分比核算法”核算的主营业务收入和主营业务成本,以满足财务管理、审计以及上市公司信息披露的需要。“完工百分比核算法”是指根据合同进度确认收入和成本费用的方法[2]。这个方法规范了合同的确认、计量和相关信息的披露,体现了与国际会计准则的接轨,能较大程度提高企业会计信息质量[3]。

因此,如何在现有系统中实现POC(Percentage of Completion,完工百分比)核算是远洋运输企业亟待解决的一个问题。在此背景下,本文提出一种未完航次完工百分比利润核算平台的设计思路和实现方法来解决航运企业的这一问题。

2  建设背景与目标(Construction background and objectives)

Z集团使用的ERP(Enterprise Resource Planning,企业资源计划)系统是目前世界排名第一的SAP软件,其云解決方案用户数量达2 亿,遍布180 个国家。福布斯全球企业2000强中,有91%的企业与SAP系统有关,在中国也有超过15,000家企业客户[4],其市场占有率远超竞争对手Oracle以及国内的用友、金蝶等厂商[5]。

在此之前,Z集团采用的也是“完成航次核算法”,即集团内各航运企业的当年损益为已完航次的损益结果,不体现未完航次的营运情况。因此,在新会计准则的要求下需要开发核算平台,用“完工百分比法”将未完航次的运营情况同时体现到财务会计的损益表以及管理会计的COPA(Controlling Profitability Analysis,获利能力分析)表中,实现既可在当期利润中体现未完航次的损益情况,也能同时在COPA模块对未完航次进行获利能力分析,使财务数据更客观地反映实际业务情况。

具体建设目标如图1所示。航次是获利能力分析的基本单位,Z集团各航运公司的业务系统能为已完航次的收入和直接成本预估提供必要的数据支持,这部分数据会通过接口上传至SAP。平台的建设目标是在SAP中利用这部分业务数据自动推导并生成相应的收入和成本预估数据,并通过CO(Controlling,管理会计)模块和FI(Finance,财务会计)模块同时平行记账,由此保证期末成本分析报表和损益表数据一致,以达到各类监管和披露要求。

3   设计概述(Design overview)

3.1   完工百分比法的核算要求

完工百分比法是将未完航次的整航次全额收入和成本与完工系数相乘,获得相应的完工百分比收入和成本,具体核算方法如下:

POC收入=完工系数×R

POC成本=完工系数×C

其中,“POC收入”指按POC法计算出的未完航次收入,“POC成本”指按POC法计算出的未完航次成本。“完工系数”即完工百分比系数,计算方法如下:

R代表“未完航次的整航次全额收入”,根据期租和程租两种不同的经营方式,未完航次的整航次全额收入具有不同的含义和获得方式。

在期租经营方式下:

R=期租日租金收入×已实现营运天

在程租经营方式下:

R=未完航次已完成港口的实际收入+未完航次未完成港口的预估收入

C代表“未完航次的整航次全额变动成本”,根据期租和程租两种不同的经营方式有不同的含义与核算方法:

在期租经营方式下:

C=佣金费率×期租未完航次的收入

在程租经营方式下:

C=C1+C2+C3

其中,C1是已承运部分港口的实际变动成本,在SAP系统中存在信息;C2是已承运未记账部分的预估变动成本;C3是未承运部分的预估变动成本。C2和C3的费用构成主要是燃油费和港口费,该数据将在SAP系统外计算后,通过数据包上载方式在SAP系统中保存。

3.2   完工百分比核算平台的SAP系统架构设计

因为在POC系列数据计算过程中需要结合多方面的业务数据,计算过程复杂,而且需要核算平台同时生成FI财务会计和CO管理会计的记账凭证,因此平台分成三个主要部分:数据上载、数据计算和凭证生成,具体设计如图2所示。

(1)S1 数据上载

这部分的主要任务是将POC系列计算过程中所需的业务系统数据从业务系统(调度系统或统计系统等)中以数据包的形式上载并保存到SAP。数据包将按约定的报文格式输出,其形式可为文本文件或电子表格文件。报文的传输方式既可通过客户端本地上载,也可选择从服务器上载的方式完成,这样可以同时满足单次灵活上载和周期性上载双方面的要求[6]。数据包报文进入SAP时将经过严格的校验,只有符合既定条件的数据方可通过。数据包在SAP中正式運行的校验过程将留有详细的历史日志,以便问题分析和跟踪。

(2)S2 POC计算

数据库锁定:在进行数据计算前,先锁定S1上载得到的数据表,为后续计算提供一个相对稳定的数据环境。

数据计算:为满足各航运公司不同的计算需求,数据计算部分将采用算法分配方式,这样既可满足现有需求,也可为将来Z集团拓展新计算方法奠定基础。数据计算主要包括完工系数计算、POC收入系列计算、POC成本系列计算。

数据保存:数据计算后的结果将保存在SAP中,并留有详细的日志信息。该计算结果将用于后续的POC收入和POC成本凭证记账,当凭证成功记账后,将回写凭证号,以保持计算结果和生成凭证间的联系,同时提供数据追溯、审计和报表出具的用途。

数据库解锁:当计算完毕后,可将S1中的上载表解锁,以便于后续上载之用。

(3)S3 POC记账

数据记账:将S2中计算得到POC收入和POC成本数据在SAP中生成FI和CO凭证,并且自动生成下月初的冲销凭证。

数据查询:凭证生成的同时,POC核算平台会将相应的凭证号回写至日志表中。通过对日志表的查询,可以清晰地分析到计算结果和过程,并可直接查看相应的凭证,进行必要的分析工作。

数据调整:如数据发生变化,包括POC原始收入和原始成本等计算因素发生变化,将重新计算(需要的话可重新上载),记账时将取重新计算与上次计算结果的差额进行凭证记账,同时这部分差额也将保存在日志表中以备后查。

4   系统实现(System implementation)

SAP系统采用的是ABAP语言,它是SAP独有的开发语言,底层基于C/C++。从某种意义上看,ABAP不仅仅是一门开发语言,还是一个完整的client/service开发环境,具有面向对象、事件驱动、模块化等特点及错误捕捉、内存管理、数据库连接、操作等机制[7]。

4.1   读入数据包

数据源获取方式为从本地指定目录中读取指定数据包。数据文件中的收入或变动费用的预估数据为当前预估的最后结果,而非增量数据。数据包中第一行包头采用固定位数截取数据,不采用分割符,即第一行中每个字段都以固定的字段长度进行区分。数据包头结构和行结构分别如表1、表2所示。

读入报文前,在输入屏幕(图3)上会进行五道校验,用于判断操作者是否有航运公司的记账权限、FI和CO记账期间(当月和冲销月)是否打开、是否锁库等。

读入报文后,会进行28道校验,其中数据包的独立性校验有11道,包括关账年月、经营方式、计划总营运天、费用类别、货币、金额等是否合法;另外还有七道相关性校验,包括同一个“船名+航次”其“经营方式”需一致,“公司代码+船舶代码+航次号”在“所有航次主数据表”中需存在,“公司代码+船舶代码+航次号”在“航次挂港数据”中港序为01的记录必须存在等。校验后的正确数据将存放在SAP内表IT_POC中。

4.2   数据处理及结果显示

4.2.1   计算完工系数

通过SAP表ZUSVVDSTA,可以获得“公司代码+关账年月+船名+航次”对应的“未完航次营运天”,再将其与报文中的“未完航次计划总天数”相除即可得到完工系数。

4.2.2   计算预估收入和成本

为满足平台的拓展性和灵活性,将计算算法设计成变式模式,不同的核算方法可以由用户定义,再通过配置,使不同航运业务可以采用不同的核算方法,具体如下:

(1)找到公司对应的变式(YIFVARIANT_COCD-ZVART),条件为:

SELECT ZVART FROM YIFVARIANT_COCD WHERE IT_POC-BUKRS = P_BUKRS

IF SY-SUBRC <> 0.

MESSAGE 公司代码&没有分配相应的变式.

ENDIF.

(2)找到包中“类别”字段在其所属变式下对应的计算方法YIFVARIANT_TYPE-ZMETHOD,条件为:

YIFVARIANT_TYPE-ZVART = 上步得到的ZVART AND

YIFVARIANT_TYPE-ZPOCTYPE = IT_POC-ZPOCTYPE AND

YIFVARIANT_TYPE-ZDEALINGCATEGORY = IT_POC-ZDEALINGCATEGORY

IF SY-SUBRC <> 0.

MESSAGE 类别&经营方式&未分配相应的计算方法.

ENDIF.

(3)部分算法代码配置,如表3所示。

4.2.3   POC凭证推导

内表IT_POC中的记录按同一“船名+航次+货币”生成一张凭证,同一个“船名+航次+货币”中的每行将根据凭证配置表推导得到两行。将要生成的凭证内容放到IT_POC_POST表中,记账金额来自IT_POC-ZPOST_AMT,科目等记账要素来自凭证配置表,具体如下:

(1)通过YIFVARIANT_P1表获取公司代码对应的“凭证变式”(YIFVARIANT_ZVART)。

(2)得到“凭证变式”后再到凭证配置表(YIFBKPF_P1/YIFBSEG_P1)中得到将生成凭证的记账要素。成功推导后会先显示如图4所示的数据包内容和计算结果。

此时,点击屏幕上的按钮,可以查看将生成的POC模拟凭证情况,如图5所示。

4.3   FI/CO凭证平行记账

如果对测试运行的结果满意,可以退回运行界面,去掉“测试运行”,进行正式记账。每组正确记录(船名+航次+货币)除了生成一張当月凭证外,还会在下月1日生成一张反向的冲销凭证。

对于多屏幕的数据输入和数据捕获,可以使用ABAP工作台提供的Call Transaction屏幕调用机制自动完成[8],因此POC核算平台也采用了该种方式批量输入数据自动生成当月凭证。调用的BDC-TCODE是FB01,BDC参数取自内表IT_POC_POST。下月凭证的生成方式类似,但调用的BDC-TCODE是FB08,BDC参数如表4所示。

运行后,可以用SAP交易代码FB03查看生成的正式凭证内容,验证已达实际变动成本是否被转出。生成的正式凭证如图6所示,其中“被逆转”处的凭证号即下月1日的冲销凭证,至此说明POC的当月正向凭证和次月冲销凭证都全部正确生成。

同时,与财务会计匹配的管理会计平行账也会自动生成,可以在POC核算平台上查看到该未完航次的获利能力分析结果,如图7所示。

4.4   结果存LOG表

如果是正式运行,则会将结果存储在ZNEWGAAP_POC和ZNEWGAAP_REALDOC表中,具体包括校验结果、计算结果、当月凭证号和下月冲销的凭证号等。

5   结论(Conclusion)

市场上唯一不变的是变化,企业随时可能因为标准、审计或信息披露等外部要求的变化而调整内部环境,Z集团选用的SAP系统在此次应变中展现了优秀的灵活性和拓展能力,能利用既有财务数据及业务系统数据快速实现完工百分比的

核算要求。本次实现中考虑到数据计算部分各航运公司的需求不尽一致,且数据计算部分是整个POC核算平台最为核心的部分,因此本设计充分从前瞻性和灵活性的角度出发,利用结构化的设计,对不同对象赋予不同算法变量。实际运行结果表明,POC核算平台能够很好地满足新会计准则的核算要求,其灵活的拓展性亦能满足新局势的发展,具备一定的推广价值。

参考文献(References)

[1] 朱乐明.谈完工百分比法核算在航运企业的应用[J].交通财会,2009(10):64-66.

[2] 中国财政部.企业会计准则2006[S].北京:人民出版社,2006.

[3] 张爱琴.完工百分比法应用分析及建议[J].财会月刊,2014(23):38-40.

[4] SAP. Why SAP[EB]. https://www.sap.com/why-sap.html, 2020.

[5] 龙海.SAP系统在国内成功实施的关键因素分析[J].华北电力大学学报(社会科学版),2016(05):94-98.

[6] GONSALVES, ANTONE. SAP business objects offer joint data migration services[J]. Intelligent Enterprise, 2008(11):12-15.

[7] Ahmed. ABAP development for SAP HANA[M]. Bonn: Rheinwerk Publishing, 2015:213-220.

[8] SUSHIL M, KAUSHIK R. Selection-screens[J]. Sap Abap, 2014(12):447-512.

作者简介:

黄  震(1977-),女,硕士,高级讲师/高级信息系统项目管理师.研究领域:项目管理,财务信息化.