SET_SCRIPT/EXECUTE_SCRIPT在SAP GUI for HTML中不起作用

2020-09-23 10:57发布

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

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


你好,

希望您能帮助我解决以下问题...

我们使用类CL_GUI_HTML_VIEWER在常规dynpro屏幕内创建例如HTML输入字段。 使用的HTML模板包括一些JavaScript编码,这些编码将通过类CL_GUI_HTML_VIEWER的SET_SCRIPT/EXECUTE_SCRIPT方法引发。 我们将通过SAP提供的SAPEVENT选项从HTML对象接收信息。 通过包含的Javascript,我们将更改例如单选按钮的"已选中"选项。

整个过程在Windows环境的SAP GUI中运行良好。 不幸的是,我们也需要在SAP GUI for HTML(webgui)环境中使用该方案。 由于默认情况下webgui已经包含许多JavaScript,所以我从没想过这会是一个问题,但是Javascipt不会在此环境中执行。

有人已经需要使用SAP GUI for HTML从ABAP触发JavaScript吗? 请给我一个提示!

非常感谢!

最好的问候

亚历山大

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

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


你好,

希望您能帮助我解决以下问题...

我们使用类CL_GUI_HTML_VIEWER在常规dynpro屏幕内创建例如HTML输入字段。 使用的HTML模板包括一些JavaScript编码,这些编码将通过类CL_GUI_HTML_VIEWER的SET_SCRIPT/EXECUTE_SCRIPT方法引发。 我们将通过SAP提供的SAPEVENT选项从HTML对象接收信息。 通过包含的Javascript,我们将更改例如单选按钮的"已选中"选项。

整个过程在Windows环境的SAP GUI中运行良好。 不幸的是,我们也需要在SAP GUI for HTML(webgui)环境中使用该方案。 由于默认情况下webgui已经包含许多JavaScript,所以我从没想过这会是一个问题,但是Javascipt不会在此环境中执行。

有人已经需要使用SAP GUI for HTML从ABAP触发JavaScript吗? 请给我一个提示!

非常感谢!

最好的问候

亚历山大

付费偷看设置
发送
3条回答
愤怒的猪头君
1楼-- · 2020-09-23 11:36

这是一个不起作用的示例,它显示了原理:必须定义一个子类。

类lcl_html定义从cl_gui_html_viewer继承。
   公共部分。
   方法构造器
     输入
       !PARENT类型引用到CL_GUI_CONTAINER。
     方法execute_a_script。
 结束类。
 *
 lcl_html类的实现。
   方法构造函数。
     调用方法super-> constructor
       出口
         父母=父母
       例外情况
         其他= 1。
   方法。
   方法execute_a_script。
     数据脚本选项卡类型为soli_tab。
     数据脚本类型字符串。

     脚本= | document.getElementById(" regex")。value =" aaaaa"; |。

     scripttab = cl_bcs_convert => string_to_soli(脚本)。
     set_script(script = scripttab)。
     execute_script(例外dp_error = 1 cntl_error = 2)。
   方法。
 结束类。
Bunny_CDM
2楼-- · 2020-09-23 11:41

你好桑德拉,

非常感谢您的快速回复。 不幸的是,SET_SCRIPT/EXECUTE_SCRIPT在HTML的SAP GUI(webgui)中不起作用。 在Windows的SAP GUI中,您的编码效果很好。

在HTML Viewer对象中,我创建了一些单选按钮。 该HTML页面还包含以下JavaScript函数。

功能set_checked(id){
 if(document.getElementById(id).checked == true){
 document.getElementById(id).checked = false;
 }
 其他{
 document.getElementById(id).checked = true;
 }
 }
 

在我的ABAP编码中,我将使用类CL_GUI_HTML_VIEWER的set_script/execute_script方法触发JavaScript。

数据:
   lv_script TYPE字符串,
   lt_script类型为soli_tab。

 lv_script ='set_checked('''&& iv_id &&''');'。
 lt_script = cl_bcs_convert => string_to_soli(lv_script)。

 我-> set_script(
     出口
        脚本= lt_script)。
 我-> execute_script()。
 

我不会收到任何错误,但是正如SAP GUI中提到的HTML一样,什么都没有发生。

在SAP GUI for HTML中是否存在另一种触发JavaScript的方法/功能?

非常感谢!

最诚挚的问候

亚历山大

打个大熊猫
3楼-- · 2020-09-23 11:54

您好,亚历山大,

不建议在WEBGUI的HTML查看器中使用javascript函数。
混合使用js环境。

您应该开发一个常规的dynpro t代码,然后通过WEBGUI对其进行调用。

致谢,
Cris

一周热门 更多>