当使用结构表作为Import执行Bapi时,Hibersap会抛出nullpointerexception

时间:2017-11-03 22:23:55

标签: java nullpointerexception sapjco3

我试图用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;
...

和It_Layout,Et_Mensajes类的BapiStructure注释:

@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,我尝试了不同的方法来填充导入参数,但它还没有用。

1 个答案:

答案 0 :(得分:0)

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

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

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