闲人闲谈PS之三十九——项目财务报表设计

这篇具有很好参考价值的文章主要介绍了闲人闲谈PS之三十九——项目财务报表设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

惯例闲话:最近群友们一直在讨论SAP顾问的方向和出路。从目前国企和央企的方向来看,SAP被国产化替代是不可逆转趋势,对此很多朋友感觉到了失业危机。对此,闲人的看法是,趋势不可逆,但SAP产品在不久的将来,会以另外一种形式出现并全面铺开。而目前所看到的,并没有一个能替代的产品出现,依葫芦画瓢的也看到过,但总结一句话,东施效颦。所以,闲人对此持乐观态度,机会总是会给准备的人,而目前这一行,能潜心研究工业信息化底层业务架构的同行,还凤毛麟角。所以未来10年之内,对SAP从业者而言,是挑战也是机会,大浪淘沙,真金不怕火炼,希望各位好运。
闲话到此为止,今天聊聊项目财务报表设计

项目财务报表问题

PS模块和财务的关联更为紧密,WBS是重要成本对象之一,常见的财务凭证表BSEG,ACDOCA,COSP,COSS等表,是常用的项目成本报表取数来源,和后勤的用法不一样的是,财务表中的WBS通常体现为对象号OBJNR,通过对象号关联WBS。这些都是非常基本的应用。但是按照常规的方法,会存在一个共同的问题,项目财务报表的效率问题,没有任何例外,根本原因是,所有的项目制企业,都是按项目全周期来分析成本,随着上线后持续的财务凭证生成,必然产生效率问题。因此在项目财务分析的设计中,效率成为一个影响方案落地的问题。

RPSCO表分析

闲人闲谈PS之三十九——项目财务报表设计
图 业务对象的余额汇算过程
SAP考虑到这个问题,如上图,PS的财务底表中,RPSCO表是一个具有重要意义的表,这个表包含了PS模块产生绝大部分财务相关的数据,成本计划、计划收入、预算、承诺、实际成本、实际收入以及结果分析等等, 系统将实时WBS的余额保存到RPSCO表中,有了这个实时累计数,在很多需要计算累计金额的场景中,效率问题通过RPSCO可以迎刃而解。
首先分析RPSCO表重要的组成字段:
1、OBJNR:成本对象号,PS的成本对象分为WBS、网络头、网络活动三种:
WBS对象类型PR,和PRPS-OBJNR关联;
网络头对象类型NP,和AUFK-OBJNR关联:
网络活动对象号NV,和AFVC-OBJNR关联:
闲人闲谈PS之三十九——项目财务报表设计

图 ACDOCA表ACCASTY成本对象类型

为了减少报表中的联查逻辑,提高效率,一般的做法是,用WBS成本对象来归集成本,建议不要将网络作为成本对象,这样会大大增加报表的查询负荷。在配置上实践,如下图OPT1对于项目网络发货,将移动类型配置为221。这样配置后,MIGO发货后,在网络上不会产生余额,余额转嫁到网络归属的WBS,而这种结果也是我们所需要的,直接取PR对象的余额。

闲人闲谈PS之三十九——项目财务报表设计

图 网络发货移动类型配置

2、LEDNR 预算/计划分类帐,成本对象货币和控制范围货币不同时,按汇率自动换算。这个字段通常用于选择不同货币时,作为关键条件选择。如下图,WBS 1520000099-01的对象货币CNY对应0002,控制范围货币HKD对应0003。这里的规律是,控制范围货币的LEDNR编码排在对象货币的编码之后。取数时候按需要排序。
闲人闲谈PS之三十九——项目财务报表设计

图 WBS对象货币和控制范围货币换算

