使用 SAP UI5 ABAP Repository 部署本地 SAP UI5 应用到 ABAP 服务器的单步调试

简介: 使用 SAP UI5 ABAP Repository 部署本地 SAP UI5 应用到 ABAP 服务器的单步调试

CL_GUI_FRONTEND_SERVICES 提供了 GET_SAPLOGON_ENCODING 方法,能返回 SAPGUI 环境下默认的系统 System Code page 值。


使用函数 SCP_CODEPAGE_FOR_LANGUAGE 获得系统当前的 Code Page:


输入参数为当前系统登录语言。

e6e1e280c97c3675ae0939f753e45c64.png

这里得知,语言 E 的 System Code page 为 4103:


TCP00 数据库表里,4103 是字符集 UTF16-LE 在 ABAP 系统的编号。

0b43231d67c975893a3a743c8774c0cd.png

这个 FETYPE 是 Frontend Type 的意思吗?值为 MS,是指 Microsoft 操作系统吗?

566a6d28b6115b2a3cd0886c2d2187b7.png

frontend codepage 通过 CALL 调用之后,值变为 1160:

e22f7fdad6b4dcdb6b5cac8d91b08044.png

在 TCP00 数据库表里,1160 Code Page 对应的 CPCompany 为 MS,果然是 Microsoft 的意思。这里还有其他的 provider company,比如 IBM,SAP 等。

e8f5d286031cccbfff6fcccdbf7e1f8a.png

CPENCODING 的值 为 4:ISO/ASCII-base, 8 bits

b6db72937f9f4bc724f292fab7d05cf4.png

01- one byte characters

08d97069cdb004e87fb684073001afef.png

SCP_GET_JAVA_NAME, 传入是 ABAP 格式的 code page 值 1160,输出一个字符串,Cp1252,这是 Java 世界里的 Code page 名称?

e22f7fdad6b4dcdb6b5cac8d91b08044.png

默认使用 Java Code Page:cp1252

8c566d4d3939fad8a68ee196962bf170.png

根据 cp1252 和 J,进行逆运算,可以反得出 1160,这是 ABAP 和 Java Code page 的互相转换。

1e1d9767bb6e6a7a28f4136dc7b5e239.png

因此执行报表,打印出的默认 code page 为 Cp1252,就是这么来的。

18824acfa555d10007358817f9523f5f.png

在弹出框手动输入 external code page,比如 UTF-8:

9501f3241b281fba45bf701c59423064.png

UTF-8 的 ABAP encoding 编号是 4110:

34bd40705e2325bee996c41c93b7d0a8.png

rv_upload_parameters-code_page_ui 变量维护的就是用户在弹出对话框里手动输入的 code page:

8c566d4d3939fad8a68ee196962bf170.png

UTF-8 是 ABAP ENCODING 的编号,UTF8 是对应的 Java 编号:

b6395ad3a4d796bd250ab1a1630e7253.png

只要是用 4110 就行:

84ccf965596d12d13a950defc0ee3125.png

这里的 CPCOMPANY 换成了 ISO,而不是之前的 MS - Microsoft

b6395ad3a4d796bd250ab1a1630e7253.png

接下来就是我们熟悉的逻辑了,将 encoding 格式为 UTF-8 的 xstring 二进制内容,连同 UTF-8,一起传递到 CL_ABAP_CONV_IN_CE 的 create 方法里:

78ce1da9a37ea89ed9b30d212c052b0f.png

/ui5/cl_ui5_rep_utility 提供了很多有用的工具方法,比如在 xstring 和 string 之间互相转换的 convert_xstring_2_string 方法:

25bcf99a29f6f334038b73e9c4ae7b78.png

上面这个例子,就是把 iv_xstring 变量里包含的 binary 值,基于 code page 4110,转换成字符串

a9b486143b8e9b0149f27f5d529c55b9.png

目录
相关文章
|
5月前
|
开发者 数据库
使用 SAP ABAP 代码下载一个 note 到本地 ABAP 系统
使用 SAP ABAP 代码下载一个 note 到本地 ABAP 系统
|
12月前
|
存储 JavaScript 前端开发
使用纯 ABAP 开发 SAP UI5 应用(一):abap2UI5 开发环境搭建介绍
使用纯 ABAP 开发 SAP UI5 应用(一):abap2UI5 开发环境搭建介绍
|
Java BI 数据库
使用 SAP UI5 ABAP Repository 部署本地 SAP UI5 应用到 ABAP 服务器的单步调试
使用 SAP UI5 ABAP Repository 部署本地 SAP UI5 应用到 ABAP 服务器的单步调试
|
中间件
使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法
使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法
|
JavaScript Linux
SAP UI5 应用在 Business Application Studio 里的构建单步分析
SAP UI5 应用在 Business Application Studio 里的构建单步分析
|
API
到底什么样的ABAP系统能运行Fiori应用
到底什么样的ABAP系统能运行Fiori应用
77 0
到底什么样的ABAP系统能运行Fiori应用
|
Web App开发
如何查找UI5应用对应在ABAP Netweaver服务器上的BSP应用名称
如何查找UI5应用对应在ABAP Netweaver服务器上的BSP应用名称
111 0
如何查找UI5应用对应在ABAP Netweaver服务器上的BSP应用名称
|
存储 资源调度 前端开发
本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?
订阅专栏 这是 Jerry 2021 年的第 29 篇文章,也是汪子熙公众号总共第 300 篇原创文章。 之前 Jerry 的两篇文章,分别介绍了如何在本地使用 Visual Studio Code 创建一个 SAP Fiori Elements 应用,以及使用 Fiori Elements Controller Extension 理念,对该 Fiori Elements 应用进行二次开发的具体步骤。
本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?