如何基于incoterm-header在va01中自动添加条件类型?

2020-08-18 15:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我已经创建了例程(VOFM->需求->定价),并编写如下代码。

当Incoterm标头等于SCO或EXW时,我想在VA01中显示条件类型(ZC06)。

但是,现在发生的是ZC06总是出现在所有国际贸易术语解释通则中。

routine.jpg (30.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我已经创建了例程(VOFM->需求->定价),并编写如下代码。

当Incoterm标头等于SCO或EXW时,我想在VA01中显示条件类型(ZC06)。

但是,现在发生的是ZC06总是出现在所有国际贸易术语解释通则中。

routine.jpg (30.6 kB)
付费偷看设置
发送
4条回答
天桥码农
1楼-- · 2020-08-18 16:21

当您可以简单地使用用于创建条件记录的定价表中的incoterms字段时,我不明白为什么需要为此创建VOFM例程。 如果您仅具有包含incoterms的定价表,并且仅创建SCO和EXW的条件记录,则不需要其他编码。

如果企业真的担心有人会为其他incoterms创建条件记录 -可以通过BTE 503305进行处理,但是由于定价条件维护通常是集中的,因此在许多公司中这不是必需的。

在不了解定价设置且没有有关已执行的故障排除步骤的信息的情况下 到目前为止,很难说出您做错了什么。

您似乎不是SD顾问。 您是否与SD同事谈过您正在处理的案件? 除了开发之外,还有一个定制部分-顾问必须在过程中分配例程,然后传输更改,以便您可以测试设置。

我不是开发人员,但是在您的 例行程序中,我看不到任何将sy-subrc设置为非零值的语句,据我理解,这意味着即使配置正确,只要在销售文档中确定了条件,该条件就始终会被设置。

对例程进行故障排除的最简单方法是,在确保配置正确之后,在例程中放置一个断点并转到定价屏幕。 从那里可以很容易地检查为什么代码无法按预期工作。

如果您是我,我会尽量避免在定价例程中进行硬编码-业务需求可能经常更改,通常 定义自定义表以存储所需值并将其留给功能顾问进行维护的效率更高。

灬番茄
2楼-- · 2020-08-18 16:12

saddam hussain 我的意思是不使用SD定价的标准功能 发展。

这里是简化版:SD定价使用条件技术。 对于条件类型,您具有访问顺序。 访问顺序是用于创建条件记录的定价表的集合。 要确定销售单据中的条件记录,先决条件之一是条件记录中的值与销售单据中的值匹配。

比方说,我们有一个条件类型Z007,您对其具有一个包含单个定价表的访问序列,该定价表由销售组织,分销渠道和国际贸易术语解释通则组成。 您为销售组织1000,分销渠道10和国际贸易术语解释通则创建条件记录,并将记录的有效性设置为从21.05.2020到15.06.2020。 然后创建定价日期为27.05.2020,销售组织1000,分销渠道10的销售订单,并设置incoterms FH。 由于没有针对1000/10/FH的组合的有效条件记录,因此无法确定条件。 现在,您为同一日期,销售组织,分销渠道创建订单,但是您使用incoterms EXW。 将确定条件,因为您具有字段组合的有效条件记录,并且没有例程或其他自定义逻辑来阻止确定条件。 现在,SCO incoterms呢? 如果一周后告诉您他们忘记了销售组织1100和incoterms DDU的特殊规则怎么办? 业务需要为此在VK11中创建条件记录(这需要一分钟),您无需执行任何操作。 使用例程,每次他们想出东西时,您都必须修改代码逻辑。

如果您向职能顾问询问相同的问题,他们应该能够理解我的要求,如果他们不理解该问题,或者他们不能为不使用标准方法提供充分的理由-那么

xfwsx85
3楼-- · 2020-08-18 16:20

嗨,

如果您创建了例程,则也需要激活它。 (并且需要在定价方案中分配它,然后才能执行)

可以在此处找到完整指南: https://sapcodes.com/2018/05/13/sd-formulas-used-in-pricing-procedure/

还要注意检查语句,如果检查失败,这些语句将退出例程。 (在这种情况下,当inco1 = EXW时,将退出该例程,并设置sy-subrc =4。(这肯定不会使该条件可见)

我会尝试以下操作:

 IF komk-inco1 ='SCO'或komk-inco1 ='EXW'。
   sy-subrc = 0。
 其他。
   sy-subrc = 4。
 ENDIF。

您可能需要根据级别(标题或项目)在KOBEV和KOBED例程中实现此逻辑。

最诚挚的问候,

Geert -Jan Klaps

一只江湖小虾
4楼-- · 2020-08-18 16:17

我尝试您的代码,但是它不起作用。 ZC06不出现。

一周热门 更多>