SAP BPC开发:对ABAPer的快速扫盲

最近做的都是BPC项目的开发,我觉得有必要对BPC项目的开发做一个总结。此文章仅以我个人的理解对一些概念做浅显的描述,让ABAPer刚开始做BPC项目时,能够和BPC顾问有共同语言 、快速的上手。 

1.什么是BPC?

  BPC是SAP推出的一款做预算合并分析的产品。其运行在BW/4上,所以上了BPC系统的其实就相当于装了BW,也就可以使用BW的功能。

  BPC包含了预算和合并功能,一般预算和合并是不同的顾问来实施。

  操作层面分两个部分,一个是在网页端查看流程、配置系统等,另一个是在EXCEL进行表单编制和查看(通过EXCEL的插件EPM)。

2.BPC 长什么样子的,主要功能是什么?

2.1 网页端

      在网页端可以做一些后台配置,如流程模板制作,流程实例化等。用户也可以在网页端对自己所属流程状态进行查看,以及流程审批等。

                                                       图2.1.1网页首页

             

                                                              图2.1.2 我的活动 

             我的活动中可以查看流程,流程中可以挂相应的表单,点击后可以弹开excel

           

                                                           图2.1.3 我的活动 

 

        2.2 EXCEL端

           excel端主要是表单的编制以及报表的查看。在此处可以运行包,触发脚本来完成相应的逻辑处理。

           

                                             图2.2.1 打开表单

          

                                           图2.2.2 表单

         2.3 GUI端

         GUI 和SAP是一样的,但是会少了很多组件,SE16N没有,alsm_excel_to_internal_table函数没有等等

3.环境,模型,维度,属性是啥意思?

   这几个其实都是BW的概念。一个BPC系统可以有多个环境,一个环境可以有多个模型,一个模型由多个维度组成,一个维度会有多个属性。

   环境简单理解其实就是文件夹,预算和合并会在两个环境下。

   模型建立在环境之下,对应BW的复合提供者,用来存储数据。简单理解就是一个存数的二维表(和普通表区别是数值只有一列),它的一个列就是一个维度。

   一般项目会把财务、费用、经营等单独设定一个模型。

   维度就是主数据,比如公司、货币、日期之类的都可作为一个维度。多个维度构成一个模型,那么在这个模型下的一条数据,就有了相应的含义。 

   属性用来描述维度。比如公司的维度,可以加上部门这个属性来描述这个公司的所属部门。

                                              图3.1 查询模型数据界面

4.逻辑脚本:BPC数据处理的利器

在BPC中,可以写代码(脚本)来对模型中的数据做处理。其脚本可以对数据进行乘除之类的简单运算,如果逻辑处理太复杂,可以调用BADI,通过ABAP代码的方式实现复杂的逻辑处理。

正是能够通过调用ABAP代码的功能,让BPC能够实现自定义的复杂的逻辑来满足用户的定制化需求。

图4.1 是将符合条件的数据都改为0,不调用BADI

图4.2 是执行BADI:BADI_UJ_CUSTOM_LOGIC进行数据处理,START BADI 后面跟的名称GXF对应BADI的不同逻辑。详情参考下一节。

                                  图4.1 将选定的数据改为0

                               图4.2 调用BADI 执行abap代码处理逻辑

5.BADI_UJ_CUSTOM_LOGIC:ABAPer在BPC项目90%的工作都在此处了

    在上一节中我们知道脚本里面可以通过START_BADI来触发BADI_UJ_CUSTOM_LOGIC这个BADI。BPC顾问会将脚本不能实现的逻辑放在这个BADI里处理。

   STARD_BADI 一般设置两个参数QUERY,WRITE。如果需要脚本通过传入指定维度的数据,那么QUERY要设置为ON,如果需要通过BADI EXECUTE里面的CT_DATA写回模型,那么要设置WRITE 为ON。

   下面是这个BADI的基本信息:

我们要开发的话首先是新建一个增强实施,然后为这个实施设定一个过滤器,这个过滤器的名字就对应到脚本里START_BADI后面的名字。创建好实施后,实现EXECUTE方法:

参数的一些说明:

