跳转到主要内容
Chinese, Simplified

为了增强SAP的功能并实现平稳的定制,SAP认识到用户在SAP中退出的价值。为了确保您完全了解这些强大的工具如何改善您的SAP环境,本文深入探讨了它们的定义、优点和最佳实践。

目录

  1. 了解用户出口
  2. 什么是用户出口
  3. 调整SAP系统的不同方式
  4. 用户出口的优势
  5. 如何在sap中编写用户出口
  6. 如何在SAP ABAP中实现用户退出
  7. sap tcode中的用户出口
  8. Sap SD中的用户出口
    1. 销售订单处理(模块池–SAPMV45A)
    2. 价格确定:模块池SAPLV60A,包括RV60AFZZ:
    3. 计费:模块池SAPLV60A,包括RV60AFZZ:
    4. 通用计费接口:
    5. 自行计费:
    6. 计费计划:
    7. 转入会计:
  9. Sap MM中的用户出口
  10. Sap FICO中的用户退出
    1. 如何在SAP中查找用户出口

了解用户出口

用户出口是SAP系统的关键组件,因为它们允许用户在不修改源代码的情况下向现有SAP系统添加自定义功能。这些出口充当占位符或挂钩,您可以在其中插入自己的代码,允许用户调整和改进系统以满足其特定的业务需求。

什么是用户出口

这个博客是基于用户在sap中的出口。User Exits是SAP最早提供的在标准SAP控制流中执行自定义代码的工具之一。增强原则可帮助您将自己的功能应用于SAP的现有业务应用程序,而无需更改原始应用程序。我们可以根据客户要求使用增强系统来更改标准SAP操作。

SAP软件在全球拥有超过65000个安装。这一成功的原因有很多。但一个关键原因是将系统塑造成关键业务流程的灵活性和能力。SAP允许您使用ABAP代码为开发环境创建自定义代码增强功能。例程、用户退出和客户退出(在某些方面)给客户留下了合理的责任,但开发人员需要在开始任何客户端定义的例程或用户退出之前探索替代方案。

SAP提供了多种方法或技术来定制和改进标准功能。今天,我们将专注于使用ABAP代码增强现有的销售和分销(SD)/材料管理(MM)/财务会计(FI)功能。

调整SAP系统的不同方式

有四种不同的方法可以调整SAP系统以满足您的需求:

  1. 自定义:在系统实施过程中,需要通过特殊界面配置系统参数,预先规划可能的更改,并进行有组织的自定义。
  2. 修改:以自定义修改的形式更改SAP存储库对象。当发生SAP更改时,必须手动协调客户版本。
  3. 客户更改SAP存储库对象而不进行修改。
  4. 自定义开发:在客户名称范围内创建自定义对象。

User exit in SAP

用户出口的优势

您应该使用出口而不是自己修改SAP软件,主要有两个原因。附加到出口的附加组件具有以下优点:

  • 它们不会影响标准SAP源代码。
  • 它们不会影响软件更新。
  • 可以通过Exits实现增强功能。

如何在sap中编写用户出口

用户出口是标准编码中预先计划好的出口例程,这意味着SAP有意在标准代码中将其留空。用户的输出只能在组件中找到。从历史上看,从技术角度来看,用户需要进行修改。然而,随着增强系统的引入,情况发生了变化。用户出口有时被称为表单出口,因为它们是子例程。

User Exit是在常规SAP控制流之间执行自定义代码的首批SAP机制之一。这是作为子程序调用(PERFORM xxx)完成的。User Exit的经典示例是MV45AFZZ包含在SAP R/3的订单处理模块中。尽管这包括一个不属于客户端命名空间的对象,但在升级过程中不会覆盖该对象。

How to write user exit in sap

如何在SAP ABAP中实现用户退出

SAP中的增强点

  • 如果需要将增强直接纳入ABAP源代码,则应提供该技术。该技术的实现也称为源代码插件。对源代码有两种类型的增强是可能的。
    • 隐式增强选项
    • 显式增强选项
  • 您需要处于“更改增强模式”(编辑器中提供的螺旋图标)才能实现这些源代码增强。从技术上讲,源代码插件实现存储在一个单独的include程序中,而不是作为原始源程序的一部分。

