我试图用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,我尝试了不同的方法来填充导入参数,但它还没有用。
答案 0 :(得分:0)
我已经解决了这个问题,解决方案是更改导入和导出的注释,现在看起来像:
@Import
@Parameter(value = "IT_LAYOUT", type = ParameterType.TABLE_STRUCTURE)
没有@Table注释,就解决了这个问题。