abap基础知识点

作者: SAP杰 | 来源:发表于2022-09-04 20:22 被阅读0次

工作区常用的T-CODE:

SE80 : 对象导航器

SE38 : ABAP编辑器

SE37 : 函数编辑器

SE11 : ABAP数据字典

SE16 : 数据库数据字典编辑

SE93 : 维护事物代码(创建事物代码命令)

SE43 : 维护局部菜单

SE21 : 包编辑器

SE24 : 类编辑器

SE09/SE10 : 传输组织

STMS : 传输管理系统

SE12创建包编辑的组件:

创建包的名称是由Z和Y开头:

软件组件的种类:

SAP_BASIS : SAP基本组件

SAP_ABA  :    应用或者模块共用的功能以及配件组件

SAP_HR   :    人力资源组件

SAP_APPL  :   物流以及会计组件

HOME    : 这类型包虽然不是LOCAL对象 但是可以把客户直接开发的程序传送到其他服务器中

包的属性:

短文本描述:包的详细描述

应用程序组件:确定包在应用层上的位置, 不是必填项可以不用输入

软件组件:选择用户自定义提供HOME 其他组件是sap公司的组件

传输层:   选择传输层 是根据对象修改的版本进行管理 如果选择LOCAL 则只能反映在该系统中, 而不能传输到其他系统中,要传输到其他系统应在这里设置路径 一般选择默认提供传输路径即可。

包类型:选择创建主包子包主包: 这里可以追加子包

传输层:

STMS : 定义传输层和传输路径

数据类型:

ABAP 包含三种数据类型:

1.ABAP基本数据类型

2.局部数据类型

3.全局数据类型

检查ABAP程序命名规范 T-CODE : SCI

数字运算函数

ABS     绝对返回值

SIGN    返回值符合

CEIL     返回值小于该值的最小整数

FLOOR   与CEIL相反

TRUNC   取得整数部分

FRAC     取得小数部分

字符串类型

C:用于定义文字

N:定义数字

D:日期

T:时间

具体设置时间: SPRO 设置UTF-8格式

STRING相关命令:

FIND         ABAP字母中存在字母B时 SY-SUBRC 返回值0

REPLACE      将ABAP转换成BBAP

TRANSLATE    大小写字母转换

SHIFT         ABAP依次向左移动

CONDENSE 去除空格

OVERLAY      填充空格但是不是覆盖

CONCATENATE  AB+AP 连接ABAP

SPLIT         字符串分割

OPEN SQL 和 NATIVE SQL

OPEN SQL 读取数据 - 修改数据

分层处理应用层应用程序流程---- 程序

数据层ABAP数据字典         ----- 事物代码

数据库流程DBMS      -----  SQL

OPEN SQL : 是创建数据库数据的abap命令构成 在不同的DBMS(数据库管理系统)

环境下其语法相同, OPEN SQL 不能使用DDL DCL 只能用SELECT查询的DML语言

NATVE SQL :可以使用DML DDL语言

OPEN SQL 命令语句:

SELECT       查询

INSERT       增加

UPDATE      修改

MODIFY      更新

DELETE       删除

OPEN SQL读取数据:

SELECT

INTO

FROM

WHERE

GROUP BY

HAVING

ORDEY BY

使用别名AS 关联表的时候可以使用

当查询一条数据时候使用结构体,使用* 可以取出所有的值的时候

可以使用CORRESPONDING FIRLDS OF 语句找到相同字段匹配

关联表语句INNER JOIN 和 OUTER JOIN

一般情况下使用INNER JOIN关联查询取出数据展示

WHERE语句使用的运算符

EQ 等于

NE 不等于

LT 小于

模块化程序:

子程序:PERFORM

参数:CHANGING 后面的参数按引用传递,值会随着子程序内的变化而变化。

USING    之后跟随着不会发生变化的子程序参数

FUNCTION 函数调用 与子程序一样也支持按照具体的功能体模块化代码的重复利用功能

1.函数包含在称为函数组的一个池中

2.函数提供例外处理功能 因此当发生错误时候调用自定义设定的例外处理程序

3.函数调用的程序无关可以单独在Stand_alone模式下进行测试

Function里面内部结构:

传入:往函数中传入值的参数,是可选项

传出: 从函数往ABAP程序里传递值的参数,也是可选项

传入传出参数:可以往函数中传值并且改变其值再传出

表: 可以往函数传入/传出内表

例外: 提供错误信息

事物代码: SE37 / SE80 都可创建函数组

创建函数组名称一般是Z开头

内表

定义方式: TYPES:

DATA:

内表的类型:

标准表

排序表

哈希表

二分查找法:

BINARY SEARCH 利用二分查找方法 结合 READ TABLE 语句使用

内表赋值:

Move-Corresponding

带表头的内表表头的名字相同,使用符号“[ ] ”区分表头和内表

删除带表头的表体一定加[ ]

计算条数:

DESCRIBE ... LINES ...

添加数据

INSERT ... INTO... 可以用关键字添加数据

