有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?

Jerry在之前的文章多次提过,SAP Cloud Platform ABAP编程环境上的ABAP语法,只是广大SAP顾问们在On-Premises环境上使用的ABAP的一个子集。换句话说,On-Premises环境下能正常工作的ABAP代码,单纯地复制粘贴到云环境上之后,可能就无法通过编译了。看一些例子:

MOVE

修复这个语法错误很简单,直接用赋值操作“=”替换MOVE即可。话说这种错误应该只会出现在古旧的历史遗留代码上吧(Legacy Code), 大家现在写代码应该都不会用MOVE进行单纯的赋值操作了。

没有Released for Cloud的Data Elements

每个ABAP Development Tool里创建的ABAP Cloud项目里都有一个Released Objects文件夹,里面维护着一个ABAP开发人员在云环境里能使用的对象清单,在Data Elements里即是所有可用的数据元素(Data Elements). 排在第一位的就是描述布尔类型的ABAP_BOOLEAN.

同样是因为历史原因,大家知道在On-Premises环境里要定义一个布尔变量,我们可以有许多种选择:boole_d, abap_bool, boolean等等。

但是到了云上,大家还是老老实实使用清单里维护的那些类型吧。

不是所有的SYST结构字段都能直接访问

结构体SYST里包含了很多系统字段,能让ABAP开发人员方便地获得一个ABAP应用执行时的各种维度的信息。

在ABAP云环境上,使用这些字段需要特别小心,以免遇到形如"Access to the field "SY-DATUM" is not permitted in the restricted language scope"这种语法错误:

正确的方式,应该用CL_ABAP_CONTEXT_INFO=>GET_SYSTEM_DATE这种工具类提供的方法。

下面是一些其他例子。

幸运的是,因为我们是在ABAP Development Tool这个IDE里编程,所以不用硬记这些On-Premises到ABAP Cloud上的转换规则。大多数时候,依靠IDE的语法报错或者Quick Fix功能都不难找到修复语法错误的线索。



当然如果嫌这种一条条修复的方式速度较慢,或者想象这样一个场景:您的ABAP On-Premises系统上有一个开发包,里面包含了很多ABAP二次开发代码,在用Jerry之前文章 使用abapGit在ABAP系统和SAP云平台ABAP环境之间进行代码传输 介绍的办法将这些代码迁移从On-Premises系统迁移到云上之前,您期望做一次统一的“Cloud Readiness”检查,一次性把所有上云的隐患都列出来。

传统的ATC检查(ABAP Test Cockpit, 一种ABAP代码检查工具)此时再次有了用武之地。按照这篇SAP社区博客提到的note去做,在一个ATC中央检查系统上安装包含了新的ATC检查选项的实现note:

How to check your custom ABAP code for SAP Cloud Platform ABAP Environment
https://blogs.sap.com/2018/10/02/how-to-check-your-custom-abap-code-for-sap-cloud-platform-abap-environment/

这个新的ATC检查选项名称为SAP_CP_READINESS_REMOTE,能帮助我们早在ABAP代码迁移到云环境之前,在On-Premises环境里就提前找出所有阻止当前被检查的ABAP代码上云的障碍。


当然这种检查反方向执行也是可以的,即在SAP Cloud Platform ABAP环境里,触发连接的ABAP On-Premises环境里的ATC检查。由于是云环境访问On-Premises环境,所以需要SAP Cloud Connector完成内外网穿越:

从Fiori Launchpad里进入Custom Code Migration这个应用,创建一个新的迁移项目:

迁移目标当然是SAP Cloud Platform ABAP环境,而源头是ABAP On-Premises环境,所以需要维护一个指向该环境的Destination,这个Destination在SAP云平台上创建。

此时我们就可以在Fiori UI上触发ABAP On-Premises系统上的ATC检查,并监控其进度。

检查完毕后,可以根据提示返回On-Premises环境进行代码调整。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/11749900.html

时间: 2024-11-06 07:21:04

