SAP VOFM例程定价增强

文章介绍了如何在SAP环境中对MM物料模块的采购订单进行定价过程的增强。通过事务代码VOFM创建和编辑例程,编写代码来影响定价逻辑,然后激活例程并将其配置到计算方案中。在遇到传输问题时,需执行特定程序如RV80HGEN来激活公式。

例程,即Fomula,是使用在销售、采购、发票、交货等单据中定价过程的一小段程序。之所以有Fomula存在,是因为在不同的业务场景下,定价过程可能千差万别,但是却可以拆分为一些关键的组成部分,如复制请求、数据传输、要求、公式,每个例程就是一小段专用程序,这些例程程序会被标准程序动态调用:如:PERFORM XXX IN XXXX IF FOUND. 我们可以在例程中编写代码片段,修改运行环境中的数据。具体的每种例程都有不同的环境变量和接口数据。

这里我们以mm物料模块的采购订单的 增强 为例。

1、首先打开事务代码VOFM,然后进入菜单:要求>定价,在打开的 屏幕 的表格输入一条新记录,回车输入开发KEY,回车就新增了一条新的计算方案记录,

输入例程编号,描述,应用选择M,因为这个定价增强用在mm物料模块

 

选中新建的例程,点击'源文本',就可以在里面写定价的增强代码了

 

SY-SUBRC = 4.  表示这段代码不起作用
SY-SUBRC = 0.表示这段代码起作用
FORM KOBED_XXX 检查Item信息
FORM KOBEV_XXX 检查Header信息

2、选中新建记录的活动的那个单选框,再点菜单:编辑->激活例程

 

激活例程时,RV61A701被INCLUDE 在RV61ANNN,即在RV61ANNN中添加一行:INCLUDE RV61A701

 

3、spro进入后台

 

 

选中'过程'双击

 

将刚才新建的701例程配置到物料模块采购的计算方案中,保存

 

4、在开发机测试
me21n创建ZB等类型的采购订单时,ZRA4条件类型不起作用

5、例程传输到生产机时,发现订单无法调用计算方案进行正确计算商品价格
这是因为服务器间的传输,出现没被调用,这是SAP的BUGER,需要激活:
     (1) SE38 执行RV80HGEN, 激活所有公式;
该程序的作用是根据表TFRM,TFRMT在RV61ANNN等程序中增加INCLUDE RV61A701这样的代码
     (2) SE38 打开RV61ANNN, Utilities Menu>Update Navigation Index.

 