隐式增强选项:增强选项在整个ABAP系统的某些预定义位置自动可用。一些隐含选项如下:

  • 在所有程序(包括、报告、函数池、模块池等)的末尾,在最后一句语句之后
  • 在所有FORM子程序的开头和结尾
  • 在所有功能模块的末尾
  • 在本地级别的所有可见性区域(公共、受保护和私有)的末尾

要查看源代码中可用的所有隐式选项,请从编辑器中选择“编辑->增强操作->显示隐式增强选项”。

显式增强选项:有两种类型的显式增强可用。另一个可以在特定位置给出的是增强阶段,另一个可用于替换称为增强页面的语句集合。我们现在有两个新的ABAP语句,即。

  • 增强点
  • 增强截面

一旦应用了增强部分,就只执行增强,而不执行初始代码。从执行中删除任何常规SAP代码是一种现代策略,以前在任何旧的改进形式中都不存在这种策略。因此,加强科只能有一次成功实施。相反,可能存在增强点的几个活动实现,在这种情况下,所有实现都将在执行顺序上没有任何确定性的情况下实现。

SAP tcode中的用户出口

CMOD:此事务通过定义事务的增强来帮助您创建PROJECT。您需要在评估作为项目一部分的所有升级后启用项目。您还需要对用户出口进行编码;因此,您可能需要等到该阶段完成后才能启用PROJECT。

SMOD:该交易通过定义您的组件来促进项目中包含的增强功能的开发。如果SAP已经为其预定义的用户出口创建了增强,则无需使用SMOD事务;相反,您只能使用CMOD事务。

SAP SD中的用户出口

以下SAP增强功能可用于SD

销售订单处理(模块池–SAPMV45A)

包括:MV45AFZZ

  • USEREXIT_DELETE_DOCUMENT-(MV45AF0B_BELEG_LOESCHEN)
  • USEREXIT_FIELD_MODIFICATION-(MV45AFFE_FELDAUSWAHL_old)
  • USEREXIT_MOVE_FIELD_TO_VBAK-(FV45KFAK_VBAK_FUELLEN)
  • USEREXIT_MOVE_FIELD_TO_VBAP-(FV45KFAK_VBAP_FUELLEN)
  • USEREXIT_MOVE_FIELD_TO_VBEP-(FV45KFAK_VBEP_FUELLEN)
  • USEREXIT_MOVE_FIELD_TO_VBKD(业务数据)-(FV45KFKD_VBKD_FUELLEN_TEIL_2)
  • USEREXIT_NUMBER_RANGE-(MV45AF0B_BELEG_SICHERN)

使用此用户出口可以定义将内部文档编号分配给所需字段的编号范围。例如,如果要根据销售代理(VKORG)和销售业务(VKBUR)设置范围,则使用此用户出口。

  • USEREXIT_PRICING_REPREPARE_TKOMK(定价的Hdr Strctr)–FV45PF0P_PREISFINDUNG_VORBEREI
  • USEREXIT_PRICING_REPREPARE_TKOMP(定价的Itm Strctr)–FV45PF0P_PREISFINDUNG_VORBEREI
  • USEREXIT_SAVE_DOCUMENTß(MV45AF0B_BELEG_SICHERN)

包括:MV45AFZA

  • USEREXIT_MOVE_FIELD_TO_KOMKD(收割台材料确定)
  • USEREXIT_MOVE_FIELD_TO_KOMPD(物料材料确定)
  • USEREXIT_MOVE_FIELD_TO_KOMKG(表头材料清单)
  • USEREXIT_MOVE_FIELD_TO_KOMPG(物料清单)
  • USEREXIT_REFRESH_DOCUMENT

