深度探索 | 轻松入门SAP分析云脚本编写(四)

Estimated read time 2 min read

SAP 分析云提供了强大且丰富的图表样式和交互方式来满足用户对于数据可视化以及企业计划的需求。在实际应用中,我们的用户对图表的交互有时会有更定制化的需求,比如希望创建隐藏和显示图标的按钮。因此,SAP 分析云提供了脚本功能来进一步提高图表和交互的定制程度。

本系列文章将继续分享在 SAP 分析云中通过简单的脚本代码实现增强故事功能的实践经验,旨在帮助没有深厚编程背景的用户学习SAP分析云故事中的脚本编写。如果您对之前的文章感兴趣,请查看文章末尾的合集。

一、前言

本文通过 SAP分析云 的最新功能(如优化设计体验和脚本支持),从现有的故事入手,逐步添加小代码段来提升用户体验。在之前的分享中,我们介绍了如何利用书签功能和简易脚本实现故事状态的一键重置。现在,我们将介绍几个基础的脚本元素,旨在帮助你进一步提升故事的吸引力。

二、 学习资源

在深入探讨如何通过代码片段增强您的故事之前,我们将先介绍一些非常不错的资源。在learning.sap.com上有许多优质课程,例如 SAP Analytics Cloud 中的脚本编写基础免费课程,为您提供在新的优化故事环境中进行脚本编写的基础知识。

您可以在下面找到课程的链接。这是一个很不错的引导式学习的资源。

获取基本脚本技能以在 SAP Analytics Cloud 中扩展故事

除了上述课程资源外,我们还想分享一些关于 SAC 环境中可用的方法和功能的信息。这些信息来自官方的帮助文档,我们特别挑选了三项关键内容,以便您能够直接查阅:

脚本(优化故事体验和分析设计器)优化故事体验API参考指南分析设计器API参考指南

三、动态图表更新:维度与度量的脚本控制

在本文中,我们将深入探讨如何利用脚本实现度量的快速切换,这一功能与度量输入控件的操作相似。我们将详细讨论如何通过编码API来复用统计图表,并调整其中的特定元素。

如果您已经熟悉SAP Analytics Cloud(SAC),您可能已经了解如何在故事中创建度量输入控件或维度输入控件。这些控件使用户能够通过从故事中添加的列表中选择所需项目,来替换统计图中的度量或维度。

随着优化故事的推出,这一操作并没有改变。但我认为这是一个很好的契机,来介绍如何通过脚本更改统计图的元素。此外,通过编写脚本来观察在更改“度量”或“维度”后,其他统计图元素如何响应,这将有助于您掌握类似的模式。

本示例中,我们提供了一个包含统计图的故事场景。该统计图的数据模型涵盖了3个不同的维度和3个不同的度量。通过这个实践案例,您将能够更深入地理解如何通过脚本控制这些元素,进而优化您的数据分析和故事叙述。 从而优化你的数据分析和故事讲述。

 

在本示例中,我们构建了一个包含单一度量和单一维度的故事。为了展示如何通过脚本实现度量和维度的切换,我们将引入几个按钮,使您能够直观地看到所需的操作步骤。

以下是完成后的效果图展示。左侧的统计图作为我们进行脚本编写的基础图表,而右侧的统计图则通过输入控件实现了相同的功能。通过这些控件,您可以轻松地交换图表中的项目。

正如上图所示,您可以通过点击按钮来选择图表中应显示的度量和维度。实际上,脚本的核心逻辑非常简洁明了,其步骤包括:识别图表中当前显示的度量;从统计图中移除现有的度量;将新的度量添加至统计图中。

在实际编写代码的过程中,您可以利用快捷键Ctrl + 空格来触发代码提示功能(注意切换到英文输入法)。

接下来让我们看一下第一个按钮背后的实际代码:

// 从统计图中移除当前度量并添加新度量

// 使用 getMembers() 函数创建一个变量来保存当前统计图度量

var TheCurrentMeasure = Chart_1.getMembers(Feed.ValueAxis);
console.log(TheCurrentMeasure[0]);