3、WRTTP 值类型 /VORGA预算类型预算/计划,这个2个字段组合在一起,区分成本计划、预算、承诺、实际的关键字段,几种常用的类型组合解析如下:
闲人闲谈PS之三十九——项目财务报表设计4、 BELTP 借类,表示成本和收入。
和WBS结构设计存在关系,这里强烈建议计成本和收入时,归集收入和成本的WBS区分开,这和符合多数项目制企业的记账习惯,一般首层WBS项目层,记收入。下层记成本,这样收入凭证就不会影响直接取数。如果同一个WBS成本收入和计入,那么RPSCO表中的成本会被收入抵消一部分,这样就失去了利用RPSCO表的意义。
5、VERSN,版本,使用成本计划时,需要用VERSN判断对应的成本。

6、WLP01~WLP16,当月的余额。在使用中需要将截止月份余额,需要将月份余额累加起来。从16列开始到31列的金额累加,计算WBS累计成本的参考逻辑如下:
LOOP AT LT_RPSCO INTO LS_RPSCO
WHERE OBJNR = LS_WBSRPSCO-OBJNR
AND WRTTP = ‘04’
AND ( VORGA = ‘COIN’ OR
VORGA = ‘COIE’ OR
VORGA = ‘RKIB’ OR
VORGA = ‘RKIV’ OR
VORGA = ‘KOAO’ OR
VORGA = ‘KOAR’)
AND VERSN = ‘000’
AND LEDNR = ‘0003’
AND GJAHR LE I_DATE+0(4)
AND BELTP = ‘1’."成本和贷方支付
ASSIGN LS_RPSCO TO ."将工作区赋值给指针区
LV_TIMES = 16 ."从16列开始取数
IF LS_RPSCO-GJAHR < LV_GJAHR.
DO 16 TIMES."循环16次累加
ASSIGN COMPONENT LV_TIMES OF STRUCTURE TO .
LS_WBSRPSCO-ACTUAL = LS_WBSRPSCO-ACTUAL + .
LV_TIMES = LV_TIMES + 1.
ENDDO.
ELSEIF LS_RPSCO-GJAHR = LV_GJAHR.
DO LV_MONAT TIMES.
ASSIGN COMPONENT LV_TIMES OF STRUCTURE TO .
LS_WBSRPSCO-ACTUAL = LS_WBSRPSCO-ACTUAL + .
LV_TIMES = LV_TIMES + 1.
ENDDO.
ENDIF.
ENDLOOP.
CLEAR LS_RPSCO.
这段逻辑的结果,如下图,将这些字段累计。
闲人闲谈PS之三十九——项目财务报表设计

图 累加字段
以上是RPSCO表中关键字段的解读,理解以上字段的意义是掌握这个表基础。这个表也是大部分S_ALR*表的取数源头。

应用举例

某公司是一家建筑机电设备安装工程公司,组织架构按照公司法人/事业部/项目层层分解,每月财务需要根据每个项目的预算成本、实际成本、实际收入、变更追加成本等数据监控公司运营状况,分析每个责任主体绩效。
闲人闲谈PS之三十九——项目财务报表设计

图 项目分析组织架构
公司年产值40亿,单个项目WBS结构达到1800+数量级别,逻辑不复杂每个项目数据获取后,按事业部、公司汇总。分析了三种方案:
方案A:常规ABAP直接开发,直接根据需求定制化开发报表。
1、优势为开发速度相对较快。
2、报表的通用性不强,由于管理报表逻辑复杂,对运维的要求较高。
3、报表实时读取,效率也较低。
方案B:参考BW的理念,指标模块化开发。
1、建立统一的分析维度和查询标准,将项目营收报表、项目试算表的分析指标模块化分解。
2、定期将数据保存在定制表中,实现快速查询
3、分析指标模块化,在统一按项目+时间的维度下,可根据不同的实现报表拼接生成新的管理报表。
4、具有较大的灵活性,方便运维
5、开发周期相对A,略长
本方案可简单理解是基于方案CBI理念下+业务模块化思想的简化应用
方案C:上BI系统。SAP专项解决方案,专门为企业SAP上线后,建立分析决策模型,快速抽取数据形成报表。BI的实施一般在SAP稳定运行,积累一定的数据量基础上进行。需一定的时间周期沉淀。
如果按照方案A,程序必然出现超时DUMP问题,方案A毫无疑问舍弃。由于客户对SAP项目预算有限和实施周期,方案C不具备实施条件。最终选定了方案B。

