在按下按钮时访问GuiGridView表行时出错

2020-08-16 22:58发布

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

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


嗨,我仍在使用Screen Personas 3.0 SP11定制SU3。

我添加了一个脚本按钮来替换保存按钮。 脚本按钮的目的是从简化屏幕上的自定义字段中获取数据,将它们放在"参数"选项卡上的相关行中,然后按(将被隐藏)保存按钮。

我已将以下脚本附加到脚本按钮的onClick事件上。

功能睡眠(毫秒){
   var start = new Date()。getTime();
   对于(var i = 0; i <1e7; i ++){
     如果(new Date()。getTime()-开始>毫秒){
       打破;
     }
   }
 }


//打开参数选项卡(如果尚未选择)
 如果(session.findById(" wnd [0]/usr/tabsTABSTRIP1")。selectedTab!== session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM")){
   session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM")。select();
 }


//将网格视图表转换为变量。
 var pTable = session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell");


//获取表中的行数
 var numRows = pTable.rowCount;
 session.utils.log(" Numrows:" + numRows.toString());


//获取保存变量的列名
 var columnNames = pTable.getColumnName(0);
 var columnValues = pTable.getColumnName(1);


//获取表格的最大可见行。 如果我们不向下翻页,我们将无法获得所有价值
 var maxRows = pTable.maxRows;
 session.utils.log(" Maxrows:" + maxRows.toString());


