0

我正在尝试使用 java-hibersap 调用 Bapi,Bapi 导入/导出如下所示:

IMPORTING
 VALUE(IT_LAYOUT) TYPE  ZMM_T_RFC_LAYOUT
EXPORTING
 VALUE(ET_MENSAJES) TYPE  ZMM_T_RFC_RETURN
...

类型是带有表格线的表格,其中包含此复杂参数的元素

我映射了java类,如:

@Bapi("ZMFMM_RFC_REPLICACION")
public class RFC_SEND_REPLICATION_Bapi
{
@Import
@Table
@Parameter("IT_LAYOUT")
private List<It_Layout> importReplication;

@Export
@Table
@Parameter("ET_MENSAJES")
private List<Et_Mensajes> exportReplication;
...

以及带有 BapiStructure 注释的 It_Layout、Et_Mensajes 类:

@BapiStructure
public class It_Layout
{
@Parameter("MARA_MATNR")
private String code;

@Parameter("MARA_MATKL")
private String groupItems;
...

当我执行 Bapi

rfc_SEND_REPLICATION_Bapi = new RFC_SEND_REPLICATION_Bapi();
rfc_SEND_REPLICATION_Bapi.setImportReplication(rfc_REPLICATION_Imports);
jcoSession.execute(rfc_SEND_REPLICATION_Bapi);

抛出异常 NullPointerException,我尝试了不同的方法来填充导入参数,但它还不起作用。

4

1 回答 1

1

我已经解决了这个问题,解决方案是更改导入和导出的注释,现在看起来像:

@Import 
@Parameter(value = "IT_LAYOUT", type = ParameterType.TABLE_STRUCTURE)

没有@Table 注释,就解决了这个问题。

于 2017-11-06T16:55:44.790 回答