设计过程

1、确定汇总层级。如上图,项目->事业部->公司法人
2、确定分析指标,需要有期间分析功能。指标预算、承诺、累计成本、累计收入、开票、回款等核心财务数据。最大的效率瓶颈在这个环节。其中成本、收入、回款、承诺是跨整个项目全生命周期是最大难点。
3、利用RPSCO表将指标模块化,化整为零,独立存表,称之为模块子表。如下表:
闲人闲谈PS之三十九——项目财务报表设计

4、模块子表的主键统一为项目定义/年度/更新日期,这一步是十分关键,和财务总监确定后,设计表结构。下表为部分子表举例

子表名 字段名 字段描述 主键 说明
ZTPS_0001 MANDT 客户端 X SAP客制表默认字段
ZTPS_0001 PSPID 项目定义 X  
ZTPS_0001 POSID WBS X  
ZTPS_0001 BUDAT 更新日期 X  
ZTPS_0001 STUFE 层级    
ZTPS_0001 PLFAZ 项目基本_合同开工日期    
ZTPS_0001 PLSEZ 项目基本_合同竣工日期    
ZTPS_0001 SPROG 项目基本_实际开工日期    
ZTPS_0001 EPROG 项目基本_实际竣工日期    
ZTPS_0001 POST1 项目基本_描述    
ZTPS_0001 S_TXT04 项目基本_项目状态_上年    
ZTPS_0001 B_TXT04 项目基本_项目状态_本年    
ZTPS_0001 Z_SNXXJD 截止上年末业主确认的形象进度    
ZTPS_0001 Z_BNXXJD 截止本年末业主确认的形象进度    
ZTOA_0003 MANDT 客户端 X SAP客制表默认字段
ZTOA_0003 PSPID 项目定义 X  
ZTOA_0003 POSID WBS X  
ZTOA_0003 BUDAT 更新日期 X  
ZTOA_0003 ZBGWTQ 变更Y2_未提请金额    
ZTOA_0003 ZBGYTQ 变更Y2_已提请金额    
ZTOA_0003 ZBGYQR 变更Y2_已确认金额    
ZTOA_0003 ZBGYHT 变更Y2_已转化为合同金额

表 表结构设计
4、指标计算逻辑。最核心的取数逻辑,详细见上RPSCO表分析,逻辑编写不复杂,前提是掌握RPSCO表的更新逻辑。将项目各项指标计算封装成函数,如图ZPS_FM_WBSRPSCO_GET,获取到数据后,做汇算逻辑。和常规方法最大的区别,非凭证级别,而是余额的汇算,效率大为提高,理论上,每个WBS只需要一次循环,即可算出当期余额。
闲人闲谈PS之三十九——项目财务报表设计

5、按客户财务总监要求,数据实时性定为24小时,每天晚上1点,系统资源空闲的时候,进行计算汇总,存入子表。如果个别项目需要最新数据,则人工执行一次即可刷新表数据。

6、项目综合营收报表测试,毫无疑问,效果在预料之内,可以达到秒内速度

闲人闲谈PS之三十九——项目财务报表设计
图 项目综合报表执行结果

小结:这个案例在项目制企业非常典型,在以往的项目实践中,项目报表出不来或者数据不准,是很多实施项目的遗憾。从以上过程总结几个重要的启示:
1、财务分析要在蓝图设计阶段今早规划,以此作为方向定功能基础;
2、业务层面的索引条件标准化,统一了统计和查询口径。
3、SAP标准功能价值最大化,对RPSCO表的利用。
4、财务数据时效性口径。随着系统数据海量增长,做到完全实时几乎不可能就需要约定时效性,一般24小时。
文章来源地址https://www.toymoban.com/news/detail-400633.html

