博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个关于VOFM的文章
阅读量:2032 次
发布时间:2019-04-28

本文共 872 字,大约阅读时间需要 2 分钟。

问题描述

 

SAP ERP 实施中,经常会用到例程开发(TCODE:VOFM)。创建例程需要ACCESS KEY,这个可以通过申请得到,创建后例程会被包含在一个REQUEST下,例程创建之后还不能马上使用,需要激活,如图所示。

 

 

 

 

否则无法正常使用。

 

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

你可能感兴趣的文章
IntelliJ IDEA Java 中如何快速插入 try / catch
查看>>
错误码如何设计才合理?
查看>>
三条你必须知道的软件开发原则
查看>>
代码的抽象三原则
查看>>
如何写出健壮的代码?
查看>>
如何写好代码?
查看>>
警惕软件复杂度困局
查看>>
工作笔记2
查看>>
Redis与MySQL双写一致性如何保证?
查看>>
服务端高并发分布式架构演进之路
查看>>
电商的千人千面系统,这样搞比较靠谱
查看>>
面试官:啥是集群策略啊?
查看>>
如何有效减少Java内存占用过高
查看>>
try-catch-finally中的4个大坑,老程序员也搞不定
查看>>
Java 6种延时队列的实现方法
查看>>
SpringBoot之CommandLineRunner
查看>>
SpringBoot之CommandLineRunner接口和ApplicationRunner接口
查看>>
Redis、Kafka 和 Pulsar 消息队列对比
查看>>
如何做到每天比别人少写200行代码?
查看>>
面试题系列:Java 夺命连环16问
查看>>