开发者社区> python技术君> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 使用 SAP UI5 ABAP Repository 部署本地 SAP UI5 应用到 ABAP 服务器的单步调试
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

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

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

相关文章
手把手带你部署Java项目到Linux服务器
手把手带你部署Java项目到Linux服务器
0 0
提高 web 性能!nginx 和 php-fpm 分别部署在不同服务器
提高 web 性能!nginx 和 php-fpm 分别部署在不同服务器
0 0
第一个部署在服务器上的Java项目
“飞天加速计划”圆梦第一个JAVA项目
0 0
内网部署Windows Server 2012的WSUS补丁服务器(下)
内网部署Windows Server 2012的WSUS补丁服务器(下)
0 0
内网部署Windows Server 2012的WSUS补丁服务器(上)
内网部署Windows Server 2012的WSUS补丁服务器
0 0
宝塔面板部署DV免费证书(web服务器nginx)
宝塔面板部署DV免费证书(web服务器nginx)
0 0
部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器
部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器
0 0
使用服务器ECS部署网站后感想
讲述了我是如何利用服务器ESC搭建云上简历,以及对于学习的想法
0 0
【Nginx部署Vue】在服务器上快速使用Nginx部署Vue项目
今天教大家使用Nginx快速的将Vue打包好的Dist文件部署在服务器上供他人访问
0 0
使用aliyunECS服务器+宝塔面板部署springboot后端项目并测试接口
在部署过程中遇到了很多问题,解决起来也是十分繁琐,这里写个笔记记录一下遇到的问题和思路 这里我先打算测试以下后端接口,前端代码还没有进行运行。 还没有购买域名,因为域名需要备案时间要一周所以暂时使用公网ip进行访问。
0 0
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
网站/服务器取证 实践与挑战
立即下载
固守服务器的第一道防线——美联集团堡垒机的前世今生
立即下载
机器学习在大规模服务器治理复杂场景的实践
立即下载


http://www.vxiaotou.com