<think> 首先,用户的问题是:“我想查找在SAP中为销售定价条件创建新的计算例程的方法 请问SAP销售定价条件创建新计算例程的方法”。用户明确提到了“计算例程”,根据引用内容,这涉及到VOFM定价过程。 用户提供了三个引用: - 引用[1]: 描述SAP交货单定价过程和系统配置步骤。 - 引用[2]: 详细说明SAP VOFM定价过程的例程创建,重点是定价值和需求定价的创建方法。 - 引用[3]: 涉及SAP发票中的定价条件,如折扣。 用户的问题是针对“创建新的计算例程的方法”,引用[2]直接相关,因为它详细描述了如何创建定价值和需求定价例程。 我的回答需要遵循系统级指令: - 所有行内数学表达式用$...$格式(但这个问题是关于SAP的,可能不涉及数学表达式)。 - 独立公式用$$...$$格式(同样,可能不适用)。 - LaTeX语法正确(确保代码块格式正确)。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾添加引用标识,例如[^1]。 回答结构应该清晰,逐步解决问题,确保真实可靠。用户指定了“参考站内引用”,所以我需要基于提供的引用构建回答。 关键点从引用[2]: - 创建定价例程:事务代码VOFM -> 公式 -> 定价值 -> 输入编号,添加描述 -> 双击编号创建包含文件 -> 写代码 -> 激活 -> 运行程序RV80HGEN。 - 激活后需要运行RV80HGEN以使新例程生效。 - 同样适用于需求定价例程:事务代码VOFM -> 需求 -> 定价 -> 类似步骤。 - 最后,需要在后台配置中分配到定价过程。 步骤分解: 1. 访问VOFM事务代码。 2. 选择类型(定价值或需求)。 3. 创建新例程。 4. 编写代码。 5. 激活。 6. 运行RV80HGEN。 7. 后台配置。 用户提到了“销售定价条件”,引用[1]提到销售交货单定价,引用[2]提到采购订单,但方法类似。我应该专注于销售方面,引用[1]提到系统配置包括定价过程和复制控制。 完整步骤: - 进入后台配置定义条件类型、定价过程等(基于引用[1])。 - 然后创建例程(基于引用[2])。 回答结构: 1. 介绍方法基于引用。 2. 分步详细说明。 3. 提供代码示例(如果可能)。 4. 提醒激活和生效步骤。 5. 生成相关问题。 生成相关问题: - 指令要求生成相关问题,类似于示例中的“§§相关问题§§”。 - 问题应围绕SAP定价例程创建,如优化、调试、常见问题等。 最终回答: - 开头简要介绍。 - 列出步骤。 - 结尾添加相关问题。 </think> ### SAP中为销售定价条件创建新计算例程的方法 在SAP系统中,为销售定价条件创建新的计算例程主要通过事务代码VOFM实现。计算例程包括“定价值”(Formula for Value)和“需求定价”(Requirement for Pricing)两种类型,它们决定了定价条件的计算逻辑(如折扣、附加费等)。创建过程涉及编写ABAP代码、激活例程、并在后台配置中分配。以下是基于引用内容的详细方法指南,确保步骤真实可靠并适用于销售模块[^1][^2]。 #### 创建步骤(以定价例程为例) 1. **访问VOFM事务:** 在SAP GUI中,输入事务代码`VOFM`,然后在菜单栏选择“公式”(Formulas)-> “定价值”(Value)。 ![VOFM界面示意图](https://via.placeholder.com/150)(注:图示仅为示意,实际界面参考SAP标准GUI)。 2. **创建新例程:** - 在“定价值”界面,点击“新条目”(New Entries)。 - 输入一个新编号(例如`901`),并添加描述(如“销售折扣计算”)。 - 设置“应用程序”(Application),销售模块通常选择应用程序分类为“V”(销售和分销)[^2]。 3. **编写代码:** - 双击新创建的编号(如`901`),这将打开一个包含文件(Include Program),例如`RV61A901`。 - 在包含文件中编写ABAP代码来定义计算逻辑。例如,以下代码实现一个简单的折扣计算(基于引用示例): ```abap *&---------------------------------------------------------------------* *& 定价例程:自定义销售折扣计算 *&---------------------------------------------------------------------* FORM FRM_KONDI_WERT_901. * 示例:如果订单数量大于100,则应用5%折扣 IF KOMP-MENGE > 100. XKWERT = XKWERT * 0.95. " 折扣5% ENDIF. ENDFORM. ``` - **说明:** - `XKWERT`是定价条件值变量,修改它直接影响最终价格。 - 参考标准定价例程(如RV80A901)调试字段含义(使用ABAP调试器设置断点)[^2]。 - 涉及数值计算时,使用函数如`COMPUTE`避免精度问题(例如`XKWERT = XKWERT * (1 - 0.05)`)[^2]。 4. **激活例程:** - 保存代码后,返回VOFM界面。 - 选中例程编号,点击“激活”(Activate)。**必须激活两次:** 首次激活包含文件,再次在VOFM主界面激活[^2]。 5. **运行生成程序:** - 使用事务代码`SE38`运行程序`RV80HGEN`。**此步关键,否则例程不生效。** ```abap REPORT RV80HGEN. ``` - 执行完成后,系统会生成定价表更新。**注意:** 如果将例程传输到生产系统,必须重新运行`RV80HGEN`[^2]。 6. **后台配置分配:** - 进入SPRO后台(事务代码`SPRO`)。 - 导航到:**销售和分销(SD)** -> **基本功能** -> **定价** -> **定价控制** -> **定义并分配定价过程**。 - 在定价过程中,找到“定价值”字段,输入你的例程编号(如`901`)。 - 保存配置,确保与销售订单、交货单或发票的复制控制一致(参考引用[1]的步骤4)[^1][^2]。 #### 创建需求定价例程的方法 需求定价用于控制定价条件是否应用(例如基于客户类型)。步骤相似: 1. 在VOFM中选择“需求”(Requirements)-> “定价”(Pricing)。 2. 创建新条目(如编号`5`),编写代码(如在包含文件中检查客户组)。 3. 激活并运行`RV80HGEN`。 4. 在SPRO的定价过程中分配到“需求”字段[^2]。 #### 关键注意事项 - **测试与验证:** 创建后,在测试系统模拟销售订单(如VA01创建订单),检查定价条件效果。**不要保存,仅预览**(引用[2]建议)[^2]。 - **错误处理:** 常见错误包括未运行RV80HGEN或代码逻辑错误。使用SE38调试标准例程(如RV80AXXX)辅助开发。 - **适用范围:** 此方法适用于销售模块(如销售订单、交货单定价),确保与发票定价的一致性(引用[1]和[3]强调财务对账)[^1][^3]。 - **性能:** 复杂例程可能影响性能,建议优化ABAP代码(例如避免循环计算)[^2]。 通过以上步骤,您可以自定义销售定价逻辑,满足业务需求如动态折扣或特殊定价场景[^1][^2][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值