abap 基本知识
sap gui 安装教程:http://www.itpub.net/forum.php?mod=viewthread&tid=2090890
1:abap 基本数据类型:
i(整型),f(浮点型),d(double型),t(时间time),d(date), 字节字段 X 文本域 C 打包数量 P 文本字符串 STRING数字文本字段 N字节字符串 XSTRING
2:abap定义变量,data,types:https://www.cnblogs.com/foxting/archive/2012/08/14/2638811.html
data定义变量
DATA abc(变量名称) TYPE i(数据类型). abc=.
types定义类型
TYPES: BEGIN OF ABC, FIRST_NAME() TYPE C, LAST_NAME() TYPE C AGE TYPE I, END OF ABC.
3: :使一个命令遇到逗号,开始执行,遇到句号.结束。
DATA v1 type i. DATA v2 type i. = DATA: v1 type i, v2 type i.
4:定义与另一个变量vother相同的类型,like vother.
DATA v3 LIKE v1.
5: value 给创建的变量赋值, is initial给变量赋初始值。
, v5 type i value is initial.
6: length 用于指定字段长度,仅限于 C,N,P,X类型
.
7:DECIMALS 用于指定小数位数,只能用于数据类型P。
DATA v7 type p DECIMALS
8:写一个abap程序
REPORT z02_01_01. "导入程序名,z02_01_01是程序名称 . "定义一个局部数据类型,类型为c,长度为20
*DATA t_var TYPE c LENGTH 20. "定义一个全局数据类型变量,类型为c,长度为20
*定义一个数据变量gv_var,变量类型为t_var,也就是类型为c,长度为20 DATA gv_var TYPE t_var. gv_var='HELLO ABAP'. "给变量赋值 write gv_var. "输出gv_var的值
9:abap标点符号的用法
abap 使用.作为一个语句的结束,使用*作为行注释,使用"在行末作为右注释,使用:后面可以跟多个语句,用,分割,最后使用一个.即可,字符串使用单引号''显示
10:命令使用空格分开
gv_var='error'. "错误,=两边没有空格 gv = 'successs'. "正确,=两边添加了空格
11:abap 工作区的主要T-CODE
11:MOVE语句和等于相同,用于赋值
DATA gv_var1 TYPE C. MOVE 'CHINA' TO gv_var1.
12:结构体类型
* 定义结构体类型 (也可以直接使用DATA定义结构体) TYPES BEGIN OF struc_type. ... {TYPES dtype ...}|{INCLUDE {TYPE|STRUCTURE}...}. ... TYPES END OF struc_type. 例如: REPORT z02_03_02. *声明结构体类型 TYPES:BEGIN OF t_ren, name type c length , country type c length , city type c length , end of t_ren. *定义结构体变量, TYPES 是类型,DATA是变量 DATA gs_people TYPE t_ren. gs_people-name='FEI YA LI'. gs_people-country='CHINA'. gs_people-city='CHENGDU'. WRITE:/gs_people-name,gs_people-country,gs_people-city. " /换行符
13:定义嵌套结构体类型
利用INCLUDE TYPE 语句可以定义嵌套结构体类型。(也可以直接使用INCLUDE STRUCTURE 语句将DATA语句定义的结构体嵌套进来) *嵌套结构体类型 REPORT Z02_03_03 *声明结构体类型 TYPES:BEGIN OF t_ren, name type c length , country type c length , city type c length , end of t_ren. *定义嵌套结构体类型 TYPES:BEGIN OF t_info. INCLUDE TYPE t_ren as ren. , END OF t_info. *定义结构体对象 DATA gs_people TYPE info. gs_people-ren-name='YAFEI LI'. gs_people-ren-country='CHINA'. gs_people-ren-city='chengdu'. gs_people-phone='. WRITE:/gs_people-ren-name,gs_people-ren-country,gs_people-ren-city,gs_people-phone. 结果: YAFEI LI CHINA chengdu
14:定义常量
可以定义一般常量或结构体常量 CONSTRANTS:c_company() value 'UESTC'. "一般常量 CONSTRANTS:BEGIN OF c_people, "结构体常量 name() VALUE 'YAFEI', country() VALUE 'CHINA', END OF c_people. WRITE:/c_company,c_people-name,c_people-country.
15:定义静态变量,可以定义一般静态变量和结构体变量,使用STATICS关键字。静态变量只初始化一次,存活到程序结束
静态变量 . STATICS F. . STATICS:BEGIN OF stru, ....... END OF stru. 含有静态变量的例子,静态变量只初始化一次。 REPORT z02_06_02. TIMES. "循环三次 PERFORM call_subr. "调用执行call_subr. ENDDO. FROM call_subr. "定义一个子程序块call_subr STATICS lv_val TYPE i. "静态变量 lv_val=lv_val+. WRITE:/'STATIC Variable:',lv_val. ENDFROM. "RANDOM 执行结果: STATIC Variable: STATIC Variable: STATIC Variable: 不含静态变量的例子。 REPORT z02_06_03. TIMES. "循环三次 PERFORM call_subr. "调用执行call_subr. ENDDO. FROM call_subr. "子程序块,定义一个子程序块call_subr DATA lv_val TYPE i. lv_val=lv_val+. WRITE:/'STATIC Variable:',lv_val. ENDFROM. "RANDOM 执行结果: STATIC Variable: STATIC Variable: STATIC Variable:
16: 表
*定义表使用TABLES. REPORT z02_06_04. TABLES:scarr. "定义表 SELECT * FROM scarr. "从表中查询,放入到scarr. WRITE:/scarr-carrid,scarr-carrname. ENDSELECT.
《第三章》
17:数据库。
数据语言分为OPEN SQL和NATIVE SQL.
OPEN SQL 只能执行DML语言。
NATIVE SQL 能执行DML 和DDL语言。
OPEN SQL 需要解释成NATIVE SQL 才能访问数据库。
如下:是一个查询语句OPEN SQL.
数据库: ' . "从数据库中查询数据的语句执行成功 WRITE marc. EXIT. ENDIF. ENDSELECT.
18:查询语句
查询语句: SELECT line(查询条数,可以用SINGLE,DISTINCT,数字5) column from ... where group by ... having... order by... ENDSELECT. into 用法,将查询出的语句放入某个字段或结构体,需要使用ENDSELECT. REPORT Z_03_01. DATA:gt_itab TYPE STANDARD TABLE OF sflight. gs_wa TYPE sflight. SELECT * INTO gs_wa FROM sflight WHERE carrid EQ 'AA'. "the process will end untill the selection operate ending. WRITE:/gs_wa-carrid,gs_wa-connid. ENDSELECT. 使用表,不使用结构体,就不需要用ENDSELECT. REPORT Z_03_01. DATA:gt_itab TYPE STANDARD TABLE OF sflight. gs_wa TYPE sflight. SELECT * INTO TABLE gt_itab FROM sflight WHERE carrid EQ 'AA'. LOOP AT gt_itab into gs_wa. "The data of table gt_itab are loop taken into gs_wa, then print. WRITE:/gs_wa-carrid,gs_wa-connid. ENDLOOP.
19:as
SELECT id as my_id from t1. " as will give a alias to the selection data.
20 INTO
INTO 用于指定存储查询出的结果值的目的地。如果使用了结构体wa,CORRESPONDING FIELDS OF可以将查询出的值按照字段名称对应赋值给wa
SELECT * INTO CORRESPONDING FIELDS OF wa FROM...
内表,将查询出的数据存放到内表中,使用APPENDING,PACKAGE SIZE 指定每次向表中追加的数据个数。
FROM t. ENDSELECT.
INTO 在删除内表数据后插入数据使用。
REPORT z03_04. DATA:gs_wa TYPE sflight, " gs=global structure, 结构体 gt_itab TYPE TABLE OF sflight. "gt=global table ,内表 *gv =全局字段,v=字段 SELECT carrid connid FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_itab PACKAGE SIZE . LOOP gt_itab INTO gs_wa. WRITE:/gs_wa-carrid,gs_wa-connid. ENDLOOP. ENDSELECT.
查询多个字段并用into指定存储字段。
select ... into (f1.f2. ...) ... SELECT carrid connid INTO(gv_carrid,gv_connid) from...
21:FROM
,定义表的选项,,控制访问数据库表的选项。SELECT ... FROM table option ...
22: 内连接:inner join 内连接。
select ... from t1 [inner默认,left outer,right outer] join t2 as t on fieldA. "on用来字段连接的字段,也可以没有 例3- report z03_06. TYPES:BEGIN_OF t_str, carrid type sfight-carrid, carrname type scarr-carrname, end of t_str. DATA:gs_str type t_str. select single a~carrid b~carrname into corresponding fields of gs_str from sflight as a inner join scarr as b on a~carrid eqb~carrid where a~carrid='AA'. write:gs_str-carrid,gs_str-carrname.
22:限制查询个数:
select ... from table1 up to <n> rows...
23:区间范围查询:
select * from table where f1 [ .
24: 字符串比较:
比较前三位相同 where f1 like 'abc%'. 查询字段中只有一位字符项:where f1 like '_'. "_代表一位字符
25:字符串连接:
https://blog.csdn.net/champaignwolf/article/details/78184603
concatename str1 str2 into str3. " 当整形与字符串连接时,符号位会转变为空格。
str=i && str. "将会将整形中的符号位去掉,不会产生空格。
26:动态条件
*动态条件,itab可以定义成最大为72位的内表。 select ... where (<itab>) ... 例3- report z03_08. data gs_where type c length . data gv_carrname type scarr-carrname. data gv_carrid type scarr-carrid value 'AC'. concatenate 'carrid='"gv_carrid""into gs_where. select single carrname from scarr where (gs_where). "gs_where是动态条件,根据上面赋的值决定。 write /gs_carrname.
27: 当有多个查询条件时,需要将其追加到内表中
report z03_09. data gs_where type c length . "72位的内表 data gt_where like table of gs_whree. data gv_carrname type scarr-carrname. data gv_carrid1 type scarr-carrid value 'AC'. data gv_carrid2 type scarr-carrid value 'AF'. concatenate 'carrid='"gv_carrid1""into gs_where. append gs_where to gt_where. gs_wehre='OR'. append gs_whre to gt_where. concatenate 'carrid='"gv_carrid2""into gs_where. append gs_where to gt_where. select carrname into gv_carrname from scarr where (gt_where). "where后面的括号内容表示动态查询条件。 write /gv_carrname. endselect.
28: 定义工作区
DATA L_WA_EKBE LIKE LINE OF IT_EKBE. "定义工作区,里面只能存储一行数据。 IT_EKBE 是一个内表。 内表可以存放多行数据。
29: check 后面的语句为真时,check发生作用,check后面的语句会执行。
CHECK iv_service_team_id IS NOT INITIAL.
abap 基本知识的更多相关文章
- Jerry的ABAP原创技术文章合集
我之前发过三篇和ABAP相关的文章: 1. Jerry的ABAP, Java和JavaScript乱炖 这篇文章包含我多年来在SAP成都研究院使用ABAP, Java和JavaScript工作过程中的 ...
- ABAP 关键字(1)
1.定义DATA ,TYPES TYPES关键字用于创建自定义数据类型,就像JAVA里面创建类一样,用TYPES创建的数据类型可以被其它变量引用(类似于实例化对象),而本身不能直接引用或者赋值. DA ...
- SAP 增强-出口选找方法-全部
■ SAP 中如何寻找增强 方法一:利用TCODE寻找增强(第二代的增强) 执行一个程序(源代码后附),在选择屏幕处输入你所需要增强的程序TCODE,执行後,就会出现一个列表,那里就有关于如何增强这个 ...
- 我的BRF+自学教程(三):动态技术
开发者们可以在编程中使用各种动态技术,比如RTTS,比如通过动态的类创建和多态来实现功能的平滑扩展.BRF+开发中也存在一些动态手段.本文将介绍3种不同场景下的动态实践方式.其中第一种是纯配置的,第二 ...
- 打破传统天价SAP培训,开创SAP师徒之路,经验丰富的老顾问带徒弟 qq群150104068
SAP领航社区,开设了一个导师性质的师徒圈子,类似大学导师带研究生,导师给学生安排课题.分配任务.分享资料,让学生自学提高.我们的教学方法是以自学为主.辅导为辅助,在实践中积累经验掌握原理.主要方向A ...
- 【ABAP系列】SAP ABAP-模块 字符串操作基础知识
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP-模块 字符串操 ...
- 2019.11.07【每天学点SAP小知识】Day2 - ABAP 7.40新语法 - 内表
今天学习一下内表的表达式在ABAP 7.4之后的语法: SELECT * FROM mara INTO TABLE @DATA(gt_mara)UP TO 10 ROWS. DATA gt_mara_ ...
- 2019.11.06 【每天学点SAP小知识】Day1 - ABAP 7.40新语法
最近看同事使用ABAP新语法贼溜,省了好多的功夫,还在使用老语法的我眼红了. 所以就自己补一补7.40之后语法,能够让自己写代码更顺畅吧. 今天学习内联申明 inline 意思是:当编译器发现某段代码 ...
- ABAP开发基础知识:内表(Internal Table)
http://www.cnblogs.com/foxting/archive/2012/03/19/2406830.html 内表与结构体基本类似,它同样是程序运行中被临时创建的一个存储空间,它是一个 ...
随机推荐
- myeclipse环境优化
在项目右键打开Project > Properties > BUILDERS,打开source的tab,选择你的目录,删之~重启myeclipse 以下转载自百度知道 优化一下,下面内容都 ...
- JS动态设置确认弹窗
多次使用确认弹窗 <!--START 确认收货--> <div class="popout-boxbg out" id="delivery_goods& ...
- Linux设备驱动剖析之SPI(二)
957至962行,一个SPI控制器用一个master来描述.这里使用SPI核心的spi_alloc_master函数请求分配master.它在drivers/spi/spi.c文件中定义: struc ...
- ipcs命令以及oracle内存段
今天是2014-01-06,在没过春节之前重新复习一下2013年学习的内容,关于oracle内存段在我之前写的blog中有详细操作.在此记录一下ipcs命令的用法. http://blog.csdn. ...
- SpringMVC温故知新
1. SpringMVC流程简记 (1) 用户发送请求至前端控制器DispatcherServlet (2) DispatcherServlet收到请求调用HandlerMapping处理器映射器 ( ...
- Promise {<pending>
场景:在create-react-app whatwg-fetch的项目中,想获取请求返回的数据, componentWillMount() { console.log(this.props) con ...
- 【咸鱼教程】Egret实现摇一摇功能
教程目录一 实现原理二 代码三 Demo下载 一 实现原理监听设备旋转角度的变化,来判断用户是否摇动手机. 参考:智能手机里陀螺仪和重力感应有何区别?HTML5实现摇一摇的功能Egret官方陀螺仪教程 ...
- [SharePoint 2010] SharePoint 2010 部署、收回和删除解决方案----STSADM和PowerShell
STSADM stsadm -o addsolution –filename c:\bin\CustomerSiteSearch.wsp stsadm -o deploysolution –name ...
- python nose测试框架全面介绍六--框架函数别名
之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...
- python开发环境搭建(windows+python2.7.5+django1.5.4)【原创】
先插入一条广告,博主新开了一家淘宝店,经营自己纯手工做的发饰,新店开业,只为信誉!需要的亲们可以光顾一下!谢谢大家的支持!店名: 小鱼尼莫手工饰品店经营: 发饰.头花.发夹.耳环等(手工制作)网店: ...