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 | AUTHORITY-CHECK OBJECT 'auth_object' |
屏幕流 → 屏幕编程
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 | CALL METHOD cl_salv_table=>factory |
代码检查器 (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 |
功能码 |