包括:MV45AFZB

  • USEREXIT_CHECK_XVBEP_FOR_DELET
  • USEREXIT_CHECK_VBAP(未完成检查)
  • USEREXIT_CHECK_VBKD(未完成检查业务数据)
  • USEREXIT_CHECK_VBEP(未完成检查,BOM分解明细表行)
  • USEREXIT_CHECK_VBSN(不完整检查序列号)
  • USEREXIT_CHECK_XVBSN_FOR_DELET
  • USEREXIT_FILL_fbap_FROM_HVBAP
  • USEREXIT_MOVE_FIELD_TO_TVCOM_H(标题文本的文本确定)
  • USEREXIT_MOVE_FIELD_TO_TVCOM_I(项目文本的文本确定)
  • USEREXIT CUST MATERIAL READ(在客户的物料数据记录中放入另一个客户编号(例如公司层次结构)
  • USEREXIT_NEW_PRICING_VBAP(用于输入再次执行定价的先决条件的选项(例如,对某个项目字段所做的更改可以用作再次进行定价的先条件)
  • USEREXIT_NEW_PRICING_VBKD
  • USEREXIT_SOURCE_DETERMINATION(用于确定将使用哪个工厂进行交付。在标准系统中,交付工厂是从客户主数据或客户材料信息记录中复制的。如果要使用不同的规则,则必须在此用户出口中输入)

包括:MV45AFZ4

  • USEREXIT_MOVE_FIELD_TO_KOMK(标题自由商品确定)
  • USEREXIT_MOVE_FIELD_TO_KOMP(无项目商品确定)

包括:MV45AFZF

  • USEREXIT_AVAIL_CHECK_CREDIT(此用户出口允许您确定系统是否应该在被阻止的文档发布后或在新的信用检查后执行可用性检查)

包括:FV45EFZ1

USEREXIT_CHANGE_SALES_ORDER(在标准SAP R/3系统中,如果发出采购请求并更新销售记录(如金额、日期),则销售合同计划行的数量和确认日期会自动更新。如果您想在标准系统中更改此配置,可以定义某些要求以保护您的销售订单不被自动更改。为此原因使用此使用者的出口。在此阶段决定是否要更改时间表)

价格确定:模块池SAPLV60A,包括RV60AFZZ:

  • USEREXIT_PRICING_REPREPARE_TKOMK(复制TKOMK通信结构中用于定价的附加字段(标题字段),这些字段在标准SAP系统中尚未提供)
  • USEREXIT_PRICING_REPREPARE_TKOMP(复制TKOMP通信结构中定价的其他字段(项目字段)
  • 模块池SAPMV61A,包括MV61AFZA:USEREXIT_FIELD_MODIFICATION、USEREXIT_PRICING_CHECK和USEREXIT_CHANGE_PRICING_RULE
  • 模块池SAPLV61A,包括RV61AFZA:USEREXIT_PRICING_RULE和USEREXIT_PRECING_COPY

计费:模块池SAPLV60A,包括RV60AFZZ:

  • USEREXIT_NUMBER_RANGE、USEREXIT_ACCOUNT_PREP_KOMKCV和USEREXIT_ACCOUNT_PREP_KOMPCV
  • 模块池SAPLV60A,包括RV60AFZC:USEREXIT_NUMBER_RANGE_INV_DATE&USEREXIT_FILL_VRK_VBRP
  • 模块池SAPLV61A,包括RV61AFZB:USEREXIT_PRINT_ITEM和USEREXIT_PRENT_HEAD
  • 包括RV60AFZD:USEREXIT_RELI_XVBPAK_AVBPAK、USEREXIT_NEWROLE_XVBPAK-AVBPAK和USEREXIT_NEWROLE_XVBPAP_AVBPAK

通用计费接口:

  • 包括RV60AFZA、RV60AFZB和RV60AFZC

自行计费:

  • EXIT_SAPLVED4_001至EXIT_SAPLVED4_006

计费计划:

  • 包括RV60FUS1:BILLING_SCHEDULE_DELTA、USEREXIT_MOVE_FIELD_TO_FPLT和USEREXIT_MOVE_FIELD_TO_FPLA
  • 包括RV60FUS2:USEREXIT_PRICING_REPREPARE_TKOMX
  • 包括RV60FUS3:USEREXIT_DATE_PROPOSAL,计费计划SDFPLA02的修改报告,添加到计费计划–SDVAX001&更改计费计划日期–用户退出V60F0001

转入会计:

  • 模块池SAPLV60B:EXIT_SAPLV60B_001到EXIT_SAPLV 60B_011

Sap MM中的用户出口

以下SAP增强功能可用于MM:

  • AMPL0001附加AMPL数据的用户子屏幕(制造商部件号)
  • LMELA002在产品交付时接受装运通知中的批号
  • LMELA010进货通知:收到IDoc元素数据
  • LMEQR001用于源标识的用户出口M06BB0001用于需求发布的角色标识
  • M06BB0001请求发布协调系统的变更
  • M06BB0003区域编号和文件编号
  • M06B0004编号范围和文件编号
  • M06BB0005采购申请最终发布的联系系统中的更改
  • M06E0004采购文件发布联系人系统的变更
  • me06e005
  • MELAB001生成预计交付时间表:通过生产概况实施
  • MEQUERY1文本摘要的增强ME21N/ME51N
  • MEVME001最大GR量和超/低交付公差的计算
  • MM06E001用于入站EDI通信和出站采购文档的用户出口
  • MM06E003区域编号和记录编号
  • MM06E004采购订单导入数据屏幕的控制
  • MM06E005用于购买文档的客户区域
  • MEREQ001采购订单的客户自有数据
  • MM06E007转换为采购订单时更改请购单
  • MM06E008监控发布订单的合同目标值
  • MM06E009“exi文本”的相关文本
  • MMAL0002 ALE源列表的分发:入站处理
  • MMAL0003-ALE采购数据分发记录:出库处理
  • MMAL0004-ALE采购数据分发记录:入库交货
  • MMDA0001交货地址的默认值
  • MMFAB001发布生成的用户出口
  • MRFLB001释放过程中的控制对象
  • LWBON001通过扩展MCKONA联系系统增强LIS更新(业务量和回扣收入)
  • LWBON003在生成结算单之前更改期末退款结算的结算明细
  • LWSUS001零售业客户特定来源的确定
  • LMEXF001购买单据的条件

Sap FICO中的用户退出

以下SAP增强功能可用于FI

  • F050S001 FIDCMT、FIDCC1、FIDCC2:编辑用户定义的IDoc部分
  • F0500S002 FIDCC1:更新IDoc/不提交
  • F0500S003 FIDCC2:切换IDoc/不提交
  • F0500S004 FIDCMT、FIDCC1、FIDCC2:更改出站IDoc/不发送。
  • F0500S005 FIDCMT、FIDCC1、FIDCC2入站IDoc:修改FI单据
  • F0500S006 FI传出IDoc:重置FI文档中的清除
  • F0500S007 FIDCCH出站:IDoc对记录切换的影响
  • F1800A001资产负债表调整
  • FARC0002 MM供应商主数据的增强存档测试
  • RFAVIS01用户退出以更改支付辅助段文本
  • RFEPOS00线路视图项目:检查选择条件
  • RFKORIEX的自动通信
  • SAPLF051 FI工作流程(预捕获、发布)
  • 您也可以参阅SAP Note 381348,“使用SD中的用户出口、客户出口和VOFM。”

如何在SAP中查找用户出口

查找用户出口的第一步是确定要更改的SAP过程或事务。它可以是任何东西,从销售订单、采购请求或主客户数据记录。了解要更改的特定流程将使您能够定位与该用户相关的用户出口。

利用您的SAP事务编号SE19查找用户退出:SAP事务代码SE19用于查找SAP内用户的条目。要使用SE19,请在命令字段中输入交易编号,然后按enter键。将显示用户退出初始屏幕。

在初始屏幕上填写适当的信息。您必须输入所有相关的详细信息才能搜索用户的出口。这是程序的名称、客户出口的名称以及包含该名称的名称。程序的名称是SAP程序的名称,其中包含您希望更改的流程或事务。

输入所需信息后输入信息后,单击“执行”,然后单击“执行“开始搜索。SAP将查看用户的出口,以确定他们是否符合您指定的标准,然后显示结果列表。

原文地址
https://www.saptutorials.in/user-exit/
本文地址
Article

微信

知识星球

微信公众号

视频号