有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?的相关文章

ABAP OO 开发语法整理

[转自 http://blog.csdn.net/saphome/article/details/6956933] 在类中,只能用TYPE 附加关键字指定数据类型. •TYPES: 一般的类型定义方法 •CONSTANTS: 一般的常数定义方法 只能用LIKE 引用本地数据对象. •DATA: var1 TYPE <TYPES 定义的类型或字典类型>. •DATA: var2 LIKE var1 <不能使用字典对象>. 用DATA 声明的公共属性如果加了READ-ONLY 附加 关

ABAP必备基础语法

ABAP基础知识     数据类型 C :字符串 D :日期型 格式为 YYYYMMDD 例:'1999/12/03' F : 浮点数 长度为8 I :整数 N :数值组成的字符串 如:011,'302' P : PACKED数 用于小数点数值 如:12.00542 T : 时间 格式为:HHMMSS 如:'14:03:00' X : 16进制数 如:'1A03' *-----------------------------------------------------------------

ABAP关键字SUBMIT的简单例子和学习小记

网上有关SUBMIT实现程序调用的例子稍显复杂,本文给出一个SUBMIT的小示例程序(代码见文末),实现了最简单的程序间调用及返回值,以及SAP官方文档中相关内容的翻译.解释. 本文链接:http://www.cnblogs.com/hhelibeb/p/5802398.html 转载请注明 SUBMIT - 短参考 语法 SUBMIT {rep|(name)} [USING SELECTION-SCREEN dynnr] [VIA SELECTION-SCREEN] [USING SELECT

ABAP关键字一览

O                            Relational operator: Byte positions occupied by 1     OBJECT                       External object       CREATE OBJECT              Generate       FREE OBJECT                Release     OCCURS                       Define

php-Eclipse对php中的namespace关键字报语法错误的问题

namespace是php5.3以上才支持的, 解决办法:升级IDE 切换Eclipse中的php版本 Window  > Preferences  > PHP  > PHP Interpreter  > PHP Version  > 5.3

[SAP ABAP开发技术总结]客户端文本文件、Excel文件上传下载

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 客户端文本文件或Excel文件导入与导出... 1 TEXT_CONVERT_XLS_TO_SAP. 1 ALSM_EXCEL_TO_INTERNAL_TABLE. 3 SAP_CONVERT_TO_XLS_FORMAT. 5 客户端文本文件或Excel文件导入与导出 TEXT_CONVERT_XLS_TO_SAP TEXT_CONVERT_XLS_TO_SAP函数可以将

ABAP开发顾问必备:SAP ABAP开发技术总结

声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html 该文档是根据我过去多年学习文档与工作文档总结而成,项目开发过程中我都会参考此文档,主要ABAP很多细节上的东西不可能你记得很牢固,或者你记得一时,但过不了几天做别的项目就会

ABAP学习(6):ABAP GUI和开发工具

ABAP GUI和开发工具 1.ABAP开发工具 SAP在软件中集成了ABAP程序的开发工具.使用Tcode:se80,可以打开object navigator,对象导航,可以快速查找我们开发的各种类型程序,包括pakage.Class.Program.Function Group.Function Module等. 查找到对应类型程序,直接点击就可以看到对应ABAP代码. 使用Tcode:se37,可以打开Function Builder.可以创建.查找.修改Function Moddule.

如何使用SAP Intelligent Robotic Process Automation自动操作Excel

今天是鼠年正月十二.这是Jerry鼠年的第11篇文章,也是汪子熙公众号总共第210篇原创文章. 之前Jerry的文章 使用ABAP操作Excel的几种方法,介绍的是通过ABAP这门编程语言去操作Excel的方法. 除了编程语言之外,SAP新发布的SAP Intelligent Robotic Process Automation(简称SAP iRPA),提供了强大的企业级自动化流程解决方案,善加利用,可以在不需要编程的情况下,像使用编程语言一样灵活地操作Excel. 我们来看个具体而又简单的例子