SAP 工具箱通用条件加点率配置

作者:ABAP技巧与实战 约 9 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, CO, Data Engineering, FI, MM, SD, WM, 仓库管理, 开发, 数据工程, 物料管理, 财务, 销售分销
目录

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

前言

SAP的定价体系的大致设计思路

• 通过配置生成条件表

• 通过存取顺序关联条件表

• 通过定价方案把相关条件类型关联起来

• 条件类型按顺序读取条件表,找到为止

• 定价方案中允许通过备选计算类型增强条件的金额

• 备选计算类型最终确定条件的金额.

项目中对定价的增强一般在备选计算类型使用的例程中写相应的代码

**本文主要介绍在定价值的例程中使用通用定价/加点率配置表获取定价或加点率**

为了行文方便, 后文把定价/加点率统称加点率.

定价相关界面

• 图一是事务代码VOFM 进入定价值例程的路径

• 图二是定价值例程维护界面

• 图三是例程的代码内容示例(因为例程主程序没有设置固定点计算,带有小数的数字乘除会放大金额,最佳解决方法是调用固定点计算的函数,在函数中写增强代码.)

• 图四是定价方案中备选计算类型中应用定价值例程

• 图五是程序(/函数组)属性中的固定点计算, 这个标记会影响程序中小数的乘除结果.

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

图一

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

图二

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

图三

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

图四

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

图五

业务需求

业务人员可能对定价提示如下的需求.

• 基本需求

• 进阶需求

_**01** _

**基本需求**

比如用户可能会提如下定价需求: 在成本价的基础上加3个百分点作为销售订单的价格

这个需求相对简单, 通过标准配置就能实现

• 定义加点率条件表(百分比条件).

• 定义加点率条件类型(可以理解为正向折扣)

• 定价方案中加入成本价与加点率条件类型 ,

• 定价方案中累计成本价金额与加点率金额作为销售金额

_**02** _

**进阶需求**

进(变)阶(态)需求

从最近10天的平均采购价与成本价(加税加3个点)中二者取其高,再加6个百分点.

这个定价需求几乎无法通过标准配置实现了. 只能考虑使用定价增强实现(使用定价值例程)

这个需求中的加点率的获取有多种方式

加点率获取的方式

• 代码中写死加点率: 弊端毋庸置疑,业务如果相调整加点率,必须找开发修改代码.

• 按业务需求定义配置表

• 使用通用加点率配置表

_**01** _

**按业务需求定义配置表**

一般情况下,业务需求不同,加点率的配置表也会不同

比如业务需要按地点设置加点率

可以定义一个配置表 地点作为主键 加点率作为属性. 在定价例程中读取该配置表,获取加点率

弊端

如果业务需求在不同的定价中使用不同的维度定义加点率. 则需要为每个维度定义一个加点率配置表.

如果业务需求调整,从地点调整为地点+类目 .则需要调整配置表,同时调整代码.

_**03** _

**使用通用加点率配置表**

那么有没有可能设计一个通用配置表,一劳永逸的解决这个问题呢?

回答是肯定的.

通用加点率配置

通用加点率配置表的思路来源于灵活的业务加点率需求(业务需求不断的改变加点率逻辑),尝试通过一个配置表解决所有定价中获取加点率或定价的需求.

_**01** _

**配置路径**

配置路径如下图所示.配置帮助中详细解释了配置的注意点及配置实例,同时字段帮助中进一步解释了每个字段的用法.

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

_**02** _

**配置表**

ZTCOND_JDLID/ ZTCOND_JDLIDT 维护加点率ID/文本

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

ZTCOND_JDL 条件表通用加点率(在条件计算类中获取加点率使用)

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

_**03** _

**字段介绍**

JDLID

加点率ID:用于识别加点率的使用场景

TABNAME

表名(限制条件字段来源表). 目前支持来自条件中的常用结构KOMK/KOMP/XKOMV及常用主数据表 MARA/T001W/LFA1/KNA1

如果需要其它字段

• 可以扩展配置表范围

• 可以增强KOMP字段

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

FNAME

字段名(获取加点率限制的字段名)

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

FVALUE

字段值限制.

通过特定字段的值和配置的值限制是否匹配,确定该行是否通过.

支持四种值限制方式

1\. 单值 示例 A

2\. 多个单值: 多个单值通过逗号分隔 示例 A,B,C

3\. 通配符: A*,B,CD*

解析成

解析成 SIGN = 'I' OPTION = 'EQ' LOW = 'A' HIGH = ''

SIGN = 'I' OPTION = 'CP' LOW = 'B*' HIGH = ''

SIGN = 'I' OPTION = 'CP' LOW = 'CD*' HIGH = ''

4\. 复杂设置

示例 I/EQ/A,I/CP/B*,E/BT/C/D

解析成 SIGN = 'I' OPTION = 'EQ' LOW = 'A' HIGH = ''

SIGN = 'I' OPTION = 'CP' LOW = 'B*' HIGH = ''

SIGN = 'E' OPTION = 'BT' LOW = 'C' HIGH = 'D'

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

JDLGP

限制条件分组

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

CONDJDL

加点率(%)

DATAB开始生效日期

维护条件的生效开始日期, 如果没有维护,视同为不限制

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

DATBI有效截至日期

维护条件的有效截至日期, 如果没有维护,视同为不限制日期

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

_**04** _

**获取加点率的类**

ZCL_COND

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

通用加点率使用

配置前最好查看一下配置帮助文档,及每个字段的帮助文档,了解一下配置的注意事项.

_**01** _

**加点率ID**

为一个业务场景定义一个加点率ID,可以把加点率ID理解成系统中的条件类型.

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

_**02** _

**配置加点率**

为加点率ID配置特定命中条件,值,有效日期.

命中条件由 表名/字段名/字段值限制构成, 字段值限制维护方式详见FVALUE 的帮助文档

注意事项

• 同一个分组的加点率,有效日期最好维护成一致(优先使用第一行的加点率,每行的日期联合命中条件字段生效)

• 有层级的加点率获取通过分组编号的顺序实现,尽量给高优先级的条件组合定义小的分组编号

• 分组编号最好采用10或100进制. 以便后续插入高优先级命中条件

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

_**03** _

**获取加点率**

在代码中调用类获取加点率

传入加点率ID ,和定价例程中允许访问的工作区( KOMK,KOMP, XKOMV ). 即可获取加点率

DATA(lv_jdl) = zcl_cond=>get_jdl( iv_jdlid = 'J0002' is_komk = komk is_komp =

komp is_xkomv = xkomv ).

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

总结

通用加点率配置尝试通过一个配置表实现所有的加点率/定价的获取逻辑.

局限于配置中允许的表

• KOMK 定价通讯抬头

• KOMP 定价通讯项目

• XKOMV 定价通讯-条件记录

• MARA 商品主数据

• T001W 地点主数据

• LFA1 供应商主数据

• KNA1 客户主数据

可以使用这些表中的任意字段组合配置加点率的获取,一劳永逸的解决了加点率(/定价)的配置及获取逻辑.

这个配置表也可以作为一个通用条件表来使用. 但是考虑通用条件表可能会基于商品编码等属性维护,数据量较大, 还是应用标准方案创建特定条件表合理一些.

对于较低数据量的条件,可以使用这个配置表实现.

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

SAP 工具箱通用条件加点率配置 - 封面图
SAP 工具箱通用条件加点率配置 - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP工具箱通用条件加点率配置.md」整理生成,仅用于内部技术分享与学习交流。