Oracle EBS 高级定价模块中怎么设置一个 Freight 金额是基于 SO 行发运数量去计算的

作者:郑德鼎 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:SD, WM, 仓库管理, 销售分销
目录

田锡剑

Oracle EBS高级定价模块中怎么设置一个Freight金额是基于SO行发运数量去计算的?

原创 田锡剑 爱记不记的记忆碎片

问 题

Oracle EBS高级定价模块中怎么设置一个Freight金额是基于SO行发运数量去计算的?

答 案

引言

在EBS的高级定价模块中,可以灵活的去定义一些修改量(运费,折扣)去应对在实际销售业务的需要,修改量还可以结合限定词进行灵活使用,确保用户能够在特定的业务场景选择正确的修改量从而确保AR开票正确。

这里我们主要介绍的是一种特殊场景的功能实现:大家知道一般情况下运费都是在发运前提前就在订单上维护好的一个金额,然后去进行发运开票。这里的特殊情况是企业要求运费的金额是基于当前发运数量去计算的,发运出去了才能知道运费是多少。(适用于零担或者大宗商品的运输…视具体业务需求而定)

设置

1.利用Oracle的包CUX_QP_SOURCING_API_PUB,Function: FUNCTION get_shipped_quantity(p_line_id IN NUMBER)去获取发运数量。

2.创建一个Context and Attributes

Responsibility: Oracle Pricing Manager

Navigate to: Setup > Attribute Management > Context and Attributes

查找type = Pricing Context, Code = Pricing Attribute

然后加一条记录:

Code = SHIPPED_QTY (or whatever you wish to name it)

Description – Shipped Quantity

Column Mapped = Pricing_attribute25  <

select next available pricing_attributeXX

>

Value Set = QP: Number

3. Attribute mapping

Responsibility: Oracle Pricing Manager

Navigate to: Setup > Attribute Management > Attribute Linking and Mapping

查找头:

Pricing Transaction Entity = Order Fulfillment,

Context type = Pricing Context

查找行:Code = Pricing Attribute

点击Link Attributes

3.1 加一行记录:

Code = SHIPPED_QTY, level = LINE, Attribute Mapping Method = Attribute Mapping

然后点击Attribute Mapping

然后加一行记录:

Application Name = Advanced Pricing for request type = ONT

Under Line Level

Enter user source type = PL/SQL API

User Value String =CUX_QP_SOURCING_API_PUB.GET_SHIPPED_QUANTITY(OE_ORDER_PUB.G_LINE.LINE_ID)

3.2 运行Build Attribute Mapping Rules 创建关联

4.创建修改量的Formula

Responsibility = Oracle Pricing Manager

Navigate: Pricing Formulas > Formula Setup

formula name =SHIPPED_FRIGHT

formula = 1*2*3

step 1 pricing attribute Shipped Quantity

step 2 List Price -- this is the unit price in the SO line

step 3 Modifier Value    --This is the step represents that the value comes from modified value

这样的设置就能得到Formula value = shipped quantity * list price * modified value

4.1 Run Build Formula Package

5.创建运费的修改量

Responsibility = Oracle Pricing Manager

Navigate: Modifiers>Modifier

使用刚刚创建好的Formula

Formula = SHIPPED_FRIGHT

Application Method = Lumpsum (the option means that the freight will be calculated according to formula, but not ordered quantity)

Value = 0.04   (which means that the freight = shipped quantity * list price * 0.04)

6.针对这个修改量运行QP: Maintains the denormalized data in QP Qualifiers

7.在订单类型中加一个行流:Line Flow - Generic, with Reprice at Fulfillment

测试

Before ship-1:订单发运前运费为0

Before ship-2:发运13个

After ship-1

发运13个,则freight charges = shipped quantity * list price * modified value = 13*16.16*0.04=8.4032

这样就实现了运费是基于发运完成的数量去计算的了。

﹏﹏

﹏﹏

作者 :田锡剑

审核 :陆   觉

编辑 :王   锐

郑德鼎

关于作者:郑德鼎

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

来源说明:本文内容由「OracleEBS高级定价模块中怎么设置一个Freight金额是基于SO行发运数量去计算的.docx」整理生成,仅用于内部技术分享与学习交流。