您的位置:首页 > 其它

【转载】SAP 采购订单进项税VOFM 例程增强

2018-01-17 17:09 543 查看
事务代码:

VOFM

系统已定义好一些范例计价方案,计价方案由一系列按一定规则组织的计价条件类型组成,针对本例,假设定义计价方案ZFRM01,包扩6个条件:

PB00:信息记录中的含税价格。

ZM01:通过计算类型增强909算出的应交进项增值税。

909增强代码如下表:
*909通过含税价格计算出采购净价,反应到条件类型ZM01上,注意XKOMV-KAWR表示

*条件基价(请SE11查看KOMV),即信息记录价格,比如信息记录含税价为1170元/个,则其中

*价外增值税为(1170/1.17得到净价)* 17%, 909考虑不同税率情况.

FORM FRM_KONDI_WERT_909.

CASE KOMP-MWSKZ .

WHEN 'J1'. "17%

XKWERT = XKOMV-KAWRT * 17 / 117 * ( -1 ).

WHEN 'J2'. "13%

XKWERT = XKOMV-KAWRT * 13 / 113 * ( -1 ).

WHEN 'J3'. " 7%

XKWERT = XKOMV-KAWRT * 7 / 107 * ( -1 ).

WHEN 'J4'. " 4%

XKWERT = XKOMV-KAWRT * 4 / 104 * ( -1 ).

WHEN 'J5'. " 5%

XKWERT = XKOMV-KAWRT * 5 / 105 * ( -1 ).

WHEN 'J6'. " 6%

XKWERT = XKOMV-KAWRT * 6 / 106 * ( -1 ).

WHEN 'J0'.

XKWERT = 0.

ENDCASE.

ENDFORM.
ZM05:通过计算类型增强908算出应计入材料成本的运输费用。

增强908代码简单,假设可抵扣运输增值税发票上是100元,由于是运输增值税为价内税(通常税率为7%),则进入存货成本为100/1.07 = 93.46,可抵扣税额为6.54元,增强代码就一句 :

XKWERT = XKOMV-KWERT * 100 / 107.

REQUEST释放后可以传输到目标系统,但是问题就出现在传输。如果只是传输,是无法正常使用的。这是SAP的一个BUG。要了解这个BUG,先要了解SAP例程的工作原理。

例程工作原理

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

创建例程的过程

实际上是做了以下几件事,我们以要求–定价–998例程为例说明:

1 创建了程序:RV61A998,改程序可通过SE38查看

2 在表TFRM、TFRMT中添加数据,记录创建的例程编号等信息

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

下面解释下传输后无法正常使用。

CHANGE REQUEST释放后传输,1、2两步可以正常完成,但是第三步,虽然在目标系统中激活了,但是未能INCLUDE在RV61ANNN程序中,因此定价过程配置好之后,会出现ABAP DUMP.

解决方法

在目标系统中运行程序:RV80HGEN即可修复BUG,而不需要在目标系统中通过VOFM激活例程。该程序的作用是根据表TFRM,TFRMT在 RV61ANNN等程序中增加INCLUDE RV61A998这样的代码,如此才能正常运行。具体见Notes:28683
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: