你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

SAP 将事务代码封装为Internet服务,可供第三方系统通过URL打开SAP

2022/1/1 8:47:38

目录

具体可分以下几步去完成

 一、创建Internet服务

二 、创建程序,分配事务代码

三、SICF创建虚拟服务

四、URL传参,调整html


具体可分以下几步去完成

 一、创建Internet服务

SE80,创建Internet服务,设置传参(~TRANSACTION:值为TCODE<ZGSTEXT>)

二 、创建程序,分配事务代码

 SE38创建程序(ZGXTEST_ITS),创建100屏幕        

REPORT zgxtest_its.

DATA ZTS TYPE C LENGTH 20 .
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
*  ZTS = 1234.
*  SELECT SINGLE ZITS
*    FROM ZTS_ITS
*    INTO @DATA(V_FIELD) .
*   ZTS = V_FIELD.
ENDMODULE.

  右击屏幕,附加功能,创建HTML模板,发布

 创建事务代码ZGSTEXT

三、SICF创建虚拟服务

SICF创建虚拟服务

 

 GUI接口选Y,GUI配置如下

 登录数据如果设置了,就不需要登录直接访问,没设置的话,需要每次访问都登录一下

 处理器清单,填入处理类(CL_HTTP_EXT_ITS)

其他页签不用管,激活测试服务就行(会生成一个地址)

正常的扫码枪做到这一步就行了,不涉及到url页面跳转

四、URL传参,调整html

通常来说,没有这种系统跳转的需求,一般情况都是接口去处理。用于极个别需求的时候要注意这种方式也是有漏洞的,就是说URL跳转的时候互相访问的系统之间没有安全证书,所以说要做的时候要互相达成协议。

请谨慎使用!!

测试服务进来通常页面上是无法获取URL后面跟的参数的

这个地方是要调整生成的Html模板的, 先找到这个这个页面上输入框的name

 SE80进入生成的100模板,找这个name对应的value,改掉它

 这样再进来就会直接取到屏幕上了

 js脚本测试:


 <script type="text/javascript" language="Javascript">
    var url = window.location.href;
    alert(url);
    const params = new URLSearchParams(url);
    window.test;
    test = params.get('sap-client') ;
    alert(test);
</script>