java 如何处理任何使用jco3.jar的BAPI返回的字符串列表?

0yg35tkg  于 2023-05-05  发布在  Java
关注(0)|答案(1)|浏览(78)

我有一个要调用的BAPI函数,它接受一个字符串作为输入,并返回一个字符串列表作为输出。我在我的java代码中使用jco3.jar文件,但无法找到任何将字符串列表(String[])作为输出参数的内置方法,尽管我们有ByteArray/CharArray。

function.getExportParameterList().getString(“I_DOCNUM”);//如果返回参数-“I_DOCNUM”的类型仅为String,但不适用于String List,则可以工作。

请帮帮我先谢谢你了。
Java代码:

JCoDestination destination = JCoDestinationManager.getDestination("mySAPSystem");
System.out.println("Attributes:");
System.out.println(destination.getAttributes());
System.out.println(destination.getRepository());
destination.ping();
JCoFunction function = destination.getRepository().getFunction("INBOUND_IDOCS_FOR_TID");
if(function == null)
  throw new RuntimeException("INBOUND_IDOCS_FOR_TID not found in SAP.");
  function.getImportParameterList().setValue("TID", "0A80351B1927589833E57997");
  
  try
  {
  function.execute(destination);
  }
  catch(AbapException e)
  {
  System.out.println(e.toString());
  return;
  }
    
  System.out.println("STFC_CONNECTION finished:");
  System.out.println(" Echo: " + function.getExportParameterList().getString("I_DOCNUM"));

功能模块:

INBOUND_IDOCS_FOR_TID. 
*"---------------------------------------------------------------------- 
*"*"Lokale Schnittstelle: 
*"  IMPORTING 
*"     VALUE(TID) TYPE  EDIDS-TID 
*"  CHANGING 
*"     VALUE(I_DOCNUM) TYPE  IDOC_TT 
*"  EXCEPTIONS 
*"      NO_IDOC_FOUND 
*"---------------------------------------------------------------------- 
data: wa_docnum like edidc-docnum. 
  select docnum from edids into wa_docnum 
         where ( status eq '50' 
              or status eq '56' ) 
         and tid eq tid. 
    append wa_docnum to i_docnum. 
  endselect. 
  if sy-subrc ne 0. 
    raise no_idoc_found. 
  endif. 
ENDFUNCTION.
wwtsj6pe

wwtsj6pe1#

IDOC_TT是一种表类型。因此,您可以使用

JCoTable tabIDocnums = function.getChangingParameterList().getTable("I_DOCNUM");

然后遍历表中的行,并使用以下命令访问每行的单个字段值:

String strIDocNumber = tabIDocnums.getString("EDI_DOCNUM");

或者通过字段索引获得更高的性能:

String strIDocNumber = tabIDocnums.getString(0);

相关问题