假设已经在BW中新建了以下“利润表”查询,定义了“营业收入”“营业利润”“利润总额”和“净利润”等报表项,如图7-22所示。
图7-22 利润表结构
与之对应的,设定采用“基于账户的模型”来处理这些指标,假设定义对应的指标列表见表7-1。
表7-1 利润表指标定义
(续)
第1步:在数据仓库工作台中新建DSO,并命名为DEMO_APD,DOS对象定义如图7-23所示。
图7-23 DSO对象定义
注意,创建DSO时,必须将DSO的类型设置为“直接更新”,单击“数据存储对象类型”右边的修改按钮,系统弹出如图7-24所示的对话框。
图7-24 DSO类型切换
选中“直接更新”单选按钮后,按<Enter>键返回DSO的定义界面,单击激活按钮激活DSO。此时系统对于DSO的定义界面如图7-25所示。
图7-25 直接更新DSO对象定义
从图7-25中可以看到,此时DSO无须设置“激活之后生成主数据标识”和“自动将质量状态设置为‘好’”等属性。至此,对于DSO的定义设置完毕。
第2步:定义APD。使用事务码RSANWB进入APD的定义界面,由于我们定义的是“一般”类型的APD,因此在“一般的”上面单击鼠标右键,选择“创建”选项,进行APD的创建,如图7-26所示。
然后,系统进入APD的详细设计界面,先在“描述”中输入“通过APD存储损益表指标”,如图7-27所示。
图7-26 创建APD
图7-27 输入描述
第3步:将图标从中间的列表中拖放到右边的白色区域内,系统会弹出对话框提示选择需要的查询,如图7-28所示。
图7-28 查询选择
在此处,如果我们的查询是需要输入变量的,则需要先制作变式,然后在此处使用,建议创建不需要输入的变量,如自动输入上月,并且不需要输入,这样每个月就不再需要变式,系统就能自动运行上月的查询了。
第4步:选择好来源后,选择目标。由于我们希望将查询的指标结果保存到“直接更新”的DSO中,因此从中间的列表中,将图标拖放到右边的空白区域中,此时系统自动弹出对话框提示用户输入需要更新的DSO,这里选择刚才创建的DEMO_APD。注意,只有类型为“直接更新”的DSO才能在此处被选中。在“描述”中输入目标的描述“存储损益表指标的DSO”,如图7-29所示。
图7-29 输入目标的描述
图7-30 设置目标DSO
第5步:在“目标范围”标签页中设置目标DSO,如图7-30所示。如果选中默认的“覆盖数据存储对象所有的内容”单选按钮,则每次APD运行都会覆盖之前DSO内存储的数据。如果选中“覆盖部分数据存储对象”单选按钮,并在字段清单中选择需要对比的字段,则系统将按照指定的特性组合键值对直接更新DSO的内容进行更新,这里保留默认选项即可。
此时设定的APD就有数据的来源和数据更新的目标了,如图7-31所示。
图7-31 具有数据来源和更新目标
由于我们希望将报表的结果转换为“基于账户的模型”,因此必须在两者之间增加ABAP例程,将中间列表的例程图标拖放到右边的白色区域中,如图7-32所示。
图7-32 增加ABAP例程
此时需要将数据来源与ABAP例程进行连接,同时将ABAP例程和数据目标进行连接,只需将“源”的小三角图标拖放到“目标”的小三角图标上即可。连接完毕后的模型如图7-33所示。
从图7-33中可以看到,所有的转换例程均存在于例程和数据目标之间。此时双击例程,进入例程的设置界面,输入例程的描述“将损益表转换为基于账户的模型”,如图7-34所示。(www.daowen.com)
图7-33 连接完毕后的模型
图7-34 输入例程描述
在“源字段”标签页中,将所有需要存储的对象选择到“源字段”列表中,如图7-35所示。
图7-35 例程源字段选择界面
进入“目标字段”标签页中可以看到,系统会自动根据选择的源字段产生目标字段,如图7-36所示。
图7-36 例程目标字段选择界面1
这里将所有自动产生的目标字段删除,并且新增4个字段,即CALMONTH、DEMOZB、DEMOYDZBZ和DEMONDZBZ,以与目标DSO DEMO_APD完全匹配,如图7-37所示。
图7-37 例程目标字段选择界面2
设置好目标字段后,即可进入“例程”标签页进行ABAP例程的编写。系统自动生成的代码如下。
从程序中可以看到,系统将查询的结果存放到结构y_source_fields中,并且用相同结构的内表yt_source_fields存储了数据,我们的任务就是向目标表yt_target_fields中填充需要的数据,即填入24行数据,编写的代码如下。
在图7-33中双击图标,进行ABAP例程目标字段和DSO字段的连接,系统弹出如图7-38所示的界面。
图7-38 例程字段分配界面1
单击每个字段后面的“方法”按钮,系统弹出更新方法选择按钮供用户选择,如图7-39所示。
图7-39 字段分配详细界面
此时,只需选中“源特性”单选按钮,并单击帮助按钮找到对应的字段即可。设置完毕后的匹配规则如图7-40所示。
图7-40 例程字段分配界面2
当保存和激活分析程序时,系统将弹出对话框提示输入此APD的技术名称,这里输入“DEMOAPD”,如图7-41所示。
图7-41 输入APD的技术名称
激活完毕后的APD就能运行了,运行APD系统的日志如图7-42所示,运行完毕后查看DSO的内容如图7-43所示。
此时,系统已经将损益表的内容按照类似科目的方式保存到系统中了,这样的APD可以安排在处理链中每月运行一次,或在财务月结完毕后手动运行一次,这样就达到了我们最初想要保存查询结果的目的。
图7-42 APD运行日志
图7-43 目标内容查看
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。