I_APPSET_ID:脚本运行对应的环境。
       I_APPL_ID:脚本运行所在的模型。
       IT_PARAM:start_badi和end_badi中间的参数信息,比如可以传入一些版本、时间等。
       IT_CV:XDIM_MEMBERSET限制的维度值。
       ET_MESSAGE:如果需要报错等信息可以写到此内表。
       CT_DATA:传入传出参数,1.可通过此表获取前台传入的数值 ,同时设置参数QUERY = ON

                                            2.需要写回的数据可以放到这个内表中,同时设置参数WRITE = ON注意的是这个变量在不同模型运行结构是不一致的。

举个例子:

前台传参:

P_TIME = 2021.TOTAL
       P_VERSION = BUDGET
       P_ENTITY = 3061029

DEBUG看各个参数的值:

       START_BADI传入的参数:

       XDIM_MEMBERSET限制的维度成员范围:

       根据XDIM_MEMBERSET限制得到的数据:

6.常用Tcode以及程序

  UJKT:在GUI上运行脚本

  UJO_SQE_TEST(程序):查看模型数据(汇总不到请求号)。请求号第8节讲

  LISTCUBE:查看信息提供者数据,当然也可以查看模型数据(到请求号)。

  SM37:查看数据包后台运行情况,如果包长时间没有响应可以在此处找到相应的后台任务终止掉。

  SE18:查看和编辑BADI。

7.对BADI开发的建议以及常用到的方法

  1. 对于常规数据处理,我不建议定义很多的类型。除了主数据外,涉及到交易数据有关的都用模型对于的结构就好。

   2.大部分BADI处理都需要清数的逻辑,否则有可能存在历史数据。

   3.对于叶节点和模型数据的限制,可以定义宏来减少代码量。

   4.在BADI里取模型数据时,尽可能每个维度都限制。

   5.写备注...

8.聊聊BPC与BW

  BPC是运行在BW上面的,所以了解BPC上的操作在BW底层对应的处理很有必要。

  前面提到BPC的模型对应BW的一个复合提供者,我们在BPC前台创建模型时,BW后台会创建一个复合提供者和对应的ADSO用来存储数据。模型的一个维度对应到BW的一个信息对象。

模型存数采用的是增量的方式,比如原本有一条数据A = 100,如果前台写回一条A= 120的数据,后台会增加一条A =20的数据。这样系统里累计就会得到A=120。每一次增量bw都会有一个请求ID,在listcube中可以看到每次数据的变化。

 

 

.

 

  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: SAP BPC开发学习资料中,最好选择SAP官方提供的官方培训资料和文档作为主要学习材料。SAP官方培训材料详细介绍了SAP BPC系统的功能、架构、配置和管理等方面,能够帮助学习者深入了解SAP BPC系统的技术实现和使用方法。同时,官方文档涵盖了许多实际案例和最佳实践,能够帮助学习者更好地应用SAP BPC系统。 除了官方资料之外,还可以参考一些SAP BPC开发经验较为丰富的技术博客和社区网站。这些网站有时提供一些SAP BPC系统开发的实际案例和解决方案,可以帮助学习者更好地理解SAP BPC系统的应用场景和开发方法。 此外,还可以参考一些SAP BPC系统的教学视频和在线课程。这些课程通常涵盖了SAP BPC系统的各个方面,提供了丰富的实例和实践操作,能够让学习者更加深入地了解和掌握SAP BPC系统的使用和开发。需要注意的是,选择教学课程时应该选择权威的课程机构和认证教师。 综上所述,成为一名SAP BPC开发者需要具备扎实的理论基础和丰富的实践经验。通过学习官方资料、参考社区资源和选择合适的培训和课程,可以更好地掌握SAP BPC系统的使用和开发技能。 ### 回答2: SAP BPC是一款企业绩效管理软件,开发学习资料涉及多方面知识。首先,学习者需要掌握SAP BPC的基本原理和架构,了解其工作流程、数据存储和处理等基本概念,可通过官方文档、在线教程、视频教材等资源学习。其次,学习者需要掌握BPC应用程序设计的相关知识,包括平衡表、账户管理、工作流和数据集成等技术。此外还需了解数据模型、报告和分析等方面的内容,如何使用多种工具来帮助用户在不同场景下完成任务。最后,学习者还需了解SAP BPC的最佳实践和最新技术趋势。除传统学习方式外,学习者可通过实际项目经验,掌握操作技巧。也可以参加相关的课程,并参加社区活动等,不断学习前沿的技术知识。总之, SAP BPC开发学习资料应综合考虑理论和实践相结合,涵盖多方面知识。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值