优化脚本性能
学习目标
优化脚本以提高故事性能。
在本课中,我们将探索故事脚本,以便更好地了解脚本对故事性能的影响,以及三个可以优化故事脚本以提高脚本性能的方案。
我们首先看一个性能不佳的故事,需要 Main 和 SandboxWorker 线程之间进行大量交互,从而降低故事性能。然后,我们将向您展示如何优化包含以下内容的脚本:
多次使用 getValue 和 setValue 方法。
多次使用 getResultSet 方法。
getResultSet 方法的未过滤使用。
视频:本节含 SAP 官方视频(视频 ID
1_fh93tnte),需在 learning.sap.com 在线观看。
总结
在视频中,我们将了解脚本性能和优化脚本最佳实践的三个常见问题。
多次使用 getValue 和 setValue 方法 。 在我们的场景中,文本框被误用于存储中间状态,例如变量的典型用例,而脚本仍在处理中。 在脚本的开头,可以声明空文本变量,并在循环中将所需结果连接到文本变量。作为脚本的最后一步,文本将应用于文本框。 这样,您只需要两个线程之间的一个交互,即在文本框中应用最终文本。
多次使用 getResultSet 方法 。 在我们的场景中,
getResultSet方法在抬头中调用,并在循环中调用四次。 最好只请求一次主线程并将其存储在局部变量中,而不是每次都要求 Main 线程移交结果集。此局部变量可以根据需要多次使用,无需在 SandboxWorker 和主线程之间进行任何其他交互。未过滤的 getResultSet 方法的使用情况 。 在我们的场景中,脚本使用
getResultSetAPI 而不指定任何过滤器,例如偏移、限制或选择。在不指定过滤器的情况下,此 API 返回的数组将包含结果集每个单元格的 元素。 使用可用于限制返回数组的可选选择参数getResultSet。
onResultsetChanged 事件中的脚本
在 onResultsetChanged 事件中编写脚本时,故事开发人员必须牢记最后一个重要的脚本优化主题。
无论您在 onResultsetChanged 事件脚本中编写什么代码,请确保执行操作后不更改相同的结果集。这会触发另一个 onResultsetChanged 事件,并创建无限循环。用户取消环路的唯一方法是关闭浏览器窗口。