到了这里,关于闲人闲谈PS之三十九——项目财务报表设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【T3】打开财务报表提示不能登陆到服务器,请检查服务器配置。

    【问题描述】 在使用畅捷通T3软件的时候, 打开【财务报表】提示:不能登陆到服务器(GUPR7FM),请检查服务器配置。 但是打开【总账系统】,填制凭证、查看报表等操作都正常。 【解决方法】 由于操作【总账系统】正常,所以可以判断是整体软件正常。 只是【财务报表

    2024年02月11日
    浏览(76)
  • Qt基础之三十六:异常处理

    本文将介绍如何在Qt中使用try...catch和调试dump文件来处理异常。 Qt版本5.12.6 一段简单的捕获异常的代码,新建一个控制台工程,pro文件不用修改 输出:CSDN:Cao Shang Pa QT_THROW那行如果改成:QT_THROW(\\\"CSDN:Cao Shang Pa\\\"); 输出:Unknown Exception 这是因为异常是强类型的,在catch异常的时候

    2024年02月07日
    浏览(49)
  • 软件机器人财务报表信息的采集和录入、抵押贷款信息查询助力银行贷款业务管理

    随着科技的飞速发展,自动化的应用场景也越来越广泛。博为小帮软件机器人的出现,无疑为众多行业带来了巨大的转变,其中就包括银行贷款业务。 软件机器人是一种可以模拟人类行为,自动化执行高重复性任务。银行业务中,许多重复性高、规则明确的工作,如企业客户

    2024年02月07日
    浏览(55)
  • MongoDB(三十九)

    目录 一、概述 (一)相关概念 (二)特性 二、应用场景 三、安装 (一)编译安装 (二)yum安装 1、首先制作repo源 2、软件包名:mongodb-org 3、启动服务:systemctl start mongod 4、监听端口:mongod 5、端口号:27017 四、目录结构 (一)rpm -ql mongodb-org-server 1、MongoDB的配置文件 2、

    2024年02月12日
    浏览(42)
  • YOLOv5、v7改进之三十一:CrissCrossAttention注意力机制

     前 言: 作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv7的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或

    2024年02月10日
    浏览(52)
  • Python工具箱系列(三十九)

    现实世界中,大量存在着对数据压缩的需求。为此,python内置了zlib压缩库,可以方便的对任意对象进行压缩。 下述代码演示了对字符串进行压缩: 运行上述代码后,会发现压缩并不一定会减少字节数,压缩的效率取决于压缩内容中的冗余程度。对于第一句的中文压缩后反而

    2024年02月15日
    浏览(49)
  • Django笔记三十九之settings配置介绍

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十九之settings配置介绍 这一篇笔记介绍 Django 里 settings.py 里一些常用的配置项,这些配置有一些是在之前的笔记中有过介绍的,比如 logging 的日志配置,session 的会话配置等,这里就只做一下简单的回顾,有一些是之前没有

    2024年02月03日
    浏览(40)
  • 第三十九章 Unity 图像 (Image) UI

    本章节,我们介绍一下“Image”UI元素,首先我们创建一个新场景“SampleScene2.unity”。然后我们点击菜单栏“GameObjec”-“UI”-“Image”,如下所示 我们将其放置到了中间位置,检视面板中的参数如下  默认情况下,这个“Image”的尺寸是100 * 100像素。 这里,我们主要介绍它的

    2024年02月10日
    浏览(49)
  • 第三十九讲:神州无线AC基础管理配置

          瘦AP零配置上线,对AP的管理和配置都在AC上进行。AC的基础管理包括AC的无线地址指定及无线功能开启、AP的注册、AP用户数管理、自动信道调整等。 一、配置AC 无线IP 地址 设置静态的无线IP地址 查看AC选取的无线IP地址   3.开启无线功能 二、AP 注册 1 .二层模式注册

    2023年04月08日
    浏览(39)
  • 【从零开始学习JAVA | 三十九篇】深入多线程

    目录 前言:         ​1.线程的寿命周期​ 2.线程的安全问题 3.锁 同步代码块: 同步方法: 死锁: 4.生产者和消费者模式(等待唤醒机制) 总结:         当今软件开发领域中,多线程编程已成为一项至关重要的技能。然而,要编写出高效、可靠的多线程程序并不容

    2024年02月13日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包