两种使用JavaScript触发ABAP事件的技术手段-阿里云开发者社区

开发者社区> jerrywangsap> 正文

两种使用JavaScript触发ABAP事件的技术手段

简介: 两种使用JavaScript触发ABAP事件的技术手段
+关注继续查看

In CRM Office integration scenarios, Javascript together with ActiveX are widely used. For example, in webclient UI component view, version of the local installed Word application is got via ActiveX using Javascript and then this version is sent back to ABAP side, then application could work with different version accordingly.


This document explains two approaches to trigger ABAP backend event via Javascript with two simplest example:


Approach1 – trigger via calling click() method of a hidden button

(1) define a hidden button, bind its onClick event to an ABAP event ( line 6 ~ 9 )

Please note that the event name is Case sensitive – When you create the ABAP event in UI workbench, the correct event name you input must be exactly “Refresh” as line 8 ( although afterwards you see the upper case EH_ONREFRESH in workbench )


image.png


(2) store the runtime button ID into ABAP variable refresh_button_id ( line 10 ~ 13 )


(3) when the page is loaded, get the html element of button via its runtime id and call its click method. ( for simplicity reason I don’t consider whether method click still works in other browsers )


image.png


when you launch the test page, the event handler for Refresh will be called:


image.png


Approach2 – trigger via function htmlbSubmitLib

this approach could not only trigger ABAP event via Javascript but also could pass the value of Javascript variable to ABAP backend.

This approach also needs a hidden button. I use ActiveX to retrieve three attributes of the word application installed in my laptop: version, user name and installation path. The event trigger is done via function htmlbSubmitLib.image.png

in Chrome development tool we can find the function htmlbSubmitLib is implemented in script file events.js, and its MIME path /bc/bsp/sap/thtmlb_scripts.


Also you could find its signature and source code in Chrome debugger. Since I have totally three parameter to pass so I specify paramCount as 3,

and param1, param2 and param3 as wordVersion, username and path accordingly.


image.png


Here are the three attributes observed in Javascript debugger which will be passed to backend:


image.png



And implement the event handler in ABAP as below, in the runtime it is triggered:


image.png


And all three attributes are available in ABAP now:


image.png


Using process monitor I have observed the word application process which is started via ActiveX ( via option /Automation -Embedding ).

image.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10099 0
使用JavaScript在HaaS EDU K1上实现文字显示
当前HaaS EDU K1已经支持通过JS轻应用方式进行开发调试了,这块开发板带着OLED屏,而底层的AliOS Things已经支持图形库,所以可以通过轻应用的开发方式,尝试进行GUI相应的开发。
128 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13896 0
使用JavaScript在Canvas上画出一片星空
随着Html5的迅猛发展,画布也变得越来越重要。下面我就写一个关于在canvas上画出一片星空的简单的代码的示例。 理论基础 初始化一个canvas,获得一个用于绘制图形的上下文环境context。
965 0
使用JavaScript动态的添加组件
使用JavaScript进行动态的网页窗体组件的添加是一件很方便也很容易实现的事情。话不多说,边看代码边做解释吧。 准备工作 由于html页面中不可以添加java代码,所以我在jsp页面中进行了测试。
788 0
JavaScript使用原型判断对象类型
1. constructor属性 在JavaScript创建对象(二)——构造函数模式中,我们说过可以使用对象的constructor属性判断对象的类型:p1.constructor === Person,可能当时就有细心的读者会想,我们并没有给这个对象添加过constructor,这个属性是从哪儿来的呢?讲过原型之后,我们知道这个属性是原型中的,所以一般重写原型时也都会把constructor补上。
1134 0
两种使用JavaScript触发ABAP事件的技术手段
两种使用JavaScript触发ABAP事件的技术手段
17 0
不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器
不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器
14 0
+关注
2628
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载