点击此处---> 群内免费提供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);});}
Fabian
有两种方法可以轻松地将值持久保存在MDK应用程序中。
如果需要在应用程序的各个启动之间保留这些值,则可以使用应用程序设置。 请记住,如果您重置/注销应用程序,请清理您的值。 如果删除该应用程序,则所有保存的值都将自动清除。
如果只需要将它们存储在当前会话的内存中,则可以使用客户端数据。 客户端数据与UI元素相关联,并将仅在该元素的生命周期内持续存在。 如果要在应用程序的整个生命周期内存储状态,则通常将其存储在客户端级别的"客户端数据"中,因为通常在应用程序执行期间,该主页通常只加载一次,而不重新加载。
In 您的规则便可以检索存储的值,并在比较中使用它,而不必重新计算该值。
—比尔
嘿比尔,
感谢您的回答!
我仍然无法设置此值并在以后的其他规则中获取它。
我现在有两个规则:
#1
导出默认函数SetValueOne(clientAPI){
var pageproxy = clientAPI.evaluateTargetPath('#Page:Main/#Control:SectionedTable0/#Value');
pageproxy.setValue(5);
}
#2
导出默认函数GetValueOne(clientAPI){}
但是我的结果仍然是空的:(
如果您能在这里再次提供帮助,那将是非常好的:)某些示例代码片段将非常有用。 :)
亲切的问候
Fabian
在客户端数据中设置值
要使用动态目标路径绑定来检索元数据中的值
要检索规则中的值,只需再次获取客户端数据并引用属性
要在应用程序设置中获取并设置值
应用程序设置值在应用程序启动之间保持不变。 如果用户从您的应用程序注销返回到欢迎屏幕,那么在注销过程中,您应删除您设置的所有应用程序设置值。 不要盲目地在应用程序设置上调用clear方法,因为客户端也会在其中存储值,清除应用程序设置会导致问题。
一周热门 更多>