首页 > 解决方案 > BAPI_CONTRACT_CREATE 错误“输入物料编号或科目分配类别”

问题描述

在此处输入图像描述我正在使用 BAPI_CONTRACT_CREATE 在 ME31K 中上传合同订单。

出于测试目的,我在 SE37 中维护了与上述 BAPI 相关的所有参数。

但是即使材料代码和所有其他字段都保留在各个字段中,系统也会显示错误。

请找到随附的屏幕截图以供参考。

标签: abapbapi

解决方案


我的 2 美分,因为这种错误在许多 BAPI 函数中很常见。

BAPI 函数的参数经常加倍,例如一个命名ITEM,另一个相应命名并以X( ITEMX) 为后缀。此附加参数具有完全相同的字段,具有相同的名称但具有一个字符的长度,其值可以是 ' ' 或 ' X'。

' X' 表示ITEM必须更改中的相应字段。在用于更改现有对象、强制将字段更改为空值的 BAPI 中可以更好地理解这些双参数的兴趣。具有空值的字段表示“没有变化”。

示例代码:

DATA: items   TYPE TABLE OF BAPIMEOUTITEM,
      items_x TYPE TABLE OF BAPIMEOUTITEMX.

items = VALUE #(
   ( item_no = '00010' material = 'MAT01' )
   ( item_no = '00020' material = 'MAT02' ) ).
items_x = VALUE #(
   ( item_no = '00010' material = 'X' )
   ( item_no = '00020' material = 'X' ) ).
...
CALL FUNCTION 'BAPI_CONTRACT_CREATE'
  TABLES
    item   = items
    itemx  = items_x
...

推荐阅读