存储值以供以后使用SAP MDK

2020-08-15 17:41发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嘿社区, 我面临着巨大的挑战。...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嘿社区,

我面临着巨大的挑战。 我在后端有一个解析查询,我想比较一些值并用它们计算。 我能够创建一个可以与其他价值进行比较的规则,并且我也能够进行计算。 不幸的是,我的程序真的很慢,因为我在一页上使用了大约4条规则,并且每次有一个后端的odata调用都会花费很多时间(每页10到20秒)。

以下是我想做的简短描述:

获取按产品分类的上个月的KPI(值1)。
获取按去年分组的KPI(值2)。

将值1与值2进行比较,然后返回偏差。

等...

问题是我无法存储值1并以后在其他规则中使用它。 结果是,当有新规则时,我必须从后端再次获取值。 我也不能在一条规则中使用" .read(Services,Entity,QueryOption等)"两次并比较这些值,因为当我尝试使用它们时它们是对象:(

所以,在 最终它可以正常工作,但是真的很慢。我听到了一些关于clientData的信息,但我不确定如何在运行时将值存储在某个地方:(如果您能提供帮助,那将是很好。这是我的规则示例:
< br> export默认函数GetPicturePath(context){/这是第一个值。我使用queryoptions来获取本周的值。稍后,我将其与.read
var binding = context.getBindingObject()。SL;返回context.read('/ServiceLevel/Services/AllSL.service','Z_Q_SL',[],'$ filter = LastMonth eq \''+ 1 +'\'&$ select = ArticleName,SL')。then(函数(结果){如果(result.length> 0){var ServiceLevel = result.getItem(0).SL; return(binding-ServiceLevel).toFixed(2);)else {return 200;}})。catch(function(error){alert(error);});}

4条回答
Bunny_CDM
2020-08-15 17:44

Fabian

有两种方法可以轻松地将值持久保存在MDK应用程序中。

如果需要在应用程序的各个启动之间保留这些值,则可以使用应用程序设置。 请记住,如果您重置/注销应用程序,请清理您的值。 如果删除该应用程序,则所有保存的值都将自动清除。

如果只需要将它们存储在当前会话的内存中,则可以使用客户端数据。 客户端数据与UI元素相关联,并将仅在该元素的生命周期内持续存在。 如果要在应用程序的整个生命周期内存储状态,则通常将其存储在客户端级别的"客户端数据"中,因为通常在应用程序执行期间,该主页通常只加载一次,而不重新加载。

In 您的规则便可以检索存储的值,并在比较中使用它,而不必重新计算该值。

—比尔

一周热门 更多>