One new colleague in my team asked me that some code does not work as he expected. The confuse could be summarized into following source code:
DATA: lv_i TYPE int4 VALUE 1,
lv_s TYPE string,
lv_s2 TYPE string VALUE '1',
lv_ss TYPE sstring,
lv_s3 TYPE char18.
lv_s = lv_i.
lv_ss = lv_i.
lv_s3 = lv_i.
WRITE:/ strlen( lv_s ).
WRITE:/ strlen( lv_s2 ).
WRITE:/ strlen( lv_ss ).
WRITE:/ strlen( lv_s3 ).
Can you get the correct answer without hesitation?
The answer is: 2, 1, 19, 17, which confuses my colleague a lot. The reason for first result 2: According to ABAP help, when an integer value is converted to a string value, a blank character is automatically inserted to the last place and this space is also taken into consideration for result length.
In debugger we can observe this space in Hexadecimal value view so this is the reason why we get 2 and 1 for first two strlen.
For the third and fourth test, the variables with char type are used to store the converted value.
According to ABAP help, the blank is padded on the left, which could be observed below:
Although we can still observe the existence of trailing space character in debugger, why for these two variables, the last character is not considered by strlen?
Again the answer is in help, simply because char data object with fixed length will ignore it but String type will count.
So my suggestion to my new colleagues when they meet with “weird” behavior in ABAP: always check with ABAP help first.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
- `[IN {BYTE|CHARACTER} MODE]` 指定连接时是否区分字节模式和字符模式,默认情况下按字符模式进行连接。 - `[SEPARATED BY sep]` 可选参数,用于指定连接字符串之间的分隔符。 **示例**: ```abap DATA str1 TYPE...
资源名称:sap abap开发从入门到精通 内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库...
SAP ABAP(Advanced Business Application Programming)是SAP公司推出的一种高级业务应用编程语言,用于开发在SAP R/3和SAP NetWeaver平台上的应用程序。这些电子书提供了全面的资源,帮助学习者深入理解并掌握SAP ...
同时,"SAP开发自学必读"提示我们,这些资料可能包含了一些SAP开发的关键知识点,例如模块池编程(Seamless Workbench for ABAP,简称SE80),用于创建图形用户界面(GUI)的应用程序。 "SAP SAP开发自学入门到精通...
以下是一些核心的SAP ABAP知识点: 1. **基本语法**:ABAP语法与传统的编程语言类似,包括变量声明、条件语句(IF-THEN-ELSE)、循环(DO-WHILE, FOR)和函数调用。了解这些基本元素是开始编程的基础。 2. **数据...
《SAP ABAP实用程序开发攻略》这篇文档主要向初学者介绍了SAP ABAP语言以及其在SAP系统开发中的应用,涵盖从基础知识到数据类型和开发工具的详细解释。 首先,文档开篇提到SAP技术架构及发展历程,这为读者提供了一...
最全最易懂的SAP与ABAP字符的对应关系,MASTER DATA-主数据 Customer Master KNA1 Customer Basic Data KNB1 Customer Company Level Data客户的公司数据 KNVV Customer Sales Level Data 客户的销售数据 KNVP ...
《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAP ABAP开发的相关知识点,详细介绍了SAP ABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象...
ABAP是一种专为SAP系统设计的编程语言,而在ABAP中处理字符串时,SQL Functions提供了许多方便的方法。本文将对ABAP SQL Functions for Strings进行详细的语法总结。 首先,我们来讨论一下如何在ABAP SQL中跨Client...
本手册旨在为初级学员提供SAP ABAP的基本知识和实践经验,帮助他们快速掌握ABAP语言的基本语法和开发技术。以下是本手册的知识点概要: 一、ABAP基础语法 * ABAP语言的基本结构和组成 * 变量声明和赋值 * 数据类型...
SAP ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于在其ERP(企业资源规划)系统中创建和定制业务逻辑。在SAP ABAP 1.4.4版本的代码下载中,我们可以深入探讨这个版本的...
SAP ABAP Query 是 SAP 系统中一种用于创建自定义报表的强大工具,尤其适合那些对 SQL 不太熟悉或者没有数据库直接访问权限的用户。它提供了丰富的功能,使得开发人员可以构建复杂的数据查询,而无需编写大量的 ABAP...
2. **数据类型**:在ABAP中,有多种数据类型,如CHAR、STRING、INT、FLOAT等,还有自定义数据类型和域,用于定义变量和常量。 3. **内部表**:内部表是ABAP中的动态数组,用于存储和处理大量数据。它们可以灵活地...
《SAP ABAP官方教程》是一份针对SAP ABAP编程语言的重要学习资源,适合对这个领域感兴趣的初学者和有经验的开发者。ABAP(Advanced Business Application Programming)是SAP系统中的主要编程语言,用于开发企业级...
SAP ABAP 开发环境和开发工具介绍 SAP ABAP 开发环境和开发工具是 SAP 系统中最重要的组件之一,它提供了一个强大的开发平台,允许开发者创建、测试和部署 ABAP 程序。ABAP 是 SAP 系统中的主要编程语言,用于开发...
本资料包是针对SAP ABAP初学者的培训练习题,旨在帮助学习者掌握基本概念和技能,从而顺利入门。 首先,"Development naming rule_V1.1-2.doc"可能是一份关于ABAP开发中的命名规范文档。在编写ABAP代码时,遵循良好...
5. **内建函数和方法**:使用ABAP的标准函数(如CONCATENATE, SY-DATUM, SY-TIME等)和类(如CL_DATEUtils, CL_ABAP_TABLE_utilities等)进行日期时间处理、字符串操作和数据转换。 6. **表操作**:了解内部表...
在本课程“SAP ABAP开发学习——第19课:实战讲解”中,我们将深入探讨SAP ABAP(Advanced Business Application Programming)编程语言在实际项目中的应用。ABAP是SAP系统的核心开发语言,用于构建企业级业务应用...
- 第一天的课程主要介绍了SAP ABAP的基础知识,包括ABAP的工作环境、开发工具——SAP Development Workbench(SE80),以及ABAP的数据类型、变量、常量和注释的基本概念。此外,还可能涉及基本的语法结构,如IF......