FORM 和 PERFORM 中的不同参数计数

Different parameter count in FORM and PERFORM

我正在尝试在现有代码中的 FORM 和 PERFORM 中添加形式参数,因为我将需要它作为我必须调用的新函数中的额外参数。这个想法是,当执行新代码时,它一直显示错误:FORM 和 PERFORM 中的不同参数计数(例程:CM_SHOW_CRC,形式参数的数量:2,实际参数的数量:3) .

我的表单部分的代码如下:

FORM cm_show_crc
  USING
    civ_matnr TYPE matnr                  
    civ_charg TYPE charg_d                
    civ_werks TYPE werks_d.          "The parameter that I added    

执行代码为:

 PERFORM cm_show_crc
        USING
          pis_sdow_alv-matnr
          pis_sdow_alv-charg
          pis_sdow_alv-werks.        "The parameter that I added

table pis_sdow_alv 是一种结构类型,它还包括变量 WERK(组件类型 WERKS_D )

在添加新参数 WERK 之前代码运行良好。

有谁知道这部分代码的问题是什么?

还有另一个类似的问题:,但是我没有在我的代码中使用语法 CHANGING,因为之前也没有使用它。

如果您需要更多信息,请告诉我。

先谢谢大家了!

FORMPERFORM 在不同的包含中并且您只激活一个而没有激活另一个时,可能会出现此问题。

当您激活一个包含时,它会根据它所依赖的所有其他存储库对象的 active 版本进行检查。不是 saved 版本。这可能会导致恼人的 catch-22 情况。无法激活A,因为它与之前版本的B不匹配,你无法激活B,因为它与之前版本的A不匹配。

这个难题的解决方案是同时激活两个对象。当你在 SE80 中激活某些东西并且你有多个不活动的对象时,你会得到一个 window 在那里你可以 select 多个对象一起激活:

在 Eclipse 中,您可以通过单击“激活多个”按钮获得类似的列表: