工作区常用的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 输入值
网友评论