Material账本一致性校验功能模块

Material Ledger consistency check function module

是否有功能模块或 BAPI 或方法可以很好地为给定的 material 执行 material/material 账本一致性检查?

我知道报告 SAPRCKMU 很难在我自己的程序中使用。

我也知道并使用执行一致性检查的功能模块 CKML_F_CKML1_PRICES_GET

当这个功能模块发现不一致时,它调用MESSAGE E...这意味着我失去了对程序的控制。这是我的核心问题。

所以我正在寻找一种在调用 CKML_F_CKML1_PRICES_GET 之前检查一致性的方法,这种方法可以在不调用 MESSAGE E 的情况下为我提供带有错误消息的 return 参数...

我找到了一个非常有效的解决方案:

将行error_message = 99添加到功能模块调用中:

CALL FUNCTION 'CKML_F_CKML1_PRICES_GET'
   ....
EXCEPTIONS 
   ...
   error_message = 99
   others = 98.

现在,当功能模块本身使用 MESSAGE E... 而不是 RAISE ... 时,程序不会中断控制流。

每当在内部调用MESSAGE E...时,它被转换为SY-SUBRC = 99并且SY-...中的error-fields也被设置。