在增强的故事中调试脚本

学习目标

  • 描述调试脚本的流程。

使用浏览器开发人员工具调试脚本

**业务场景:**由于你在故事中使用了脚本,因此你希望通过检查浏览器的开发人员工具来查看其执行方式。

模拟步骤

以下练习模拟 SAP Analytics Cloud 中的高级模式,并引导您完成 SAP Analytics Cloud 故事的调试场景。

**任务流:**在本练习中,您将:

  • 从故事访问 Chrome 开发者工具

  • 检查下拉框的值

  • 选择下拉值时检查已执行的脚本

练习开始练习(SAP 官方交互式练习)

脚本的调试选项

调试脚本

本演示将介绍使用本课程中使用的场景之一,从开始到结束整个调试过程。视频结束后,你会看到,我们已经为您总结了视频中涵盖的关键主题和理论。

视频:本节含 SAP 官方视频(视频 ID 1_2rupgljr),需在 learning.sap.com 在线观看。

写入控制台

如果要了解代码的哪个部分已处理或变量包含哪个值,则可以在设计时使用 console.log(argument); 命令。参数可以是从简单字符串到复杂数组的任意数据类型。

在运行时,打开浏览器开发人员工具栏并检查控制台标签。使用过滤器功能专注于信息类型条目。

使用开发人员工具(右)的 SAP Analytics Cloud 代码(左侧)。

脚本执行时,会将参数写入控制台日志。

此方法可能适用于小型场景。但是,在更大程度上,这种方法会变得繁琐,尤其是在故事高效工作时,应移除不需要的控制台日志。

在 Web 浏览器的开发工具中调试脚本

要查看你在故事中编写的脚本,请运行故事并打开 Web 浏览器的开发工具。

  1. 选择 "源 "选项卡。

  2. 在文件树的顶层,搜索以 sandbox.worker.main 开头的条目。

  3. 在" 分析应用 "下,找到具有故事名称的文件夹。

  4. 故事中执行的脚本位于此文件夹中(脚本至少需要运行一次才能显示在列表中)。

开发人员工具的源标签,图像上方的文本中编号为 1-4。

脚本名称遵循特定模式:<WIDGET_NAME>.<FUNCTION_NAME>.js。脚本被分组到一个名为 <STORY_NAME> 的文件夹中。

脚本名称的元素具有以下含义:

键值

描述

STORY_NAME

在保存故事时,为故事设置的名称

WIDGET_NAME

故事中微件或元素的名称。

FUNCTION_NAME

保存所编写脚本的函数或事件处理程序的名称。

例如,如果为 Page_1onInitialization 事件定义脚本,则 WIDGET_NAME 会自动设置为 Page_1

调试模式的 URL

在启用了调试模式的运行时,故事的有效 URL 如下所示:http://<HOST>:<PORT>/sap/fpa/ui/app.html?tenant=<TENANT_NAME>#;mode=present;view_id=appBuilding;appId=<APPLICATION_ID>&debug=true

注意

如果 debug 参数收到的值不同于 true 或根本不接收任何值,则会将其忽略并且不启用调试模式。

调试模式下的脚本

要显示当前显示的脚本是调试模式下的脚本,请将附录"-dbg"添加到脚本名称中。

在调试模式下显示 .dbg 突出显示的脚本。

调试模式选项

在下图中,您可以看到:

  1. 手动断点

  2. " 恢复脚本执行 "按钮

  3. 本地脚本变量

调试模式(从左到右)文件导航器、代码编辑器和调试面板。

断点

在调试中,可以添加手动断点。按照以下步骤在脚本中设置断点:

  1. 打开要在执行期间暂停的脚本,然后在开发工具中打开的脚本的左侧,单击要暂停脚本的行号。 将出现一个蓝色标记,突出显示行号。这表示下次执行脚本时,脚本在此处暂停。

  2. 可选:在同一脚本中添加更多断点,以在运行时期间在不同点暂停脚本。

要重置断点,请单击要删除的标记。下次运行脚本时,脚本的执行不会在此时停止。

使用调试器;

在调试模式下,可以在脚本中使用 debugger; 语句。

此语句模拟在脚本中创建断点。您不需要在必须调试的脚本中显式设置断点,但只要解释脚本中的 debugger; 语句,该脚本就会自动停止其执行。

这样,你可以在设计时检查运行时必须暂停脚本的点。

脚本变量值的查找位置

当调试程序在断点中暂停时,您可以在本地部分的选项卡中找到所有本地脚本变量。

“源”选项卡,显示本地脚本变量。

全局脚本变量可以添加到 控制台 标签。您必须手动输入要查看的内容。语法遵循以下规则:this.$$.NAMEOFVARIABLE

显示全局脚本变量的控制台选项卡。