// 移除该度量,使统计图暂时没有度量Chart_1.removeMember(Feed.ValueAxis,TheCurrentMeasure[0]);

// 向统计图添加所需度量,以替换之前删除的度量 Chart_1.addMember(Feed.ValueAxis,”[Account].[parentId].&[TR]”);

 

让我们逐步剖析代码的功能。首先,我们创建了一个名为 TheCurrentMeasure 的变量,并使用 getMembers() 函数将其初始化为 Feed.ValueAxis。

简而言之,getMembers()函数的作用是返回一个数组,该数组包含了所有应用于统计图表的度量。由于我们的统计图表中仅包含一个度量,因此这个数组仅包含一个元素。您可以通过检查浏览器控制台来验证这个数组的内容,正如我在代码的第5行所做的那样,我将数组的第一个元素输出到了控制台。

我们已经成功创建了一个变量,并用图表中当前的度量值对其进行了赋值。接下来,我们需要在添加新度量之前,先移除这个现有的度量。在代码的第8行,我们调用了removeMember()函数,这个函数的作用是从指定的维度(在这个例子中是ValueAxis)中移除特定的度量。具体来说,我们移除了数组中的第一个元素。

 

Chart_1.removeMember(Feed.ValueAxis,TheCurrentMeasure[0]);

 

请注意,我们使用 TheCurrentMeasure[0] 来引用数组的第一个元素。尽管数组中可能包含多个度量,但在本例中,我们的焦点仅在于元素[0]。

现在,我们接近完成整个过程。我们已经从统计图表中移除了原有的度量,接下来的最后一步是添加一个新的度量。为此,我们调用addMember()函数来引入一个名为[TR]的新度量:

 

Chart_1.addMember(Feed.ValueAxis,”[Account].[parentId].&[TR]”);

 

这个过程包括识别现有的度量、将其移除,然后引入一个新的度量来替代它。这与度量输入控件的工作原理相同,但同时也展示了通过脚本编写API所能达到的能力和灵活性。当然,我们同样可以应用类似的代码逻辑来对维度进行完全相同的操作。

 

// 创建一个变量来保存应用于统计图的当前维

var TheCurrentDimension = Chart_1.getDimensions(Feed.CategoryAxis);
console.log(TheCurrentDimension[0]);

// 从统计图中删除该维 - 它是数组元素 [0] Chart_1.removeDimension(TheCurrentDimension[0],Feed.CategoryAxis);

// 向统计图添加“渠道”维 Chart_1.addDimension(“Channels”,Feed.CategoryAxis);

这段代码的设计思路其实与用户更换度量的思路非常相近,但通过特定的函数调用,我们简化了代码编写的过程。

您可能已经注意到,即使在脚本编写示例中,当您更改维度或度量时,统计图的标题也会随之更改。虽然目前还没有直接通过脚本API来更改统计图标题的功能,但您仍然可以采用一些方法来动态地调整标题。

为了实现这一点,您可以向统计图标题中添加动态文本——具体来说,可以通过使用“添加”>>“动态文本”的功能,将账户和维度信息嵌入到统计图的标题中。这样,标题就能根据当前显示的维度和度量动态变化,增强了图表的交互性和信息的即时性。

 

通过适当设置格式,每当您利用脚本API更改度量或维度时,标题也会自动更新以反映这些变化。这种做法确保了统计图的标题与图表内容保持同步,从而提升了图表的可读性,并增强了信息传达的准确性。

以下是一个示例,展示了如何使用按钮来切换度量值,使得统计图和动态标题能够同时响应变化:

 

四、总结

本文主要介绍了在如何通过 SAC 的脚本API来动态管理和更新统计图表中的度量和维度。我们还讨论了如何通过添加动态文本到图表标题中,来实现标题的自动更新,以保持与图表内容的同步。希望这些内容能在您创建交互式故事或教程时提供实用的指导。

祝编码愉快!

 

原作者:@Daniel_Davis

