目录
具体可分以下几步去完成
一、创建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>