//设置第一个可见
 pTable.firstVisibleRow = 0;


 var i = 0;
 而(i 
 

第一次按下按钮时,出现以下错误:

我昨天遇到相同的错误。 奇怪的是,这基本上与我在onLoad事件中用于填充自定义字段的代码相同,我只是在读取自定义字段并更新表,而不是相反。

另一个很奇怪的事情是,如果我第二次按下按钮,它会起作用! 一致。 第一次按下按钮时,出现错误。 第二次,更改被发布并正确地保存到数据库中。

在尝试填充表的值之前,是否需要触发一些事件?

再次感谢您的帮助。

布莱恩

(16.3 kB)

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

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


嗨,我仍在使用Screen Personas 3.0 SP11定制SU3。

我添加了一个脚本按钮来替换保存按钮。 脚本按钮的目的是从简化屏幕上的自定义字段中获取数据,将它们放在"参数"选项卡上的相关行中,然后按(将被隐藏)保存按钮。

我已将以下脚本附加到脚本按钮的onClick事件上。

功能睡眠(毫秒){
   var start = new Date()。getTime();
   对于(var i = 0; i <1e7; i ++){
     如果(new Date()。getTime()-开始>毫秒){
       打破;
     }
   }
 }


//打开参数选项卡(如果尚未选择)
 如果(session.findById(" wnd [0]/usr/tabsTABSTRIP1")。selectedTab!== session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM")){
   session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM")。select();
 }


//将网格视图表转换为变量。
 var pTable = session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell");


//获取表中的行数
 var numRows = pTable.rowCount;
 session.utils.log(" Numrows:" + numRows.toString());


//获取保存变量的列名
 var columnNames = pTable.getColumnName(0);
 var columnValues = pTable.getColumnName(1);


//获取表格的最大可见行。 如果我们不向下翻页,我们将无法获得所有价值
 var maxRows = pTable.maxRows;
 session.utils.log(" Maxrows:" + maxRows.toString());


//设置第一个可见
 pTable.firstVisibleRow = 0;


 var i = 0;
 而(i 
 

第一次按下按钮时,出现以下错误:

我昨天遇到相同的错误。 奇怪的是,这基本上与我在onLoad事件中用于填充自定义字段的代码相同,我只是在读取自定义字段并更新表,而不是相反。

另一个很奇怪的事情是,如果我第二次按下按钮,它会起作用! 一致。 第一次按下按钮时,出现错误。 第二次,更改被发布并正确地保存到数据库中。

在尝试填充表的值之前,是否需要触发一些事件?

再次感谢您的帮助。

布莱恩

(16.3 kB)
付费偷看设置
发送
5条回答
Violet凡
1楼-- · 2020-08-16 23:30

嗨,布莱恩,

我认为,您在我们最近的Scripting API实施更新中遇到了退步。 我们注意到在执行oTable。 firstVisibleRow setter时,action/710错误地发送到了后端。

尽管我们目前正在研究修复程序,但我建议提高BC-PER事件凭单,最好打开HTTP支持连接。 我们很乐意详细研究该问题,并确认它与我上面提到的问题相同。 另外,我们可以与您建立屏幕共享会话以讨论问题。

谢谢!

最好

Krists Magons

SAP屏幕角色开发团队

SAP德到
2楼-- · 2020-08-16 23:42

嗨,

我在SP08中遇到了类似的问题,并为此公开了一个事件。 有人告诉我应该从SP09开始解决此问题(我们实际上正在计划对SP11进行更新,因此我尚无法对其进行测试)

直接在参数TAB中尝试测试的目的。 我想这会起作用。 在我的情况下,问题是:按脚本导航到某个地方,然后在其中读取一个表。

在我的某些情况下(并非全部),以下解决方法有所帮助:

>在脚本中导航至参数TAB,然后返回,然后再次至参数TAB,然后阅读表
> 在设置firstvisiblerow之前先设置屏幕刷新

sap.personas.scripting.executeScriptInternal({src:''});
table.firstVisibleRow = 0;

最诚挚的问候,
托马斯

小c菟菟
3楼-- · 2020-08-16 23:46

你好布莱恩,

您能否从开发者控制台(通常是F12)共享错误消息?

此致

Artjoms

Alawn_Xu
4楼-- · 2020-08-16 23:37

太好了,谢谢。 您也有一个愉快的周末!

布莱恩(Bryan)

SAP小菜
5楼-- · 2020-08-16 23:49

在这里。 我已经用一个变量替换了我们实际的应用服务器名称。

 lightspeed.js:253 sap.personas.scripting:脚本执行期间出错:WrongColumnName-getCellValue():列'PARID'和行索引0没有单元格。新的sap.personas.scripting.scriptingEngine错误。  oProtected.Exception
 (https://:8443/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20200511143352:2:1518),网址为sap.personas.scripting.scriptingEngine。  oProtected.mObjects.GuiVirtualShell.sap.personas.scripting.scriptingEngine.GuiGridView.getCellValue(https://:8443/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine。  js?20200511143352:41:8746)在Object.self.executeScriptInternal处([AppID:SU3]> [Flavor:PROFILE_MAINT]> [Script:wnd [0]/scrptPersonas_000C2945CC1C1EEAAAEAAECEC3BF230B-setValues]:58:22)
 (https://:8443/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20200511143352:66:11457)在Object.sap.personas.scripting。  executeScriptInternal
 (https://:8443/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20200511143352:66:13818)
 Object.executeScript(https://:8443/sap/public/icmandir/its/〜cache-7530614-322964/lsgui/js/webgui_min.js:176:452)
 Object.a.executePersonasScript(https://:8443/sap/public/icmandir/its/〜cache-7530614-322964/lsgui/js/webgui_min.js:178:378)
 Object.processScriptQueue(https://:8443/sap/public/icmandir/its/〜cache-7530614-322964/lsgui/js/webgui_min.js:198:374)
 对象。<匿名>(https://:8443/sap/public/icmandir/its/〜cache-7530614-322964/lsgui/js/webgui_min.js:198:99)(LS:Error)S. 跟踪@ lightspeed.js:197错误@ ScriptingEngine.js?20200511143352:2 self.executeScriptInternal @ ScriptingEngine.js?20200511143352:66
 sap.personas.scripting.executeScriptInternal @ ScriptingEngine.js?20200511143352:66 executeScript @ webgui_min.js:176 a.executePersonasScript @
 webgui_min.js:178 processScriptQueue @ webgui_min.js:198(匿名)@ webgui_min.js:198 setTimeout(异步)processEventQueue @ webgui_min.js:198
 (匿名)@ webgui_min.js:197 setTimeout(异步)enqueueEvent @ webgui_min.js:197 processEvent @ webgui_min.js:196
 m.processSemanticEventByExternalHandlers @ lightspeed.js:37927 m.processSemanticEvent @ lightspeed.js:37882 n.fireSemanticEvent @
 lightspeed.js:28335 b.firePress @ classes-its.js:8205 b.handleClick @ classes-its.js:6621 b.onclick @ classes-its.js:6235 m.dispatchBrowserEvent @
 lightspeed.js:37676 m.onControlEvent @ lightspeed.js:37494(匿名)@ lightspeed.js:1790 f.forEach @ lightspeed.js:6962 J.fireEventToRegistry @
 lightspeed.js:1790 J.fireEvent @ lightspeed.js:1790 y.processBrowserEvent @ lightspeed.js:19706 y.handleBrowserEvent @ lightspeed.js:19423
 forwardBrowserEvent @ lightspeed.js:18796


 

一周热门 更多>