理论教育 深度解析BW中新建利润表实施步骤

深度解析BW中新建利润表实施步骤

时间:2023-05-30 理论教育 版权反馈
【摘要】:图7-25 直接更新DSO对象定义从图7-25中可以看到,此时DSO无须设置“激活之后生成主数据标识”和“自动将质量状态设置为‘好’”等属性。第2步:定义APD。图7-29 输入目标的描述图7-30 设置目标DSO第5步:在“目标范围”标签页中设置目标DSO,如图7-30所示。图7-37 例程目标字段选择界面2设置好目标字段后,即可进入“例程”标签页进行ABAP例程的编写。图7-42 APD运行日志图7-43 目标内容查看

深度解析BW中新建利润表实施步骤

假设已经在BW中新建了以下“利润表”查询,定义了“营业收入”“营业利润”“利润总额”和“净利润”等报表项,如图7-22所示。

978-7-111-50218-0-Chapter07-44.jpg

图7-22 利润表结构

与之对应的,设定采用“基于账户的模型”来处理这些指标,假设定义对应的指标列表见表7-1。

表7-1 利润表指标定义

978-7-111-50218-0-Chapter07-45.jpg

(续)

978-7-111-50218-0-Chapter07-46.jpg

第1步:在数据仓库工作台中新建DSO,并命名为DEMO_APD,DOS对象定义如图7-23所示。

978-7-111-50218-0-Chapter07-47.jpg

图7-23 DSO对象定义

注意,创建DSO时,必须将DSO的类型设置为“直接更新”,单击“数据存储对象类型”右边的修改按钮978-7-111-50218-0-Chapter07-48.jpg,系统弹出如图7-24所示的对话框。

978-7-111-50218-0-Chapter07-49.jpg

图7-24 DSO类型切换

选中“直接更新”单选按钮后,按<Enter>键返回DSO的定义界面,单击激活按钮978-7-111-50218-0-Chapter07-50.jpg激活DSO。此时系统对于DSO的定义界面如图7-25所示。

978-7-111-50218-0-Chapter07-51.jpg

图7-25 直接更新DSO对象定义

从图7-25中可以看到,此时DSO无须设置“激活之后生成主数据标识”和“自动将质量状态设置为‘好’”等属性。至此,对于DSO的定义设置完毕。

第2步:定义APD。使用事务码RSANWB进入APD的定义界面,由于我们定义的是“一般”类型的APD,因此在“一般的”上面单击鼠标右键,选择“创建”选项,进行APD的创建,如图7-26所示。

然后,系统进入APD的详细设计界面,先在“描述”中输入“通过APD存储损益表指标”,如图7-27所示。

978-7-111-50218-0-Chapter07-52.jpg

图7-26 创建APD

978-7-111-50218-0-Chapter07-53.jpg

图7-27 输入描述

第3步:将图标978-7-111-50218-0-Chapter07-54.jpg从中间的列表中拖放到右边的白色区域内,系统会弹出对话框提示选择需要的查询,如图7-28所示。

978-7-111-50218-0-Chapter07-55.jpg

图7-28 查询选择

在此处,如果我们的查询是需要输入变量的,则需要先制作变式,然后在此处使用,建议创建不需要输入的变量,如自动输入上月,并且不需要输入,这样每个月就不再需要变式,系统就能自动运行上月的查询了。

第4步:选择好来源后,选择目标。由于我们希望将查询的指标结果保存到“直接更新”的DSO中,因此从中间的列表中,将图标978-7-111-50218-0-Chapter07-56.jpg拖放到右边的空白区域中,此时系统自动弹出对话框提示用户输入需要更新的DSO,这里选择刚才创建的DEMO_APD。注意,只有类型为“直接更新”的DSO才能在此处被选中。在“描述”中输入目标的描述“存储损益表指标的DSO”,如图7-29所示。

978-7-111-50218-0-Chapter07-57.jpg

图7-29 输入目标的描述

978-7-111-50218-0-Chapter07-58.jpg

图7-30 设置目标DSO

第5步:在“目标范围”标签页中设置目标DSO,如图7-30所示。如果选中默认的“覆盖数据存储对象所有的内容”单选按钮,则每次APD运行都会覆盖之前DSO内存储的数据。如果选中“覆盖部分数据存储对象”单选按钮,并在字段清单中选择需要对比的字段,则系统将按照指定的特性组合键值对直接更新DSO的内容进行更新,这里保留默认选项即可。

