点击此处---> 群内免费提供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)
嗨,布莱恩,
我认为,您在我们最近的Scripting API实施更新中遇到了退步。 我们注意到在执行oTable。 firstVisibleRow setter时,action/710错误地发送到了后端。
尽管我们目前正在研究修复程序,但我建议提高BC-PER事件凭单,最好打开HTTP支持连接。 我们很乐意详细研究该问题,并确认它与我上面提到的问题相同。 另外,我们可以与您建立屏幕共享会话以讨论问题。
谢谢!
最好
Krists Magons
SAP屏幕角色开发团队
嗨,
我在SP08中遇到了类似的问题,并为此公开了一个事件。 有人告诉我应该从SP09开始解决此问题(我们实际上正在计划对SP11进行更新,因此我尚无法对其进行测试)
直接在参数TAB中尝试测试的目的。 我想这会起作用。 在我的情况下,问题是:按脚本导航到某个地方,然后在其中读取一个表。
在我的某些情况下(并非全部),以下解决方法有所帮助:
>在脚本中导航至参数TAB,然后返回,然后再次至参数TAB,然后阅读表
> 在设置firstvisiblerow之前先设置屏幕刷新
sap.personas.scripting.executeScriptInternal({src:''});
table.firstVisibleRow = 0;
最诚挚的问候,
托马斯
你好布莱恩,
您能否从开发者控制台(通常是F12)共享错误消息?
此致
Artjoms
太好了,谢谢。 您也有一个愉快的周末!
布莱恩(Bryan)
在这里。 我已经用一个变量替换了我们实际的应用服务器名称。
一周热门 更多>