ABAP语法简明资料
- 格式:doc
- 大小:3.00 MB
- 文档页数:64
abap using clients 语法ABAP(Advanced Business Application Programming)是SAP系统的开发语言,用于开发SAP系统的各种功能和模块。
在ABAP中,使用"USING"语法是一种常见的模式,用于传递参数或引用数据结构。
"USING"语法在ABAP中主要用于结构参数的传递。
它允许在子程序或函数中直接访问外部结构体的字段,而不需要在子程序或函数内部定义该结构体。
这样可以简化代码并提高可读性。
语法如下:USING [结构的名称] [ = [值的声明]]其中,"结构的名称"是您要传递的结构体的名称,"值的声明"是可选的,用于指定传递给子程序或函数的实际参数值。
下面是一个示例,演示了如何使用"USING"语法传递结构参数:DATA: BEGIN OF itab OCCURS 0,field1 TYPE i,field2 TYPE i,END OF itab.CALL SCREEN 100 USING itab.在上面的示例中,我们定义了一个内部表"itab",其中包含两个整数类型的字段"field1"和"field2"。
然后,我们使用"CALL SCREEN"语句调用屏幕100,并使用"USING"语法将"itab"作为参数传递给屏幕。
在屏幕的执行过程中,可以直接访问和使用"itab"中的字段。
需要注意的是,"USING"语法只能用于传递结构参数。
如果需要传递其他类型的参数,需要使用其他语法,如"VALUE"或"IMPORTING"。
另外,"USING"语法不仅可以用于屏幕的调用,还可以用于子程序和函数的调用。
SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为 YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------* 变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<decimals> 小数位数exp:DATA : COUNTER TYPE P DECIMALS 3.NAME(10) TYPE C VALUE 'DELTA'.S_DATE TYPE D VALUE '19991203'.exp:DATA : BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE DECIMALS 2,END OF PERSON.另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明).exp:CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.STATICS 关键字声明的变量仅在目前的程序中使用, 结束后会自动释放语法:STATICS <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功SY-UNAME: 当前使用者登入SAP的USERNAME;SY-DATUM: 当前系统日期;SY-UZEIT: 当前系统时间;SY-TCODE: 当前执行程序的Transaction codeSY-INDEX: 当前LOOP循环过的次数SY-TABIX: 当前处理的是internal table 的第几笔SY-TMAXL: Internal table的总笔数SY-SROWS: 屏幕总行数;SY-SCOLS: 屏幕总列数;SY-MANDT: CLIENT NUMBERSY-VLINE: 画竖线SY-ULINE: 画横线TYPE 关键字用来指定资料型态或声明自定资料型态Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 关键字跟TYPE关键字使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是 LIKE 用在已有值的资料项, 如系统变量, 而TYPE关键字则是用在指定资料型态。
一数据类型和对象在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用的全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。
1.1 基本数据类型对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以是从 1 到 16 字节的任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。
在小数点后最多允许 14 个数字。
1.21.3 确定数据对象的属性如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用 DESCRIBE 语句。
语法如下:DESCRIBE FIELD <f> [LENGTH <l>] [TYPE <t> [COMPONENTS <n>]][OUTPUT-LENGTH <o>] [DECIMALS <d>][EDIT MASK <m>].将由语句的参数指定的数据对象<f>的属性写入参数后的变量。
DESCRIBE FIELDS 语句具有下列参数:1.3.1 确定字段长度要确定数据对象的长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD <f> LENGTH <l>.系统读取字段<f>的长度,并将值写入字段<l>。
1.3.2确定数据类型要确定字段的数据类型,利用DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:DESCRIBE FIELD <f> TYPE <t> [COMPONENTS <n>].系统读取字段<f>的数据类型,然后将值写入字段<t>。
除返回预定义数据类型 C、D、F、I、N、P、T 和 X 外,该语句还返回3 s 对于带前导符号的两字节整型4 b 对于无前导符号的一字节整型4 h 对于内表4 C 对于组件中没有嵌套结构的结构4 C 对于组件中至少有一个嵌套结构的结构要确定字段的输出长度,利用 DESCRIBE FIELD 语句使用 OUTPUT-LENGTH 参数,如下所示:DESCRIBE FIELD <f> OUTPUT-LENGTH <o>.系统读取字段<f>的输出长度,并将值写入字段<o>。
ABAP语法一、格式。
作用:设置或更改有效的输出格式。
注意:由Format设置的格式会影响到清淡的下一个输出操作,下一个输出命令或下一个新行。
附加ON对于转换贴切的输出格式变得更随意。
你也能设置静态的附加ON,OFF和n(对于颜色)。
1、颜色。
Format Color n [ON] or Format Color n[OFF]作用:行背景颜色。
N能有如下的价值。
OFF or COL_BACKGROUND Background (GUI-specific)1 or COL_HEADING Headers (grayish blue)2 or COL_NORMAL List body (bright gray)3 or COL_TOTAL Totals (yellow)4 or COL_KEY Key columns (bluish green)5 or COL_POSITIVE Positive threshold value (green)6 or COL_NEGATIVE Negative threshold value (red)7 or COL_GROUP Control levels (violet)清单颜色注意:每次一个新的事件(START-OF-SELECTION, TOP-OF-PAGE, ...)开始,这个系统的设置回复到COLOR 0。
附加.. INTENSIFIED和... INVERSE影响颜色的显示属性...COLOR对于线不起作用。
WRITE --- OUTPUT AS lineInclude<Line>(或更多广泛的Include<List>)对于行包含关系识别作为永恒,例如:LINE_TOP_LEFT_CORNER, LINE_BOTTOM_MIDDLE_CORNER。
Line不能有其他的显示属性。
如果像颜色(COLOR),背面VIDEO(INVERSE)或变强(INTENSIFIED)被设置,这些忽略输出。
ABAP 语法完整版SAP ABAP / 4 基础知识学习数据类型C:字符串D :日期型格式为YYYYMMDD 例: '1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED 数用于小数点数值如: 12.00542T : 时间格式为:HHMMSS 如: '14:03:00'X : 16 进制数如: '1A03'*-------------------------------------------------------------------------------------* 变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<decimals> 小数位数exp:DATA : COUNTER TYPE P DECIMALS 3.NAME(10) TYPE C VALUE 'DELTA'.S_DATE TYPE D VALUE '19991203'.exp:DATA : BEGIN OF PERSON,NAME(10) TYPE C,AGE TYPE I,WEIGHT TYPE DECIMALS 2, END OF PERSON.另外 , 有关 DATA 声明的指令还有: CONSTANTS( 声明常数 ) 、STATICS( 临时变量声明).exp:CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.STATICS 关键字声明的变量仅在目前的程序中使用, 结束后会自动释放语法 :STATICS <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了SYST 这个 STRUCTURE, 里面的栏位存放系统变量, 常用的系统变量有:SY-SUBRC: 系统执行某指令后 , 表示执行成功与否的变量,'0' 表示成功SY-UNAME: 当前使用者登入SAP 的 USERNAME;SY-DATUM: 当前系统日期 ;SY-UZEIT: 当前系统时间 ;SY-TCODE: 当前执行程序的Transaction code SY-INDEX:当前 LOOP 循环过的次数SY-TABIX: 当前处理的是 internaltable的第几笔SY-TMAXL: Internal table 的总笔数SY-SROWS:屏幕总行数 ;SY-SCOLS:屏幕总列数 ;SY-MANDT: CLIENT NUMBERSY-VLINE: 画竖线SY-ULINE: 画横线TYPE 关键字用来指定资料型态或声明自定资料型态Example:TYPES: BEGIN OF MYLIST,NAME(10) TYPE C,NUMBER TYPE I,END OF MYLIST.DATA LIST TYPE MYLIST.LIKE 关键字跟 TYPE 关键字使用格式相同, 如DATA TRANSCODE LIKE SY-TCODE.不同的是LIKE 用在已有值的资料项, 如系统变量 , 而 TYPE 关键字则是用在指定资料型态。
abap find语法
ABAP 的 FIND 语法用于在字符串中查找子字符串,并返回子字
符串的位置。
以下是使用中文编写的 FIND 语法的示例:
FIND 子字符串 IN 目标字符串.
在上述语句中,"子字符串"是要查找的字符串,"目标字符串"是
要在其中进行查找的字符串。
如果找到了子字符串,则系统返回子字
符串在目标字符串中的位置。
示例代码:
DATA: 目标字符串 TYPE STRING,
子字符串 TYPE STRING,
位置 TYPE I.
目标字符串 = 'ABAP 是一种编程语言,用于开发企业级应用程序。
'.
子字符串 = '编程语言'.
FIND 子字符串 IN 目标字符串.
IF sy-subrc = 0.
位置 = sy-fdpos.
WRITE: '子字符串在目标字符串中的位置:', 位置.
ELSE.
WRITE: '未找到子字符串'.
ENDIF.
上述代码中,我们定义了一个目标字符串和一个子字符串,并使
用 FIND 语句在目标字符串中查找子字符串。
如果找到了子字符串,
则将子字符串在目标字符串中的位置存储在位置变量中,并输出结果。
如果没有找到子字符串,则输出 "未找到子字符串"。
这是一个简单的使用 ABAP 的 FIND 语法在字符串中查找子字符
串的示例。
在实际应用中,您可以根据具体需求进行相应的调整和扩展。
abap 750新语法ABAP 7.50是2016年发布的SAP ABAP语言的最新版本,引入了许多新的语法和功能。
本文将详细介绍ABAP 7.50的主要新语法和特性。
一、内联声明ABAP 7.50引入了内联声明语法,允许在程序的任何位置声明局部变量和常量。
以前,ABAP要求在每个字段声明之前都要有一个DATA语句。
现在,您可以直接通过写出字段的完整声明来定义局部变量和常量。
例如:```abapDATA(lv_variable) = 'Hello World'.CONSTANTS(c_constant) = 'ABAP 7.50'.```这极大地简化了代码编写过程,使得代码更加简洁,易于阅读和维护。
二、条件操作符ABAP 7.50引入了条件操作符IF和SWITCH,它们可以用于更简洁的条件判断。
条件操作符可以避免冗长的IF-ELSEIF-ELSE语句,在一行内完成多个条件的判断。
例如:```abapIF lv_variable = 'Value1' THENlv_result = 'Result1'.ELSEIF lv_variable = 'Value2' THENlv_result = 'Result2'.ELSElv_result = 'Other'.ENDIF.```可以替换为条件操作符:```abaplv_result = COND #( WHEN lv_variable = 'Value1' THEN'Result1'WHEN lv_variable = 'Value2' THEN 'Result2'ELSE 'Other' ).```这使得代码更加紧凑,使得逻辑更容易理解。
三、可选的返回值ABAP 7.50允许在函数和方法声明中指定返回值是否可以为空(null)。
abap new语法
ABAP(高级商务应用程序编程语言)是一种面向业务应用的编程语言,用于SAP软件应用程序的开发和定制。
ABAP New语法是指ABAP编程语言的新语法特性,这些特性在较新的ABAP版本中被引入,旨在提高开发效率和代码可读性。
一些ABAP New语法的特性包括:
1. 内联声明变量,在ABAP 7.40版本及以后,可以使用DATA 关键字在一行中声明和初始化变量,而不需要使用单独的语句。
2. 表达式函数,引入了一些新的表达式函数,如COND和FILTER,用于简化条件逻辑和表格操作。
3. 类和方法,引入了更加现代化的类和方法定义语法,包括新的访问控制修饰符和方法参数的默认值。
4. 表达式语法,引入了一些新的表达式语法,如内联表达式和行表达式,用于简化代码和提高可读性。
以上只是ABAP New语法的一些特性,这些特性旨在使ABAP编程更加现代化和灵活。
开发人员可以通过使用这些新特性来提高其在SAP环境中的开发效率和代码质量。
当然,要充分利用这些新特性,开发人员需要熟悉并理解它们的用法和限制,以便在实际开发中加以应用。
ABAP OPEN DATASET 语法1. 概述ABAP OPEN DATASET 是一种用于在ABAP程序中打开外部文件的语法。
通过使用OPEN DATASET 语句,可以在ABAP程序中读取、写入和修改外部文件的内容。
本文将详细介绍 ABAP OPEN DATASET 语法及其用法。
2. OPEN DATASET 语法ABAP OPEN DATASET 语法如下:OPEN DATASET <filename>[FOR <mode>][IN <path>][BUFFERED BY <buffersize>][BYTE ORDER <byteorder>][CLIENT <client>][IGNORING CONVERSION ERRORS][MESSAGE <message>].其中,各参数的含义如下: - <filename>:外部文件的名称,可以是绝对路径或相对路径。
- <mode>:打开文件的模式,可以是以下之一: - ‘r’:只读模式- ‘w’:写入模式 - ‘a’:追加模式 - <path>:外部文件所在的路径。
-<buffersize>:缓冲区的大小,用于读取和写入文件,默认为 1024。
-<byteorder>:字节顺序,用于读取和写入二进制文件,默认为‘L’。
-<client>:客户端号,用于读取和写入远程文件,默认为当前客户端。
- IGNORING CONVERSION ERRORS:忽略转换错误。
- <message>:消息类型和消息号。
3. OPEN DATASET 用法示例下面是一些使用 OPEN DATASET 语法的示例:3.1 打开文件并读取内容DATA: lv_file TYPE string,lv_data TYPE string.lv_file = 'C:\temp\example.txt'.OPEN DATASET lv_file FOR INPUT IN BINARY MODE.DO.READ DATASET lv_file INTO lv_data.IF sy-subrc <> 0.EXIT.ENDIF.WRITE: / lv_data.ENDDO.CLOSE DATASET lv_file.3.2 打开文件并写入内容DATA: lv_file TYPE string,lv_data TYPE string.lv_file = 'C:\temp\example.txt'.OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE.lv_data = 'Hello, World!'.TRANSFER lv_data TO lv_file.CLOSE DATASET lv_file.3.3 打开文件并追加内容DATA: lv_file TYPE string,lv_data TYPE string.lv_file = 'C:\temp\example.txt'.OPEN DATASET lv_file FOR APPENDING IN TEXT MODE.lv_data = 'This is a new line.'.TRANSFER lv_data TO lv_file.CLOSE DATASET lv_file.4. 注意事项在使用 ABAP OPEN DATASET 语法时,需要注意以下几点:4.1 文件路径•文件路径可以是绝对路径或相对路径。
1 1. ABAP/4 Introduction Introduction ABAP/4(Advanced Business Application Programming)是SAP/R3目前唯一的系统发展工具, 属 4GL, 语法比较近似Visual Basic或JAVA, 和传统third-generation 语言, 如C,PASCAL 有很大不同, 在程序模块(Program Structure Module)可分以 下三个部分: 1.Sequential coding within processing block 与一般语言语法近似, 如IF,WHILE等, 但并没有GOTO叙述 2.Reports 呼叫一个独立的事件(Depending Event), 读取database 产生数据列表 3.Dialog 屏幕参数输入的对话框, 专门处理database 读取或异动的tranaction process
Basic Languange Overview 1.data element 宣告方式, 如数值, 字符数据变量宣告 2.操作数(operate)使用, 如 + - * / 3.Control element使用, 如Boolean 值 4.特殊数据格式, 如日期与时间 5.字符串字料处理function, 如部分字符串的截取 6.子程序或自定函数的呼叫 7.SQL语法使用 8.数据结构的使用, 如process internal table的宣告与使用
Reports Overview 1.Reports Task, 如报表屏幕预览或打印机打印的选择 2.Reports 模块是一个Stand-along 程序, 3.database读取方式, 如可定义logical database(与磁盘的physical storage对映) 4.报表数据的计算与产生 5.报表的输出
Dialog Overview 1.专处理database 的读取与异动, 如使用SQL 指令 2.Dialog 不是一个Stand-Along Progarm, 使用transaction code来产生屏幕对话框 3.由flow logic 控制, flow logic分成PBO(Process Before Output)与PAI(Process After Input) 2
2.Begin To Programming 2.1 ABAP/4 Editor Creating ABAP/4 Program 使用ABAP Workbench撰写程序(Choose Tools->ABAP/4 Workbench, Transaction Code: S001), 萤 幕如下:
可分成: 1.ABAP/4 Editor :针对简单的报表或程序, 仅使用几个组件或不使用 2.Obiect Browser :针对复杂的报表或程序, 如Dialog Transaction Module 撰写
使用ABAP/4 Editor 撰写程序 1.ABAP/4 Editor 画面如下(Transaction Code:SE38): 3
2.输入程序名称, 如果是新程序, 按下”Create”, 如果修改已存在程序, 则按下”Change”或F6键 在命名规则上, Reports程序为 Yaxxxxxx或Zaxxxxxx, a表application module简称, 如s表SD Dialog程序为SAPMYxxx或SAPMZxxx
3.输入程序Attribute
(1).Title:程序描述或功能说明 (2).Type:Execute mode: 1: Stand-along Program 如Reports I: Include Program M: Module Pool F: Function Group S: Subroutine Pool (3).Status:Program development status: P: SAP standard production program K: Customer production program S: System program T: Test program (4).Application: 程序所属的application module, 如F表 Financeial acounting (5).Development class: 用于同一系统中各个program, 如果不属任一class, 可使用$TMP 4
4.撰写Source Code Program 之后接的是程序名称, Write 是显示的意思, 会将所接的字符串在屏幕上显示, 注意每一 行最后要有一个 . (点), 表示叙述的结束, 储存后回ABAP/4 Editor画面
5. 执行程序 按”Execute”或F8键, 屏幕可见执行所得的结果
重要的编辑键
key Function F8 F5 F11 CTRL+F11
执行程序 复制游标所在列的内容 储存档案 删除游标所在列 5
2.2 ABAP/4 Data Element Data Type ABAP/4 的数据型态可分成: Type Length Range Initial Value Description C 1 1-65535Byte Space 字符串数据, 如’Program’ D 8 8Byte ‘00000000’ 日期数据, 格式为YYYYMMDD F 8 8Byte 0 浮点数 I 4 -2^31至2^31-1 0 整数 N 1 1-65535Byte ‘00…0’ 数值所组成的字符串 P 8 1-16Byte 0 Packed 数, 用在小数点数 T 6 6Byte ‘000000’ 时间数据, 格式为HHMMSS X 1 1-65535Byte X’00’ 16进位数
变量宣告 变量宣告包含 name, type, length 和 structure四个部分, 使用 DATA 指令, 如
DATA: S1 TYPE I, SUM TYPE I.
常数宣告 常数宣告使用 CONSTANTS 指令, 如宣告 PI 是一个小数点5位的值 3.14159,
CONSTANTS PI TYPE P DECIMALS 5 VALUE ‘3.14159’. 系统所定义数据 这是由系统所定义的专有名辞, 如 SPACE 空白字符串 SY-SUBRC 系统执行传回值, 0 表示成功 SY-UNAME logon 账号 SY-DATUM 系统日期 SY-UZEIT 系统时间 SY-TCODE 目前的transaction code 6
TYPE 叙述 用来指定数据型态或宣告自定数据型态 Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYLIST. DATA LIST TYPE MYLIST.
LIKE 叙述 跟TYPE叙述使用格式相同, 如 DATA TRANSCODE LIKE SY-TCODE. 不同的是 LIKE 用在已有值的数据项, 如系统变量, 而TYPE叙述则是用 在指定数据型态。
DATA 叙述 语法: DATA [] [] []
: 变量名称, 最长30个字符, 不可含有 + . , : ( ) 等字符 : 数据型态及长度, 如 LINE(20) TYPE C. MYNAME LIKE SY-UNAME. : 初值 : 小数位数
Example: DATA: COUNTER TYPE P VALUE 1, FLAG TYPE C VALUE IS INITIAL, WEIGHT TYPE P DECIMALS 2 VALUE ‘1.25’.
字段变量的宣告: DATA: BEGIN OF ADDRESS, NAME(10) TYPE C , NUMBER TYPE P, END OF ADDRESS. 7
使用时用字段变量加上组件名称, 如 ADDRESS-NAME CONSTANTS 叙述
用来宣告常数 语法: CONSTANTS [] [] []
Example: CONSTANTS: CNAME(10) VALUE ‘周庆日’, BIRTH_DAY TYPE D VALUE ‘19650201’.
STATICS 叙述 宣告的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [] [] []
TABLES 叙述 用来宣告 Table Work Area 的数据, 对映至 ABAP/4 资料文件(Dictionary Object), 由SQL 指令加载所需数据 语法: TABLES
Example: TABLES: SPFL. SELECT * FROM SPFL. WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION. ENDSELECT. 从ABAP/4 Dictionary 的 SPFL 档载入MANDT,CARRID,CONNECTION三个字段至 SPFL 此Table Work Area