此时设定的APD就有数据的来源和数据更新的目标了,如图7-31所示。

978-7-111-50218-0-Chapter07-59.jpg

图7-31 具有数据来源和更新目标

由于我们希望将报表的结果转换为“基于账户的模型”,因此必须在两者之间增加ABAP例程,将中间列表的例程图标978-7-111-50218-0-Chapter07-60.jpg拖放到右边的白色区域中,如图7-32所示。

978-7-111-50218-0-Chapter07-61.jpg

图7-32 增加ABAP例程

此时需要将数据来源与ABAP例程进行连接,同时将ABAP例程和数据目标进行连接,只需将“源”的小三角图标拖放到“目标”的小三角图标上即可。连接完毕后的模型如图7-33所示。

从图7-33中可以看到,所有的转换例程均存在于例程和数据目标之间。此时双击例程,进入例程的设置界面,输入例程的描述“将损益表转换为基于账户的模型”,如图7-34所示。(www.daowen.com)

978-7-111-50218-0-Chapter07-62.jpg

图7-33 连接完毕后的模型

978-7-111-50218-0-Chapter07-63.jpg

图7-34 输入例程描述

在“源字段”标签页中,将所有需要存储的对象选择到“源字段”列表中,如图7-35所示。

978-7-111-50218-0-Chapter07-64.jpg

图7-35 例程源字段选择界面

进入“目标字段”标签页中可以看到,系统会自动根据选择的源字段产生目标字段,如图7-36所示。

978-7-111-50218-0-Chapter07-65.jpg

图7-36 例程目标字段选择界面1

这里将所有自动产生的目标字段删除,并且新增4个字段,即CALMONTH、DEMOZB、DEMOYDZBZ和DEMONDZBZ,以与目标DSO DEMO_APD完全匹配,如图7-37所示。

978-7-111-50218-0-Chapter07-66.jpg

图7-37 例程目标字段选择界面2

设置好目标字段后,即可进入“例程”标签页进行ABAP例程的编写。系统自动生成的代码如下。

978-7-111-50218-0-Chapter07-67.jpg

978-7-111-50218-0-Chapter07-68.jpg

从程序中可以看到,系统将查询的结果存放到结构y_source_fields中,并且用相同结构的内表yt_source_fields存储了数据,我们的任务就是向目标表yt_target_fields中填充需要的数据,即填入24行数据,编写的代码如下。

978-7-111-50218-0-Chapter07-69.jpg

978-7-111-50218-0-Chapter07-70.jpg

978-7-111-50218-0-Chapter07-71.jpg

978-7-111-50218-0-Chapter07-72.jpg

978-7-111-50218-0-Chapter07-73.jpg

在图7-33中双击图标978-7-111-50218-0-Chapter07-74.jpg,进行ABAP例程目标字段和DSO字段的连接,系统弹出如图7-38所示的界面。

978-7-111-50218-0-Chapter07-75.jpg

图7-38 例程字段分配界面1

单击每个字段后面的“方法”按钮,系统弹出更新方法选择按钮供用户选择,如图7-39所示。

978-7-111-50218-0-Chapter07-76.jpg

图7-39 字段分配详细界面

此时,只需选中“源特性”单选按钮,并单击帮助按钮978-7-111-50218-0-Chapter07-77.jpg找到对应的字段即可。设置完毕后的匹配规则如图7-40所示。

978-7-111-50218-0-Chapter07-78.jpg

图7-40 例程字段分配界面2

当保存和激活分析程序时,系统将弹出对话框提示输入此APD的技术名称,这里输入“DEMOAPD”,如图7-41所示。

978-7-111-50218-0-Chapter07-79.jpg

图7-41 输入APD的技术名称

激活完毕后的APD就能运行了,运行APD系统的日志如图7-42所示,运行完毕后查看DSO的内容如图7-43所示。

此时,系统已经将损益表的内容按照类似科目的方式保存到系统中了,这样的APD可以安排在处理链中每月运行一次,或在财务月结完毕后手动运行一次,这样就达到了我们最初想要保存查询结果的目的。

978-7-111-50218-0-Chapter07-80.jpg

图7-42 APD运行日志

978-7-111-50218-0-Chapter07-81.jpg

图7-43 目标内容查看

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