SAC setDimensionFilter脚本

2020-08-18 07:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

由于数据类型的原因,我正在用SAC编写onselect()并努力使其正常工作。

在SAC Analytical应用程序中,我有两个图表(图1和图2)。

图1按地区显示数据,而图2按产品显示数据。

要求将图表2与图表1连接起来。在图表1中选择一个区域时,应该过滤图表2以仅显示所选区域中的产品。

产品数据类似P456,P457,Q345,Q763…..(字符)

在图表1中使用onselect函数会破坏以下简单脚本来测试功能

图表_2.getDataSource()。removeDimensionFilter(" product");

var sel = Chart_1.getSelections();

图表_2.getDataSource()。setDimensionFilter(" product",sel);

如果我在脚本中对产品值进行硬编码,那么它将起作用……

Chart_2.getDataSource()。removeDimensionFilter(" product");

var sel = Chart_1.getSelections();

图表_2.getDataSource()。setDimensionFilter(" product", Q763 );

请注意,我认为这可能是由于将产品尺寸值传递给创建的" sel"变量

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

由于数据类型的原因,我正在用SAC编写onselect()并努力使其正常工作。

在SAC Analytical应用程序中,我有两个图表(图1和图2)。

图1按地区显示数据,而图2按产品显示数据。

要求将图表2与图表1连接起来。在图表1中选择一个区域时,应该过滤图表2以仅显示所选区域中的产品。

产品数据类似P456,P457,Q345,Q763…..(字符)

在图表1中使用onselect函数会破坏以下简单脚本来测试功能

图表_2.getDataSource()。removeDimensionFilter(" product");

var sel = Chart_1.getSelections();

图表_2.getDataSource()。setDimensionFilter(" product",sel);

如果我在脚本中对产品值进行硬编码,那么它将起作用……

Chart_2.getDataSource()。removeDimensionFilter(" product");

var sel = Chart_1.getSelections();

图表_2.getDataSource()。setDimensionFilter(" product", Q763 );

请注意,我认为这可能是由于将产品尺寸值传递给创建的" sel"变量

付费偷看设置
发送
3条回答
槿木_熙
1楼-- · 2020-08-18 08:29

安妮塔

我建议您浏览此博客,看看分析应用程序中的可重用脚本功能可能对您有帮助

https ://blogs.sap.com/2020/02/27/sac-analytic-application-reusable-script-function-for-linked-analysis/

它清楚地解释了这个概念和用法。

谢谢

小熊yu生菜
2楼-- · 2020-08-18 08:09

嗨安妮塔,

在脚本编写中,var sel = Chart_1.getSelections(); 将返回选择类型数据而不是字符串的数组。

下面的代码应该可以工作。

图表_2.getDataSource()。removeDimensionFilter(" product");
 var sel = Chart_1.getSelections();
 var value = ArrayUtils.create(Type.string);
 for(var i = 0; i 
 

-Sathya

SAP小菜
3楼-- · 2020-08-18 08:22

嗨,

我只是对其进行了一些更改,因为如果您不访问度量值,则可以使用selections数组,而不使用getResultMemeber。

//如果未进行选择,则将删除过滤器
//除非将以下代码行移至if语句中 Chart_2.getDataSource()。removeDimensionFilter(" product");
//从图表中获取选择 var sel = Chart_1.getSelections();
//检查是否已选择
if(sel.length> = 1){ var value = ArrayUtils.create(Type.string); //创建产品数组 for(var i = 0; i

一周热门 更多>