使用脚本扩展注释功能
学习目标
使用脚本扩展注释功能。
注释
使用内置功能添加注释
您可以使用 SAP Analytics Cloud 中的内置功能在计划故事中轻松添加注释。
可将注释添加到:
数据表中使用内置" 添加数据点留言 "选项的单元格。如果单元格已有注释,则会在单元格中显示表示符。计划员可以通过选择数据单元格来查看注释。

数据表中的单独列。注释列中将仅显示最新注释。

查看和查找相关备注可能非常耗时。如果留言被广泛使用,你可能需要滚动到故事末尾的留言列,或者单击每个单元格以查看留言。
在"使用 SAP Analytics Cloud 执行手动计划"课程的"使用数据点注释"课程中介绍了如何在 SAP Analytics Cloud 故事中创建注释,包括 AI 辅助注释功能。
业务场景:使用脚本扩展注释功能
观看此视频,详细了解团队在故事中通过脚本扩展留言功能的要求,以便更轻松地查看和创建留言。
视频:本节含 SAP 官方视频(视频 ID
1_smcpaqva),需在 learning.sap.com 在线观看。
Ope
团队重视有效的沟通和协作,并了解其对于成功计划的重要性。在处理预测时,他们会定期记录自己的计划假设。虽然他们同时使用留言列和数据点留言,但他们希望可以更轻松地查看、添加和删除留言。他们还定期向公司的其他团队展示预测,并且经常忘记在共享屏幕之前隐藏注释指标!
在与同事 Frank 合作以完全了解扩展注释功能的业务需求后,您建议创建:
"启用/禁用留言模式 "按钮,用于显示或抑制数据单元格中的获取绿色留言表示符。
文本微件和按钮,允许计划人员在输入字段中输入留言,然后使用" 添加注释 "按钮将其添加到数据库。这包括错误消息的弹出窗口,当计划员尝试添加注释而不选择数据表中的产品组时,将显示该弹出窗口。
故事中的固定区域,用于按产品组显示注释。其中包括用于选择特定注释以将其删除的单选按钮。
故事中的固定区域,用于显示留言审计线索(人员和时间)信息。
用于删除注释的按钮。
下拉列表按产品组在留言微件中显示或添加注释。

此场景中使用的代码
在以下示例中,您可以查看场景和练习中用于扩展计划故事注释功能的代码。
启用/禁用留言模式
以下脚本将添加到 BTN_EnableCommentMode - onClick 可显示/隐藏故事中的留言表示符:
Application.setCommentModeEnabled(!Application.isCommentModeEnabled());

读取注释
以下脚本将添加到脚本对象 SO_Comments - readComments 脚本对象以允许:
如果在表中选择了非数据单元格,则清除单选按钮组 RB_CommentID 和文本字段 TXT_Display_Comments 。
使用所选数据单元格的注释标识和文本更新单选按钮组 RB_CommentID 。
在文本框 TXT_Display_Comments 中显示注释文本、创建时间和创建人信息。
var sel = TBL_Planning_Enabled.getSelections();
var cellSelected = TBL_Planning_Enabled.getDataSource().getData(sel[0]);
if (cellSelected === undefined) {
RB_CommentID.removeAllItems();
TXT_Display_Comments.applyText(" ");
}
else if (sel.length > 0) {
var comments = TBL_Planning_Enabled.getDataSource().getComments().getAllComments(sel[0]);
RB_CommentID.removeAllItems();
TXT_Display_Comments.applyText(" ");
for (var i=0;i<comments.length; i++){
var comment = comments[i];
RB_CommentID.addItem(comment.commentId, comment.text);
var comments_text = TXT_Display_Comments.getPlainText() + "\n" + "Created by :" + comment.createdBy.displayName + "\n" + "Created at :" + comment.createdAt + "\n" + "Comment :" + comment.text;
TXT_Display_Comments.applyText(comments_text);
}
}

运行脚本对象
以下脚本将添加到**"TBL_Planning_Enabled-onSelect**",在选择表后运行脚本对象:
SO_Comments.readComments();

添加注释
以下脚本将添加到 BTN_Add_Comment - onClick to:
如果在用户尝试添加留言时未选择数据单元格,则显示 Popup_Error 弹出窗口。
从 INF_Enter_Comment 输入字段中读取用户定义的注释并将其添加到所选数据单元格。
刷新单选按钮和文本框中显示的注释。
var sel = TBL_Planning_Enabled.getSelections();
var cellSelected = TBL_Planning_Enabled.getDataSource().getData(sel[0]);
if (cellSelected === undefined) {
Popup_Error.open();
}
else if (sel.length > 0) {
var comment = INF_Enter_Comment.getValue();
TBL_Planning_Enabled.getDataSource().getComments().addComment(sel[0], comment);
INF_Enter_Comment.setValue("");
SO_Comments.readComments();
}

弹出窗口错误
以下脚本将添加到**"Popup_Error - onButtonClick**"弹出窗口,以在计划者尝试添加留言时未选择数据单元格时关闭将出现的错误消息:
Popup_Error.close();

删除注释
以下脚本将添加到 BTN_Delete_Comment - onClick 以按其 ID 删除数据单元格注释,并刷新单选按钮和文本框中显示的注释:
var sel = RB_CommentID.getSelectedKey();
TBL_Planning_Enabled.getDataSource().getComments().removeComment(sel);
SO_Comments.readComments();

在页面初始化时填充产品组下拉列表
以下脚本将添加到**"Page_1 - onInitialization**",以在计划员打开故事时使用 ProductGroup 的维值(值 # unassigned 除外)填充 DD_ProductGroup 下拉框:
var ProductGroups = TBL_Planning_Enabled.getDataSource().getMembers("ProductGroup");
for (var x=0; x<ProductGroups.length; x++){
var ProductGroup = ProductGroups[x];
if (ProductGroup.id!=="#"){
DD_ProductGroup.addItem(ProductGroup.id,ProductGroup.description);
}
}

产品组下拉菜单
以下脚本将添加到 DD_ProductGroup - onClick 以定义用于过滤注释微件的下拉列表的值:
CW_ProductGroup.getCommentingDataSource().removeDimensionFilter("ProductGroup");
CW_ProductGroup.getCommentingDataSource().setDimensionFilter("ProductGroup",DD_ProductGroup.getSelectedKey());

使用脚本扩展注释功能
任务 1: 使用脚本扩展注释功能
**任务流:**在本练习中,您将:
通过向"启用/禁用留言模式"按钮添加脚本来 启用留言模式 。
添加脚本对象,以读取数据表单元格中的注释并在文本框中显示。
添加脚本以配置注释框,包括选择带有单选按钮的注释,以及创建人和时间信息。
添加脚本按钮以允许创建和删除注释。
为错误消息和相关脚本添加自定义弹出窗口以将其隐藏。
练习:开始练习(SAP 官方交互式练习)
任务 2: 可选:在计划故事中测试扩展的注释功能
**任务流:**在本练习中,您将:
通过使用文本微件和按钮添加、选择和删除留言,测试添加到故事的所有脚本。
测试按产品组过滤注释下拉列表。
练习:开始练习(SAP 官方交互式练习)