原文链接:Start Your scripting Journey The Easy Way With SAP Analytics Cloud | Part Four

 

​ SAP 分析云提供了强大且丰富的图表样式和交互方式来满足用户对于数据可视化以及企业计划的需求。在实际应用中,我们的用户对图表的交互有时会有更定制化的需求,比如希望创建隐藏和显示图标的按钮。因此,SAP 分析云提供了脚本功能来进一步提高图表和交互的定制程度。本系列文章将继续分享在 SAP 分析云中通过简单的脚本代码实现增强故事功能的实践经验,旨在帮助没有深厚编程背景的用户学习SAP分析云故事中的脚本编写。如果您对之前的文章感兴趣,请查看文章末尾的合集。一、前言本文通过 SAP分析云 的最新功能(如优化设计体验和脚本支持),从现有的故事入手,逐步添加小代码段来提升用户体验。在之前的分享中,我们介绍了如何利用书签功能和简易脚本实现故事状态的一键重置。现在,我们将介绍几个基础的脚本元素,旨在帮助你进一步提升故事的吸引力。二、 学习资源在深入探讨如何通过代码片段增强您的故事之前,我们将先介绍一些非常不错的资源。在learning.sap.com上有许多优质课程,例如 SAP Analytics Cloud 中的脚本编写基础免费课程,为您提供在新的优化故事环境中进行脚本编写的基础知识。您可以在下面找到课程的链接。这是一个很不错的引导式学习的资源。获取基本脚本技能以在 SAP Analytics Cloud 中扩展故事除了上述课程资源外,我们还想分享一些关于 SAC 环境中可用的方法和功能的信息。这些信息来自官方的帮助文档,我们特别挑选了三项关键内容,以便您能够直接查阅:脚本(优化故事体验和分析设计器)优化故事体验API参考指南分析设计器API参考指南三、动态图表更新:维度与度量的脚本控制在本文中,我们将深入探讨如何利用脚本实现度量的快速切换,这一功能与度量输入控件的操作相似。我们将详细讨论如何通过编码API来复用统计图表,并调整其中的特定元素。如果您已经熟悉SAP Analytics Cloud(SAC),您可能已经了解如何在故事中创建度量输入控件或维度输入控件。这些控件使用户能够通过从故事中添加的列表中选择所需项目,来替换统计图中的度量或维度。随着优化故事的推出,这一操作并没有改变。但我认为这是一个很好的契机,来介绍如何通过脚本更改统计图的元素。此外,通过编写脚本来观察在更改“度量”或“维度”后,其他统计图元素如何响应,这将有助于您掌握类似的模式。本示例中,我们提供了一个包含统计图的故事场景。该统计图的数据模型涵盖了3个不同的维度和3个不同的度量。通过这个实践案例,您将能够更深入地理解如何通过脚本控制这些元素,进而优化您的数据分析和故事叙述。 从而优化你的数据分析和故事讲述。 在本示例中,我们构建了一个包含单一度量和单一维度的故事。为了展示如何通过脚本实现度量和维度的切换,我们将引入几个按钮,使您能够直观地看到所需的操作步骤。以下是完成后的效果图展示。左侧的统计图作为我们进行脚本编写的基础图表,而右侧的统计图则通过输入控件实现了相同的功能。通过这些控件,您可以轻松地交换图表中的项目。正如上图所示,您可以通过点击按钮来选择图表中应显示的度量和维度。实际上,脚本的核心逻辑非常简洁明了,其步骤包括:识别图表中当前显示的度量;从统计图中移除现有的度量;将新的度量添加至统计图中。在实际编写代码的过程中,您可以利用快捷键Ctrl + 空格来触发代码提示功能(注意切换到英文输入法)。接下来让我们看一下第一个按钮背后的实际代码:// 从统计图中移除当前度量并添加新度量

// 使用 getMembers() 函数创建一个变量来保存当前统计图度量

var TheCurrentMeasure = Chart_1.getMembers(Feed.ValueAxis);
console.log(TheCurrentMeasure[0]);

