11.[SAP ABAP] Package
文章目录
- [11.[SAP ABAP] Package](#11.[SAP ABAP] Package)
-
- [一. 作用](#一. 作用)
- [二. 创建Package](#二. 创建Package)
- 二、输入描述(简短描述、可选应用组件、软件组件、包类型等)
- 三、创建请求
-
- [1. 什么是ABAP请求](#1. 什么是ABAP请求)
- [2. 如何手动创建ABAP请求](#2. 如何手动创建ABAP请求)
-
- [方法一:通过事务码SE01(Transport Organizer - 专家模式)](#方法一:通过事务码SE01(Transport Organizer - 专家模式))
- [方法二:通过事务码SE09(Transport Organizer - 标准模式)](#方法二:通过事务码SE09(Transport Organizer - 标准模式))
在SAP ABAP开发环境中,创建Package(包)是组织和管理开发对象(如程序、类、函数模块等)的重要步骤。能够存储所有SAP系统开发过程中的相关对象,方便进行管理和查询。
一. 作用
- 提供命名空间隔离(避免对象对冲突);
- 控制访问权限(通过包权限检查);
- 支持变更请求(Transport Request)的传输 ;
- 实现软件组件(Software Component)和应用组件(Application Component)的归属管理;
所有ABAP开发对象(除本地临时对象外)都必须属于某个包。
二. 创建Package
T-Code: SE21
输入名称,点击【Create】按钮

包(Package)的名字由Y、Z开头并由30位以内的字符组成。
二、输入描述(简短描述、可选应用组件、软件组件、包类型等)

origin_url=D%3A%5CGoyeerDoc%5C010.SAP%5C04.ABAP%5Cimage%5C11%5Cabap-11-02.png&pos_id=img-SeUUCRYY-1765808814674)
-
包: 必须唯一,通常
Z或Y开头(客户名称空间),如:ZHR_PAYROLL -
**应用组件:**用于业务分类。如
FI-GL、SD-SLS或ZZ-FINANCE。 -
**软件组件:**客户自定义组件。如
SAP_APPL、S4CORE。 -
传输层: 决定是否可传输 1). $TMP:本地临时包(不可传输) 2). ZDEV/SAP:可传输到其他系统。
-
父包: 包可以嵌套,形成父子结构(如
ZHR是ZHR_RAYROL的超级包) -
包类型: 包含
开发包、主包、结构包6-1. 主包: 代表一个完整业务模块或系统领域的顶层包。
- 通常是某个解决方案(Solution)的根节点。
- 可能对应一个软件组件(Software Component)或应用组件(Application Component)。
- 用于权限、传输、文档归集的边界。
6-1. 开发包(Development Package): 实际进行编码、调试、测试的包。
- 是主包的子包。
- 按功能、接口、增强点等细分。
- 必须分配到变更请求(Transport Request)。
- 有明确的开发负责人或团队。
- 包含对象:程序、类、函数组、BAdl实现、增强等。
6-2. 结构包(Structure Package): 仅用于组织包层级,本身无业务含义,也不存放任何开发对象。
- 类似"文件夹"或命名空间分隔符
- 常用于大型项目中构建清晰的树形结构
- 名称可能为通用词(如
CODE、INTERFACE、UTIL)。 - 结构包本身不创建任何程序或类,它仅让结构更清晰、便于导航和管理。
-
包已封装: 通常表示该ABAP Package 被设置为
封装状态,禁止外部直接访问其内部对象,除非通过明确定义的公共接口(Public API)。包已封装含义:
- 该包启用了封装
(Encapsulation / Sealing)功能 - 只有声明为
PUBLIC的对象(且在包的公开接口中暴露)才能被其他包访问。 - 其他包无法直接使用该包内的
LOCAL或未授权的PUBLIC对象。 - 违反此规则会导致语法检查或运行时错误。
- 该包启用了封装
三、创建请求
创建请求通常指的是创建变更请求(Change Request),也称为传输请求(Transport Request)。请求是SAP系统用于管理开发对象(如程序、类、表等)从开发系统(DEV)→ 测试系统(QAS)→ 生产系统(PRD)的标准变更控制机制。
1. 什么是ABAP请求
**正式名称:**变更请求(Change Request)或工作台请求(Workbench Request)。
作用:
- 记录所有对 Repository 对象(ABAP 代码、DDIC 等)的修改;
- 支持跨系统传输(通过 TMS:Transport Management System);
- 实现变更审计、版本控制和团队协作。
所有在非$TMP包中创建或修改对象,必须分配到一个请求,否则无法保存。
2. 如何手动创建ABAP请求
方法一:通过事务码SE01(Transport Organizer - 专家模式)
- 输入事务码 SE01。
- 点击工具栏"请求任务" → "创建"。
- 选择请求类型:
- Workbench Request(工作台请求):用于开发对象;
- Customizing Request(定制请求):用于配置(SPRO设置);
方法二:通过事务码SE09(Transport Organizer - 标准模式)
- 输入
SE09; - 左侧选择 "工作台请求";
- 点击 "创建"(或按 F5);
- 选"任务(Task) "或"请求(Request) ":
- 任务(Task):分配给个人的子任务(推荐);
- 请求(Request):顶层容器,可包含多个任务;
- 填写描述、目标系统等;
- 保存后获得请求号。