APPEND 语句 只能用索引

可以追加多条数据

COLLECT语句 用来合计使用:

MODIFY 更新字段信息

AT FIRST 是内表第一条数据执行

AT NEW F1 字段F1值与上一条数据比较有变化时执行

AT END OF F1 字段F1值与下一条数据比较有变化时执行

AT LAST 是内表最后执行一条数据执行

MODIFY语法:

DELETE 和 WHERE语句一起用:

ADJACENT DUPLICATE语句删除重复:

利用索引读取数据:

调试:

<F5>  -  单步调试

<F6>  -  执行

<F7>  -  返回

<F8>  -  退出

创建锁对象:

事物代码:SE11 锁对象的名字一定要E开头 后面追加Z或者Y 要指定EZ或者EY开头

查看锁的状态SE12

FIELD SYMBOL 指针使用:

由一般字段的占位符或者符号名定义的FIELD SYMBOL的特性

FIELD SYMBOL 不占有自己特有的内存空间

FIELD SYMBOL 的数据名与属性到执行的时刻才能确定

FIELD SYMBOL 可以指定所有数据对象

一旦FIELD SYMBOL被分配 则他与一般的数据对象没有太大的区别 同样可以使用类似于MOVE之类的语句

FIELD SYMOBOL 可以明确的指定数据类型 也可以不指定数据类型 若不指定 则会继续被分配字段的数据类型

LIKE 和 LIKE LINE OF区别:

这两个语句只有不带表头的内表有区别,在不带表头的内表里,LIKE LINE OF 只是定义结构体即工作区,但是LIKE语句可以定义内表,因此当使用不带表头的内表尽量不要使用LIKE语句

ASSIGN语句:

FIELD-SYMBOLS语句运用实例:循环内表处理:

数据引用:

参照变量

TYPE REF OF 来定义一个数据对象,这个数据对象用来指向另外的数据

TYPE 来定义一个数据对象,本身就是一个存储的数据的对象,不是用来指向数据对象

间接使用:

SAP内存与ABAP内存:

SAP内存:

SAP内存是用户终端会话内的所有外部会话都可以访问的全局内存,用户利用sap客户登录状态下执行所有的程序都可以共享内存领域,

Sap内存利用set/get语句传达内存参数

SET PARAMETER / GET PARAMETER

ABAP内存:

ABAP内存是在同一个外部会话中执行的所有程序的共享内存,即在外部会话中只存在一个ABAP内存,在个别程序有自己的外部会话且内部会话积累在栈中,利用EXPORT/IMPORT语句传递程序间的数据

EXPORT obj ... obj TO MEMORY ID key

IMPORT obj...boin FROM MEMORY ID key

BDC程序:

语句中的使用的各项:

TCODE 事物码

Bdc_tab : BDCDATA 结构的内表传递给事物代码

Ctu_params: 适用于Rel4.6B以上版本 用于设置Call Transaction语句选项

MODE选项:

A  显示画面执行事物代码

E  当发生错误时候显示

N  不显示画面

UPDATE选项:

S  Synchronous Update

A  Asynchronous Update

L  Local Update

MESSTAB 系统变量的意义:

SY-MSGID

SY-MSGTY

SY-MSGNO

SY-MSGV1

SY-MSGV2

SY-MSGV3

SY-MSGV4

录屏创建BDC程序:

Bdc录屏通过SHDB事物代码

为了创建BDC程序 下面操作简单介绍操作

创建执行Batch Input 或者 Call Transaction 传递数据程序

创建Batch Input 程序

创建测试数据

创建Function Module

逻辑流的关键字:

CALL      调用子程序

MODULE   定义流模块 调用对话模块

FIELD      将数据从屏幕复制到abap字段语句 执行PAI事件在abap程序中无法控制屏幕的字段,原因在于屏幕字段数据还未复制到abap程序中,若定义字段语句,即是不执行Pai也可以用 abap程序检查数据 当修改特定的字段需要加检查逻辑经常使用,一般与MODULE SELECT语句一起用。

ON  与字段一起使用

VALUES 与字段Keyword 语句一起使用

CHAIN  开始Chain 处理

屏幕逻辑流:

屏幕逻辑流显示屏幕执行的步骤, 在ABAP编辑器相似的编辑器中进行记述,在屏幕逻辑流中使用语法和abap相似

逻辑流的关键字:

CALL              调用子屏幕

MODULE         定义流程快

FIELD              将数据从屏幕复制到ABAP字段语句

NO                  与字段语句一起使用

VALUES           与字段Keyword语句一起使用

CHAIN              开始Chain处理

ENDCHAIN        结束Processing Chain多个字段进行处理

CALL                  调用子屏幕

LOOP                 循环

ENDLOOP         结束循环

MODIFY            修改屏幕表

NO                    与字段一起使用

PROCESS          定义PROCESS事件

SELECT             查询表语句

VALUES             输入值

相关文章

网友评论

    本文标题:abap基础知识点

    本文链接:https://www.haomeiwen.com/subject/pmvmnrtx.html