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子文件夹里即是所有可用的数据元素。排在第一位的就是描述布尔类型的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
这个新的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的ABAP, Java和JavaScript乱炖
- ABAP开发人员未来应该学些什么
- Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现
- Jerry的ABAP原创技术文章合集
- 300行ABAP代码实现一个最简单的区块链原型
- 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
- 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
- ABAP vs Java, 蛙泳 vs 自由泳
- 聊聊C语言和ABAP
- 动手使用ABAP Channel开发一些小工具,提升日常工作效率
- 我用ABAP做过的那些无聊的事情
- 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
- 使用Visual Studio Code编写和激活ABAP代码
- 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧
- 在SAP云平台ABAP编程环境上编写第一段ABAP程序
- SAP官方发布的ABAP编程规范
- ABAP Code Inspector那些隐藏的功能,您都知道吗?
- 还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧
- ABAP Netweaver体内的那些寄生式编程语言
- 从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀
- 云端的ABAP Restful服务开发
- 如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
- 使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输
- 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用
- Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现
- Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试
- SAP云平台上的ABAP编程环境里如何消费第三方服务
- ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了
- 学而不思则罔 - SAP云平台ABAP编程环境的由来和适用场景
- SAP云平台里的三叉戟应用
- 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用
- SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?
相关推荐
“abap语法.chm”和“abap语法.chw”文件很可能是ABAP的参考手册或词典,提供了完整的ABAP关键字列表和相关解释。这些文件对于学习和查询ABAP关键字非常有用,因为它们通常包含详尽的描述、用法示例以及可能的错误...
ABAP是高级企业应用程序语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。ABAP语言适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2 等主流数据库系统。 ...
ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发SAP系统中的业务应用...文件名“ABAP语法详解教材”表明这是一份综合性的学习资料,涵盖了从基础到进阶的ABAP编程知识。
在S4 ABAP新语法中,开发者可以利用一系列更新的关键字和特性来提高代码的效率和可读性。以下是对这些关键特性的详细介绍: 1. **DATA**: `DATA`关键字用于声明新的变量或数据结构。在S4 ABAP中,你可以更灵活地...
### ABAP4 程序语法与格式详解 #### 概览 本文旨在全面解析ABAP4编程语言的基础语法及格式规范,通过详细介绍各种语法元素和格式规则来帮助开发人员...希望本文能为学习和使用ABAP4编程语言的人士提供有价值的参考。
ABAP编辑器是SAP系统中的一个集成开发环境,提供了代码编辑、编译、调试和测试等功能。 ABAP语法特点: * 由各自独立的语句构成,每个语句结束必须要用句号。 * 单词之间至少要用一个空格分隔。 * 一个语句可以跨...
作为SAP的开发平台,ABAP提供了一系列的语法和结构,使得开发者可以构建复杂的业务逻辑和应用程序。下面我们将深入探讨ABAP的基本语法。 1. **数据类型**: ABAP支持多种数据类型,包括字符型(CHAR),数值型...
"abap语法大全中文版"是一个针对ABAP初学者和专业人士的资源,提供了全面的ABAP语言语法参考。这个压缩包文件"ABAP4_Chinese_Online_Help.rar"包含了一个名为"ABAP4_Chinese_Online_Help.hlp"的帮助文档,该文档以...
ABAP(Advanced Business Application Programming)是SAP系统中用于企业应用开发的主要编程...通过深入学习和实践这些ABAP语法和概念,你将能够熟练地在SAP环境中编写高效、可维护的业务代码,实现企业的信息化需求。
首先,ABAP语句由独立的单元组成,每个单元以ABAP关键字开始,单词之间至少有一个空格分隔。语句以句号结尾,且可以跨多行。此外,ABAP不区分大小写,但为了提高代码可读性,通常将关键字大写,操作数小写。注释以星...
在ABAP语法概述中,我们注意到ABAP语句是由独立的关键词组成,每个语句的首单词必须是ABAP关键字,单词间至少有一个空格分隔。语句结束通常以句号为标志,一行中可以包含多个语句,只要不遇到句号,就被视为延续的...
ABAP的基本语法特点是基于独立的语句,每个语句以ABAP关键字开始,单词间至少有一个空格分隔。句号用于结束语句,但多行语句可以通过不使用句号来连接。ABAP不区分大小写,通常建议将关键字大写以提高代码可读性。...
对于初学者来说,ABAP入门教程通常会从基础语法讲起,逐步过渡到报表编写、对话流程处理等高级主题,使得初学者能够逐步掌握ABAP编程的核心概念和技术,进而在SAP R/3平台上进行开发和定制工作。
本文将对ABAP SQL Functions for Strings进行详细的语法总结。 首先,我们来讨论一下如何在ABAP SQL中跨Client取数。通常情况下,SQL查询默认在当前Client的范围内执行,但有时我们需要在不同Client间操作数据。...
总之,《ABAP学习宝典语法大全进阶指南》是一份非常有价值的资源,不仅为初学者提供了全面的学习路径,也为经验丰富的程序员提供了深入的技术细节和解决问题的方法。通过这份指南的学习,开发者可以更好地掌握ABAP/4...
- **语句构成**:由独立的语句组成,每个语句以ABAP关键字开头,关键字和后续词之间需至少有一个空格分隔。 - **语法格式**:语句结束必须以句号结尾;支持多行语句,只要不遇句号,即视为同一语句;不区分大小写,...
ABAP(Advanced Business Application Programming)是一种专为SAP系统开发的应用程序编程语言,它被广泛应用于企业级业务系统的开发和维护。ABAP语法是编写ABAP程序的基础,下面将详细介绍ABAP语法中的数据类型、...
以上是ABAP语法的一些核心概念,学习ABAP不仅需要掌握这些基础知识,还需要通过实践不断熟悉SAP系统环境和业务逻辑。理解并熟练运用ABAP语法,将有助于开发高效、稳定的SAP应用程序,满足企业的业务需求。
在本文档中,我们将对 ABAP 的基础知识和应用进行系统性地总结和归类。 一、ABAP 基础知识 1.1 Basis TSTCT 事务代码文本 ABAP 中的 Basis TSTCT 是一种事务代码文本,用于描述事务的基本信息。 1.2 Sales ...