- SAP ABAP 教程
- SAP ABAP - 主页
- SAP ABAP - 概述
- SAP ABAP - 环境
- SAP ABAP - 屏幕导航
- SAP ABAP - 基本语法
- SAP ABAP - 数据类型
- SAP ABAP - 变量
- SAP ABAP - 常量和文字
- SAP ABAP - 操作员
- SAP ABAP - 循环控制
- SAP ABAP - 决策
- SAP ABAP - 字符串
- SAP ABAP - 日期和时间
- SAP ABAP - 格式化数据
- SAP ABAP - 异常处理
- SAP ABAP - 字典
- SAP ABAP - 域
- SAP ABAP - 数据元素
- SAP ABAP - 表
- SAP ABAP - 结构
- SAP ABAP - 视图
- SAP ABAP - 搜索帮助
- SAP ABAP - 锁定对象
- SAP ABAP - 模块化
- SAP ABAP - 子例程
- SAP ABAP - 宏
- SAP ABAP - 功能模块
- SAP ABAP - 包含程序
- SAP ABAP - 开放 SQL 概述
- SAP ABAP - 本机 SQL 概述
- SAP ABAP - 内部表
- SAP ABAP - 创建内部表
- ABAP - 填充内部表
- SAP ABAP - 复制内部表
- SAP ABAP - 读取内部表
- SAP ABAP - 删除内部表
- SAP ABAP - 面向对象
- SAP ABAP - 对象
- SAP ABAP - 类
- SAP ABAP - 继承
- SAP ABAP - 多态性
- SAP ABAP - 封装
- SAP ABAP - 接口
- SAP ABAP - 对象事件
- SAP ABAP - 报表编程
- SAP ABAP - 对话框编程
- SAP ABAP - 智能表单
- SAP ABAP - SAP 脚本
- SAP ABAP - 客户退出
- SAP ABAP - 用户退出
- SAP ABAP - 业务插件
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问题解答
- SAP ABAP - 快速指南
- SAP ABAP - 有用的资源
- SAP ABAP - 讨论
SAP ABAP - 用户退出
如果标准 SAP 提取器未提供预期数据或所需功能(例如授权或时间检查),则在提取中使用用户出口。用户出口通常用于销售和分销 (SD) 模块。SAP在销售、运输、运输和计费领域提供了许多出口。用户出口旨在当标准 SAP 无法满足所有要求时进行一些更改。
为了能够访问每个销售区域中可用的出口,请使用以下路径转到 IMG:IMG → 销售和分销 → 系统修改 → 用户出口。SD 领域中每个出口的文档都有详细解释。
例如,如果您想在销售单据处理(合同、报价单或销售订单)中查找用户出口,请按照上述路径继续展开“销售→用户出口”中的“用户出口”节点。单击图标文档可查看销售文档处理中可用的所有用户出口。
编号 | 用户退出及说明 |
---|---|
1 | USEREXIT_FIELD_MODIFICATION 用于修改屏幕属性。 |
2 | USEREXIT_SAVE_DOCUMENT 当用户点击“保存”时帮助执行操作。 |
3 | USEREXIT_SAVE_DOCUMENT_PREPARE 对于检查输入字段、在字段中输入任何值或向用户显示弹出窗口以及确认文档非常有用。 |
4 | USEREXIT_MOVE_FIELD_TO_VBAK 当用户标题更改移至标题工作区域时使用。 |
5 | USEREXIT_MOVE_FIELD_TO_VBAP 当用户项目更改移至 SAP 项目工作区域时使用。 |
用户出口与客户出口具有相同的用途,但它们仅适用于 SD 模块。退出是作为对功能模块的调用来实现的。用户出口是对 SAP 标准程序的修改。
例子
REPORT ZUSEREXIT1. TABLES: TSTC, TSTCT, TADIR, TRDIR, TFDIR, ENLFDIR, MODSAPT, MODACT. DATA: JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE, field1(30), v_devclass LIKE TADIR-devclass. PARAMETERS: P_TCODE LIKE TSTC-tcode OBLIGATORY. SELECT SINGLE * FROM TSTC WHERE tcode EQ P_TCODE. IF SY-SUBRC EQ 0. SELECT SINGLE * FROM TADIR WHERE pgmid = 'R3TR' AND object = 'PROG' AND obj_name = TSTC-pgmna. MOVE TADIR-devclass TO v_devclass. IF SY-SUBRC NE 0. SELECT SINGLE * FROM TRDIR WHERE name = TSTC-pgmna. IF TRDIR-subc EQ 'F'. SELECT SINGLE * FROM TFDIR WHERE pname = TSTC-pgmna. SELECT SINGLE * FROM ENLFDIR WHERE funcname = TFDIR-funcname. SELECT SINGLE * FROM TADIR WHERE pgmid = 'R3TR' AND object = 'FUGR' AND obj_name EQ ENLFDIR-area. MOVE TADIR-devclass TO v_devclass. ENDIF. ENDIF. SELECT * FROM TADIR INTO TABLE JTAB WHERE pgmid = 'R3TR' AND object = 'SMOD' AND devclass = v_devclass. SELECT SINGLE * FROM TSTCT WHERE sprsl EQ SY-LANGU AND tcode EQ P_TCODE. FORMAT COLOR COL_POSITIVE INTENSIFIED OFF. WRITE:/(19) 'Transaction Code - ', 20(20) P_TCODE, 45(50) TSTCT-ttext. SKIP. IF NOT JTAB[] IS INITIAL. WRITE:/(95) SY-ULINE. FORMAT COLOR COL_HEADING INTENSIFIED ON. WRITE:/1 SY-VLINE, 2 'Exit Name', 21 SY-VLINE , 22 'Description', 95 SY-VLINE. WRITE:/(95) SY-ULINE. LOOP AT JTAB. SELECT SINGLE * FROM MODSAPT WHERE sprsl = SY-LANGU AND name = JTAB-obj_name. FORMAT COLOR COL_NORMAL INTENSIFIED OFF. WRITE:/1 SY-VLINE, 2 JTAB-obj_name HOTSPOT ON, 21 SY-VLINE , 22 MODSAPT-modtext, 95 SY-VLINE. ENDLOOP. WRITE:/(95) SY-ULINE. DESCRIBE TABLE JTAB. SKIP. FORMAT COLOR COL_TOTAL INTENSIFIED ON. WRITE:/ 'No of Exits:' , SY-TFILL. ELSE. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON. WRITE:/(95) 'User Exit doesn’t exist'. ENDIF. ELSE. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON. WRITE:/(95) 'Transaction Code Does Not Exist'. ENDIF. AT LINE-SELECTION. GET CURSOR FIELD field1. CHECK field1(4) EQ 'JTAB'. SET PARAMETER ID 'MON' FIELD sy-lisel+1(10). CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
处理时,输入事务代码“ME01”并按 F8(执行)按钮。上面的代码产生以下输出 -