使用脚本扩展主数据维护

学习目标

  • 使用脚本扩展主数据维护。

主数据维护

使用内置功能将成员添加到维

您可以使用 SAP Analytics Cloud 计划故事中的内置功能轻松地将成员添加到维度。但是,在创建新的主数据并添加所需属性时,某些计划员不确定要使用的属性值。因此,他们必须花时间查看其他文档以查找确切的属性名称。

很难保持数据一致,例如,在具有多个属性的新产品的多个计划员预测产品销售的场景中。

使用表中的新行将主数据添加到故事。

"使用 SAP Analytics Cloud 执行手动计划"课程中的"从数据表中添加新的维成员"课程中介绍了此主题。

业务场景:使用脚本扩展主数据维护

观看此视频,详细了解团队通过脚本扩展故事的要求,以便更轻松、更一致的主数据维护。

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

Ope

接下来的 24 个月对于球队来说会很忙。随着许多新产品的发布,他们必须在计划时为每个新产品创建主数据。这非常耗时,结果可能非常不一致。

您与同事 Laura 合作,充分了解创建新产品主数据的业务需求。建议创建自定义弹出对话框,其中标识由系统生成,一系列文本框、下拉列表和单选按钮提示用户输入所需属性。

使用脚本创建的自定义弹出对话框。

故事设置

在添加用于扩展故事的脚本之前,先创建 BTN_Add 按钮和 POPUP_Add 弹出窗口。添加并配置所需微件以满足业务需求,并记下脚本的所有 ID 名称。

弹出窗口设置

计划在弹出对话框中使用自定义按钮。创建弹出窗口时,添加四个按钮:

  1. 保存并关闭: 保存新成员并关闭弹出窗口。

  2. 保存并新建: 保存新成员,但保持弹出窗口打开。

  3. 取消: 关闭弹出窗口而不保存。

  4. 清除所有属性: 允许计划员在选择 保存并新建 后清除现有值。

设置显示在生成器面板中的弹出窗口元素。

描述

INF_Article_Desc 输入字段微件已配置,以便计划员可以在字段中输入自由文本。

在生成器面板中设置显示的说明文本微件。

品牌

DD_Article_Brand 下拉菜单微件已配置,以便计划人员可以从有效值列表中进行选择。你最初将其设置为"未分配",因为你将添加脚本以从公用维中提取值。

在生成器面板中显示具有设置 的品牌下拉列表微件。

皮革

RB_Article_Leather 单选按钮微件已配置,以便计划人员可以在两个选项之间进行选择。

在生成器面板中设置显示的皮革单选按钮微件。

服装时刻

已配置 DD_Article_Clothingimate 下拉菜单微件,以便计划人员从"生成器"面板中创建的选项中进行选择。

服装方法下拉小部件,其设置显示在生成器面板中。

计划模型

PlanningModel 模型包含品牌和商品维度。但是,您可以有一个场景,例如,从一个模型和在另一个模型中创建的商品中读取品牌。

使用创建商品按钮创建的新商品将添加到计划模型,场景中为 Product_Sales_MD

计划模型。

在此场景中使用的代码

现在,故事已设置完毕,现在可以添加代码了。

更新页面初始化上的下拉列表

当计划人员打开故事时,弹出窗口中的下拉列表需要使用最新的维数据进行更新。完成后,将显示一条就绪消息。

为此,将以下脚本添加到 Page_1 - onInitialization 事件:

var brand = PlanningModel.getMembers("P00D_A_BRAND");
for (var counter = 0; counter < brand.length; ++counter){
if (brand[counter].description !== ""){
DD_Article_Brand.addItem(brand[counter].id,
brand[counter].id+ " - "+ brand[counter].description);
}
}
Application.showMessage(ApplicationMessageType.Success,"Story has loaded, you can create new Articles");

第 1 页和使用的代码

打开自定义弹出窗口

在故事中选择*"创建商品*"按钮后,将打开自定义弹出窗口。提示计划员选择新商品的属性。

为此,请将以下脚本添加到 BTN_Add - onClick 事件:

POPUP_Add.open();
TXT_ID_Field.applyText(Utils.getID());

Button_Add 和使用的代码

创建商品

POPUP_Add 中,将以下脚本添加到 POPUP_Add - onButtonClick 事件:

if (buttonId === "clear_all"){
INF_Article_Desc.setValue("");
DD_Article_Brand.setSelectedKey("#");
RB_Article_Leather.setSelectedKey("No");
DD_Article_Clothingmoment.setSelectedKey("#");
}
else{
if (buttonId === "button_cncl") {
this.close();
}
else {
SV_Materialmember = ({
id: TXT_ID_Field.getPlainText(),
description: INF_Article_Desc.getValue(),
properties: {
Brand: DD_Article_Brand.getSelectedKey(),
Clothing_Moment:DD_Article_Clothingmoment.getSelectedKey(),
Leather:RB_Article_Leather.getSelectedKey()
}
});

var result = PlanningModel.createMembers("Article",SV_Materialmember);
if(result) {
Application.refreshData([TBL_1.getDataSource(),]);
Application.showMessage(ApplicationMessageType.Success,"Article Successfully Created");

if (buttonId === "button_okClose") {
this.close();
}

if (buttonId === "button_okNew") {
TXT_ID_Field.applyText(Utils.getID());
}
}
}
}

用于 POPUP_Add 的脚本。

生成商品标识

脚本读取现有商品的 ID。

将以下代码添加到 Utils - getID 脚本对象:

return "Art_"+PlanningModel.getMembers("Article").length.toString();

使用的 GetID 和代码

脚本变量

SV_Materialmember 脚本变量在上述 POPUP_Add 脚本中引用,用于读取现有文章。

脚本变量 SV_Materialmember 设置。

使用脚本扩展主数据维护

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

  • 将脚本添加到将在初始化时运行的页面。

  • 将脚本添加到 "创建文章 "按钮以显示自定义弹出对话框。

  • 向弹出窗口微件中添加脚本以自动创建 ID。

  • 使用故事中的弹出窗口创建新文章。

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

查看模型中添加的商品

创建新文章后,您可以在模型中进行查看。

在 P00M_ProductSalesMD 计划模型的商品维度中查看新创建的商品。