屏幕未使用JavaScript计时事件刷新

2020-08-15 13:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) countdownscrip...

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

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


countdownscript.txt 下午好。

我正在尝试使用倒数计时过程来记下我的风味计时器。

我对自己的口味有所了解。 我希望显示一个初始值" 30",然后设置一个时间/间隔以每分钟倒数一次,直到该值达到零为止。

脚本正在倒计时,我可以在日志中看到倒计时,但是字段/标签未重置。 我尝试了另一种帖子建议的组合,以添加" sap.personas.scripting.executeScriptInternal({src:''});" 脚本,但无法正常工作。

我正在Slipstream上使用Personas 3.0 SP10。

我尝试将脚本添加到各种屏幕事件(onAfterRefresh,onLoad等)中,并且没有任何变化。

我的脚本已附加。 任何建议,不胜感激。

亲切的问候

克里斯汀

countdownscript.txt (757乙)
2条回答
spaceman01
2020-08-15 14:09

克里斯汀,你好

执行输入的文本设置器会生成后端请求,以将客户端状态与后端中的DYNPRO应用状态同步,这当然会花费一些时间。

根据您的脚本,这里有一个可能的解决方法,供您尝试:

 var oScreenService = sap.ui.getCore()。getComponent(" sap.se.ui")。getService(" ScreenService");
 var timeLabelID = session.findById(" wnd [0]/usr/lblPersonas_159315604410812");
 var timeFieldID = session.findById(" wnd [0]/usr/txtPersonas_159315603432999");
 var countDownNum = 30;
 var oUI5Label,oUI5Input;
 var x;
 oScreenService.attachAfterRendering(function(){
 if(session.utils.get("状态")==="完成"){
 返回;
 }
 oUI5Label = oScreenService.getControlById(timeLabelID.id);
 oUI5Input = oScreenService.getControlById(timeFieldID.id);

 函数countDown(){
 countDownNum--;
 如果(countDownNum === 27){
 clearInterval(x);
 session.utils.put("状态","完成");
 oUI5Label.setText(" EXPIRED");
 oUI5Input.setValue(" EXPIRED");
 timeLabelID.text =" EXPIRED";
 timeFieldID.text =" EXPIRED";
 session.utils.log(" EXPIRED");
 }其他{
 oUI5Label.setText(countDownNum.toString());
 oUI5Input.setValue(countDownNum.toString());
 }
 }
 x = setInterval(countDown,1000);

 },this); 

在上面的示例中,计数器文本值在计数器功能运行时未与后端同步。

谢谢

Krists Magons

SAP Screen Personas开发团队

一周热门 更多>