目录
一、ITS 是什么?
技术演进与两大分支
两大应用场景分支
二、ITS 的架构与角色
1、集成 ITS 完整架构(当前主流)
(1)用户端
(2)ICF 接入层
(3)ITS 引擎层
(4)Dynpro 运行时
2、通信流程
三、开发流程(逐步操作)
阶段一:自定义 ITS 服务入口
1、在SAP GUI 中输入 SICF 进入服务配置
2、配置 its 子元素
3、配置服务的 GUI 接口
4、配置登陆用户名
5、处理器清单中填写请求处理器 “CL_HTTP_EXT_ITS”
6、错误页配置,选择系统登陆 => 配置
7、配置页面默认路径
阶段二:ABAP 端开发(底层程序+屏幕)
1、创建 ABAP Dialog 程序 YRFMAIN
2、在 SE93 为这个程序创建事务代码 YRF
3、在 SE80 创建名称为 YRF 的 Internet 服务
阶段三:ITS 服务相关开发
1、SE80 创建 Internet Service(重要!!)
2、发布模板
阶段四:测试页面
四、ITS HTML 模板核心语法
1、字段引用
2、条件控制
3、循环渲染内表
4、按钮与功能码
一、ITS 是什么?
ITS 的全称是 Internet Transaction Server(互联网事务服务器),是 SAP 体系中将 Dynpro 屏幕转化为 Web 页面的核心技术,是 Web 浏览器与 SAP 后端系统之间的桥梁。
核心作用:将SAP GUI的 Dynpro 屏幕(通常是文本和表格形式)动态地转换成HTML格式,从而让用户通过标准的Web浏览器(无需安装SAP GUI)访问和操作SAP系统。
技术演进与两大分支
ITS 经历了两代架构演进,当前主流使用的是集成式 ITS:
- 独立 ITS(Standalone ITS):R/3 时代的早期方案,ITS 作为独立服务器部署,通过 DIAG 协议连接 ABAP 后端,现已基本淘汰。
- 集成 ITS(Integrated ITS):从 Web AS 6.20 开始,ITS 引擎直接集成在 ABAP 应用服务器内部,基于 ICF(互联网通信框架)运行,也就是我们通过 SICF 配置的模式,无需单独部署服务器。
两大应用场景分支
- SAP GUI for HTML(Web GUI):完整还原 SAP GUI 的功能与布局,适配 PC 端浏览器,可运行几乎所有标准事务码,多用于替代桌面客户端、远程运维。
- ITS Mobile:针对 PDA、手持扫码枪等移动端设备优化的轻量方案,简化 HTML 结构、采用无表格布局、适配小屏幕,是仓储物流、生产车间扫码场景的主流方案,本笔记的配置流程均属于 ITS Mobile 场景。
二、ITS 的架构与角色
1、集成 ITS 完整架构(当前主流)
(1)用户端
用户只需通过浏览器、PDA 扫码设备访问 URL 即可,无需安装 SAP GUI,部署和运维成本低。
(2)ICF 接入层
- 是 ABAP 系统的网络入口,对应事务码 SICF 配置的服务节点
- 接收 HTTP/HTTPS 请求,通过请求处理器 CL_HTTP_EXT_ITS 将请求转发给 ITS 引擎
(3)ITS 引擎层
- 集成在 ABAP 内核中,负责解析 Dynpro 屏幕元数据
- 加载对应主题的 HTML 模板,将屏幕字段、按钮、消息等动态渲染为 HTML 页面
(4)Dynpro 运行时
- 执行业务程序、处理屏幕逻辑,和 SAP GUI 后端的运行逻辑完全一致
- 业务代码无需为 ITS 做特殊改造,一套 Dynpro 可同时支持 SAP GUI 和 ITS 访问
2、通信流程
- 独立 ITS 时代:ITS 服务器 ↔ ABAP 后端使用 DIAG 协议(与 SAP GUI 通信协议一致)
- 集成 ITS 时代:ITS 引擎与 Dynpro 运行时在同一实例内,直接内部调用,不再走网络 DIAG;仅客户端 ↔ 服务器之间使用 HTTP/HTTPS 协议
- DIAG协议:ITS与SAP后端系统之间使用的协议是 DIAG(动态信息和操作网关),也就是传统 SAP GUI 与服务器之间用来通信的标准协议。
三、开发流程(逐步操作)
阶段一:自定义 ITS 服务入口
当浏览器访问这个路径时,直接启动 SAP ITS 引擎
1、在SAP GUI 中输入 SICF 进入服务配置
2、配置 its 子元素
进入路径/default_host/sap/bc/gui/sap/its/,右击 “ its ”创建一个新的子元素 YRF
3、配置服务的 GUI 接口
服务数据中 “GUI 接口”选择“是”,并进行GUI配置
GUI 配置中填写核心参数,完整说明如下:
| 序号 | 参数名称 | 值 |
|---|---|---|
| 1 | ~TRANSACTION | YRF |
| 2 | ~THEME | 99 |
| 3 | ~ITSMOBILE | 1 |
| 4 | ~ITSMOBILEELEMUNITS | PX |
| 5 | ~ITSMOBILEELEMFACTOR | 15 |
| 6 | ~ITSMOBILEMSGSOUND | 1 |
| 7 | ~ITSMOBILECSSINCLUDE | MOBILE_BIG |
4、配置登陆用户名
配置登陆数据中的用户名(控制后续调用免登录);一定要勾选“使用所有登陆过程”,如不勾选浏览器会反复跳出输入用户名弹窗
5、处理器清单中填写请求处理器 “CL_HTTP_EXT_ITS”
6、错误页配置,选择系统登陆 => 配置
7、配置页面默认路径
阶段二:ABAP 端开发(底层程序+屏幕)
1、创建 ABAP Dialog 程序 YRFMAIN
此处程序开发省略,,,需要确保在 SAP GUI 中可以跑起这个程序。
2、在 SE93 为这个程序创建事务代码 YRF
3、在 SE80 创建名称为 YRF 的 Internet 服务
右击“包名称” → 创建 → 其它(1)→ Internet 服务,Internet 服务和事务代码都填 YRF
阶段三:ITS 服务相关开发
1、SE80 创建 Internet Service(重要!!)
SE80 → 右击需要转换成 ITS 服务的屏幕→下拉选附加功能→ 创建 HTML 模板→输入服务名 YRF,主题默认 99,生成样式选择MOBILE4 Mobile Devices (No HTML Tables) → 创建。
界面字段说明
| 字段 | 你的值 | 含义 |
|---|---|---|
| Internet 服务 | YRF | 你要操作的 ITS 服务名称,这是自定义服务名 |
| 主题 | 99 | 模板主题,一般用于区分不同样式 / 设备 |
| HTML 模板名称 | YRFMAIN | 生成的 HTML 模板名称,后续会和 Dynpro 绑定 |
| 屏幕编号 | 8888 | 对应 Dynpro 的屏幕号,这里是自定义值 |
| 生成样式 | MOBILE4 Mobile Devices (No HTML Tables) | 专门为移动端优化的无表格布局样式,适配手机 / PDA |
2、发布模板
开发者如果认为 SAP 自动生成 HTML 页面丑或不适配设备,完全可以自行修改 HTML 代码优化页面。
注意:每次修改完成代码后,一定要点击发布模板!!!
阶段四:测试页面
进入 SICF ,右击前面介绍的创建的服务节点 “YRF”,选择测试服务即可。
四、ITS HTML 模板核心语法
ITS 模板是在 HTML 中嵌入 ITS 控制语句,动态渲染 Dynpro 字段与逻辑,核心语法如下:
1、字段引用
使用 #字段名 引用 Dynpro 屏幕上的字段变量:
<!-- 渲染物料号输入框 --> <input type="text" name="~field01" value="#MATNR" class="input">2、条件控制
通过 #if / #else / #endif 控制元素显隐,支持系统变量、屏幕字段判断:
#if SY-MSGTY = 'E' <div class="error-msg">#MESSAGE</div> #elseif SY-MSGTY = 'S' <div class="success-msg">#MESSAGE</div> #endif3、循环渲染内表
通过 #loop / #endloop 遍历内表,生成列表:
<div class="list"> #loop IT_MAT_LIST <div class="item">#MATNR - #MAKTX</div> #endloop </div>4、按钮与功能码
通过 ~okcode 触发 Dynpro 的 OK-CODE,与 SAP GUI 按钮逻辑完全一致:
<button type="submit" name="~okcode" value="QUERY">查询</button> <button type="submit" name="~okcode" value="SAVE">保存</button>================================================================
欢迎指正。。。ITS + HTML 的语法持续更新。。。。