BC400 - 快速参考

BC400 快速参考

#dashboard #abap

系统架构 → 系统架构与程序流程

Component (组件) Description (描述)
数据库层 RDBMS 存储应用数据 + 程序 + 元数据
应用服务器 ABAP 程序在此执行
表示服务器 SAP GUI 用户界面
调度器 将用户请求路由到工作进程

仓库与工作台 → 仓库与对象导航器

Tool (工具) Purpose (用途)
对象导航器 (SE80) 中央开发工具
ABAP 编辑器 源代码编辑
ABAP 字典 表/类型定义
屏幕绘制器 屏幕布局
菜单绘制器 GUI 设计
函数构建器 函数模块
类构建器 全局类

数据类型 → 数据类型与数据对象

Type (类型) Description (描述) Fixed Length (固定长度)
I 整数 4
F 浮点数 8
P 压缩数字 否(需指定)
C 字符 否(需指定)
N 数字字符 否(需指定)
D 日期 (YYYYMMDD) 8
T 时间 (HHMMSS) 6
STRING 动态字符串 可变
XSTRING 动态十六进制字符串 可变
DECFLOAT16 十进制浮点 8
DECFLOAT34 十进制浮点 16

关键 ABAP 语句 → ABAP语句与控制流

Statement (语句) Purpose (用途)
DATA 定义变量
TYPES 定义局部类型
CONSTANTS 定义常量
PARAMETERS 选择屏幕输入
WRITE 列表输出
MOVE / = 赋值
MOVE-CORRESPONDING 结构字段复制
IF / ELSEIF / ELSE / ENDIF 条件判断
CASE / WHEN / ENDCASE 分支
DO [n TIMES] / ENDDO 固定循环 (sy-index)
WHILE / ENDWHILE 条件循环 (sy-index)
FORM / ENDFORM 子程序定义
PERFORM 子程序调用
CALL FUNCTION 函数模块调用
CALL METHOD 方法调用
CREATE OBJECT 实例化类
MESSAGE 对话消息

模块化对比 → 模块化概述

Technique (技术) Scope (作用域) Interface (接口) Encapsulation (封装性)
子程序 (FORM) 仅局部 USING/CHANGING
方法(局部类) 仅局部 IMPORTING/EXPORTING/CHANGING/RETURNING
函数模块 全局 IMPORTING/EXPORTING/CHANGING/TABLES + 异常
方法(全局类) 全局 IMPORTING/EXPORTING/CHANGING/RETURNING + 异常 最佳

内表操作 → 内表

Statement (语句) Purpose (用途)
APPEND wa TO itab 添加行(标准表)
INSERT wa INTO TABLE itab 插入行(任意表)
READ TABLE itab INTO wa 读取单行
MODIFY itab FROM wa 修改行
DELETE itab 删除行
COLLECT wa INTO itab 按键聚合
LOOP AT itab INTO wa 处理行
SORT itab BY field 排序表
REFRESH itab 清除内容
FREE itab 清除并释放内存

内表类型 → 内表

Kind (类型) Key Uniqueness (键唯一性) Access Type (访问类型) Best For (最佳用途)
STANDARD 非唯一 索引 顺序处理
SORTED 唯一/非唯一 索引 部分/顺序访问
HASHED 唯一 单记录键访问

Open SQL 语句 → Open SQL数据库访问

Statement (语句) Purpose (用途)
SELECT SINGLE ... INTO wa 单条记录读取
SELECT ... ENDSELECT 循环遍历记录
SELECT ... INTO TABLE itab 数组提取(批量读取)
SELECT ... INNER JOIN 多表连接

权限检查 → 权限检查

1
2
3
4
5
6
AUTHORITY-CHECK OBJECT 'auth_object'
ID 'field1' FIELD value1
ID 'field2' FIELD value2.
IF sy-subrc = 0.
" authorized
ENDIF.

屏幕流 → 屏幕编程

1
PBO (Process Before Output) → 屏幕显示 → 用户操作 → PAI (Process After Input)
  • SET SCREEN nnn — 动态设置下一屏幕
  • LEAVE TO SCREEN 0 — 返回上一屏幕/退出
  • CALL SCREEN nnn — 调用具有自身调用栈的屏幕

Web Dynpro MVC → Web Dynpro for ABAP

Component (组件) Role (角色)
Component 封装 MVC 单元
View UI 布局
Window 包含视图
Controller 业务逻辑
Context 数据容器
Node 上下文数据结构

ALV → SAP列表查看器(ALV)

1
2
3
4
CALL METHOD cl_salv_table=>factory
IMPORTING r_salv_table = go_alv
CHANGING t_table = gt_data.
go_alv->display( ).

代码检查器 (SCI) → 代码检查器

Category (类别) Checks (检查项)
性能 索引使用、循环中的 SELECT、缓冲区绕过
安全性 跨客户端访问、动态 WHERE
语法 扩展语法检查
规范 命名约定

增强类型 → 调整SAP标准软件

Type (类型) Description (描述) Release-Safe? (升级安全?)
客户开发 客户命名空间中的自有对象
配置 设置系统属性
增强 程序/菜单/屏幕出口、BAdI
修改 直接更改 SAP 对象 — 升级时需要调整

关键系统字段 → ABAP语句与控制流

Field (字段) Purpose (用途)
sy-subrc 返回码(0 = 成功)
sy-index 循环计数器 (DO/WHILE)
sy-tabix 当前表行索引
sy-dbcnt 处理的数据库行数
sy-ucomm 功能码