11.[SAP ABAP] Package

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位以内的字符组成。

二、输入描述(简短描述、可选应用组件、软件组件、包类型等)

!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(https://img-home.csdnimg.cn/images/20230724024159.png?![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/722b91849b564997b78a7d65fefef56f.png)

origin_url=D%3A%5CGoyeerDoc%5C010.SAP%5C04.ABAP%5Cimage%5C11%5Cabap-11-02.png&pos_id=img-SeUUCRYY-1765808814674)

  1. 包: 必须唯一,通常Z或Y开头(客户名称空间),如:ZHR_PAYROLL

  2. **应用组件:**用于业务分类。如FI-GL、SD-SLS或ZZ-FINANCE。

  3. **软件组件:**客户自定义组件。如SAP_APPL、S4CORE 。

  4. 传输层: 决定是否可传输 1). $TMP:本地临时包(不可传输) 2). ZDEV/SAP:可传输到其他系统。

  5. 父包: 包可以嵌套,形成父子结构(如ZHR 是 ZHR_RAYROL的超级包)

  6. 包类型: 包含开发包、 主包、结构包

    6-1. 主包: 代表一个完整业务模块或系统领域的顶层包。

    • 通常是某个解决方案(Solution)的根节点。
    • 可能对应一个软件组件(Software Component)或应用组件(Application Component)。
    • 用于权限、传输、文档归集的边界。

    6-1. 开发包(Development Package): 实际进行编码、调试、测试的包。

    • 是主包的子包。
    • 按功能、接口、增强点等细分。
    • 必须分配到变更请求(Transport Request)。
    • 有明确的开发负责人或团队。
    • 包含对象:程序、类、函数组、BAdl实现、增强等。

    6-2. 结构包(Structure Package): 仅用于组织包层级,本身无业务含义,也不存放任何开发对象。

    • 类似"文件夹"或命名空间分隔符
    • 常用于大型项目中构建清晰的树形结构
    • 名称可能为通用词(如CODE、INTERFACE、UTIL)。
    • 结构包本身不创建任何程序或类,它仅让结构更清晰、便于导航和管理。
  7. 包已封装: 通常表示该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 - 标准模式)
  1. 输入 SE09;
  2. 左侧选择 "工作台请求";
  3. 点击 "创建"(或按 F5);
  4. 选"任务(Task) "或"请求(Request) ":
    • 任务(Task):分配给个人的子任务(推荐);
    • 请求(Request):顶层容器,可包含多个任务;
  5. 填写描述、目标系统等;
  6. 保存后获得请求号。
相关推荐
Harrison Ben2 天前
(原创)SAP FI自动入账奥义:FBKP FBKA FBKF
运维·sap·sap fico·sap运维·sap 实施
xiao贱贱2 天前
SAP ABAP OPEN SQL(应用实战大全)
sap·abap·opensql
爱喝水的鱼丶6 天前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
snpgroupcn7 天前
SAP ECC → S/4HANA 迁移的工程化路径:范围建模、规则复用与短停机窗口切换
sap·sap实施商
yang9822610 天前
S4 CLOUD
sap
爱喝水的鱼丶12 天前
SAP-ABAP:S/4 HANA ABAP 新特性入门:与 ECC ABAP 的核心差异、架构优势与学习路径规划
运维·数据库·性能优化·sap·abap·hana·开发交流
山茶花开时。16 天前
[SAP ABAP] SAP设置定时执行任务Job
sap·sap abap
SAP_LO16 天前
对检验批次做决策后物料状态并没有改变的处理方法
sap·aq11·bs02·检验批
SAP_奥维奥科技17 天前
云栖大会|奥维奥履约计划智能体获SAP行业AI共创优选方案
sap·云栖大会
duangww17 天前
QRFC的详细错误消息查看方式
abap·ewm·总分类帐科目xxx不一致