// 移除该度量,使统计图暂时没有度量Chart_1.removeMember(Feed.ValueAxis,TheCurrentMeasure[0]);

// 向统计图添加所需度量,以替换之前删除的度量 Chart_1.addMember(Feed.ValueAxis,”[Account].[parentId].&[TR]”); 让我们逐步剖析代码的功能。首先,我们创建了一个名为 TheCurrentMeasure 的变量,并使用 getMembers() 函数将其初始化为 Feed.ValueAxis。简而言之,getMembers()函数的作用是返回一个数组,该数组包含了所有应用于统计图表的度量。由于我们的统计图表中仅包含一个度量,因此这个数组仅包含一个元素。您可以通过检查浏览器控制台来验证这个数组的内容,正如我在代码的第5行所做的那样,我将数组的第一个元素输出到了控制台。我们已经成功创建了一个变量,并用图表中当前的度量值对其进行了赋值。接下来,我们需要在添加新度量之前,先移除这个现有的度量。在代码的第8行,我们调用了removeMember()函数,这个函数的作用是从指定的维度(在这个例子中是ValueAxis)中移除特定的度量。具体来说,我们移除了数组中的第一个元素。 Chart_1.removeMember(Feed.ValueAxis,TheCurrentMeasure[0]); 请注意,我们使用 TheCurrentMeasure[0] 来引用数组的第一个元素。尽管数组中可能包含多个度量,但在本例中,我们的焦点仅在于元素[0]。现在,我们接近完成整个过程。我们已经从统计图表中移除了原有的度量,接下来的最后一步是添加一个新的度量。为此,我们调用addMember()函数来引入一个名为[TR]的新度量: Chart_1.addMember(Feed.ValueAxis,”[Account].[parentId].&[TR]”); 这个过程包括识别现有的度量、将其移除,然后引入一个新的度量来替代它。这与度量输入控件的工作原理相同,但同时也展示了通过脚本编写API所能达到的能力和灵活性。当然,我们同样可以应用类似的代码逻辑来对维度进行完全相同的操作。 // 创建一个变量来保存应用于统计图的当前维

var TheCurrentDimension = Chart_1.getDimensions(Feed.CategoryAxis);
console.log(TheCurrentDimension[0]);

// 从统计图中删除该维 - 它是数组元素 [0] Chart_1.removeDimension(TheCurrentDimension[0],Feed.CategoryAxis);

// 向统计图添加“渠道”维 Chart_1.addDimension(“Channels”,Feed.CategoryAxis);
这段代码的设计思路其实与用户更换度量的思路非常相近,但通过特定的函数调用,我们简化了代码编写的过程。您可能已经注意到,即使在脚本编写示例中,当您更改维度或度量时,统计图的标题也会随之更改。虽然目前还没有直接通过脚本API来更改统计图标题的功能,但您仍然可以采用一些方法来动态地调整标题。为了实现这一点,您可以向统计图标题中添加动态文本——具体来说,可以通过使用“添加”>>“动态文本”的功能,将账户和维度信息嵌入到统计图的标题中。这样,标题就能根据当前显示的维度和度量动态变化,增强了图表的交互性和信息的即时性。 通过适当设置格式,每当您利用脚本API更改度量或维度时,标题也会自动更新以反映这些变化。这种做法确保了统计图的标题与图表内容保持同步,从而提升了图表的可读性,并增强了信息传达的准确性。以下是一个示例,展示了如何使用按钮来切换度量值,使得统计图和动态标题能够同时响应变化: 四、总结本文主要介绍了在如何通过 SAC 的脚本API来动态管理和更新统计图表中的度量和维度。我们还讨论了如何通过添加动态文本到图表标题中,来实现标题的自动更新,以保持与图表内容的同步。希望这些内容能在您创建交互式故事或教程时提供实用的指导。祝编码愉快! 原作者:@Daniel_Davis原文链接:Start Your scripting Journey The Easy Way With SAP Analytics Cloud | Part Four   Read More Technology Blogs by SAP articles 

#SAP

#SAPTechnologyblog

You May Also Like

More From Author