本文档的范围是展示SAP HANA Exit变量如何使用本机SQL为标准YTD报告和增量计算选择列。因此,生成的计算视图上的本机SQL语句的工作方式几乎与sapbw查询类似。通过使用HANA Exit变量,查询可以在sapbw中使用,也可以在本地并排使用。此外,使用HANA退出变量可以简化复杂的SQL语句。
文档应作为如何使用SAP HANA退出变量的示例。
文档的第一部分说明如何从SAP BW查询生成计算视图,文档的第二部分说明如何使用生成的计算视图包括本机的SAP HANA退出变量。
步骤1
启用处理SAP HANA退出变量。
首先,您必须基于BAdI RSOA\u variables\u HANA\u Exit创建增强点。
启动事务SE18。
创建增强点RSROA\u variables\u HANA\u Exit。
有关SAP HANA退出的更多详细信息,请参阅SAP文件:
https://help.sap.com/erp2005\u ehp\u 08/helpdata/en/b7/7f3073e9d842d6959e03e74dcefa09/frameset.htm
步骤2
选择"Enh。点击"点元素定义"页签,点击"创建BAdI实现"图标
为BAdI分配界面:
如果退出
保存并激活界面
下一步,创建增强实现,一个复合增强实现和一个BAdI实现。
增强实现:ZXX\u CL\u VARIABLE\u HANA
复合增强实现:ZXXXX\u VARIABLE\u HANA\u EXIT
BAdI实现:ZXX\u VAR\u HANA\u EXIT\u BAdI
步骤3
实现年初至今变量的类。
目标是计算from和to值基于输入就绪日历日变量的日历日。
输入:2015年8月22日
当前年度的结果日历日:2015年1月1日
当前年度的结果日历日:2015年8月22日
上一年度的结果日历日:2014年1月1日
上一年度的结果日历日:2014年8月22日
要获取这些结果,我们使用帮助方法_用年份作为偏移量计算年初至今,并用指标表示起始值和结束值。此方法封装了YTD计算的逻辑,并由接口方法进程调用。为了能够处理轮班年份,八斗大数据,我们正在使用脚本函数ADD\u years.
为了能够处理HANA步骤2变量,我们必须将输入变量(CMVM\u CALDAY\u YTD)的输入值存储在表C\TS\u VNAM\u INDEX的方法GET\u PROPERTIES中。
步骤4
使用BW Query创建SAP HANA出口变量设计师:
CHVM\U CALDAY\U YTD\U CY\U FR–日历日,本年迄今,从CHVM\u CALDAY\u YTD\u CY\u TO–日历日,年初至今CHVM\u CALDAY\u YTD\u PY\u FR–日历日,从上一年开始到上一年的日期CHVM\u CALDAY\u YTD\u PY\u TO–日历日,年初至今CMVM\u CALDAY\u YTD–日历日,输入就绪
步骤5
在本例中,免费云服务器永久使用,我们激活了BW内容InfoProvider/IMO/SD\u M30,并通过执行程序RSO\u CONVERT\u IPRO\u to\u HCPR将其传输到CompositeProvider。
填写所需信息:
来源:/IMO/SD\u M30目标:V_SD30
打开新的CompositeProvider/IMO/V_SD30–Billing
并在此CompositeProvider上激活CompositeProvider
步骤6
中的external SAP HANA视图,只需创建一个简单的查询,其中HANA退出变量将用于上一年和本年的数量和净值选择以及数量的增量选择中的列结构中。
查询:
/IMO/V琰SD30琰U REP琰001
由于HANA退出变量只能处理单个值,多线云主机,我们正在使用带有两个单值变量的范围选择。
激活查询中的外部SAP HANA视图设置,以提供BW数据的HANA本机消耗。
步骤7
激活外部SAP HANA视图时,BW查询对象会自动生成一个计算视图。
在下一步中,数据可视化大屏,转到事务RS2HANA\u ADMIN。
此处显示查询的SAP HANA视图ID,只需搜索查询名称/IMO/V\u SD30\u REP\u 001。
现在我们可以从本机访问生成的计算视图。
在事务DB50中搜索SAP HANA视图:
打开SAP HANA视图*/V\u SD30\u REP\u 001。
这里有两个选项卡:
–属性
–列
在属性选项卡上,您可以看到视图的存储类型,大数据行业分析,即列存储。
列选项卡显示视图的可用对象和列。
(您也可以使用SAP HANA Modeler进行此操作:
)
选择"发送到SQL编辑器"按钮,SQL编辑器打开,您可以直接在视图上构建新查询。
您可以使用SQL编辑器中生成的计算视图轻松计算新列。
由于计算视图中没有生成除以0的结果,因此我们必须在SQL语句中处理此问题。
case when(sum("QUAN\u CY\u YTD")=0)则0(sum("QUAN\u PY\u YTD")*100/ABS(sum("QUAN\u CY\u YTD"))以"DELTA\u SQL"结尾
另请参阅SAP文档的链接以了解更多详细信息:
https://help.sap.com/sahelp\u nw74/helpdata/en/c4/70990abfce4796aacf7a41a27fedcc/frameset.htm
输入的变量值在本机的占位符部分中传递SQL.
'PLACEHOLDER'=('$$CMVM\u CALDAY\u YTD$$','20150822')
如您所见,我们得到的结果与RSRT中所示的SAP BW查询中的结果相同:
也可以保存查询并在以后再次调用和更改查询。
不使用SAP HANA Exit变量,SQL查询变得更加复杂,您必须插入YTD计算的所有值手动: