通过RFC的RFC_READ_TABLE函数获取数据,FIELDS和OPTIONS属性该如何设置,例如
IFunctionTemplate ft = myRepository.getFunctionTemplate("RFC_READ_TABLE");
function = ft.getFunction();
  if (function == null) {
    System.out.println("Can't create function!");
    return;
  }
            
JCO.ParameterList input = function.getImportParameterList();
input.setValue("******", "QUERY_TABLE");
input.setValue(";", "DELIMITER");
input.setValue(0, "ROWSKIPS");
input.setValue(10, "ROWCOUNT");
client.execute(function);

解决方案 »

  1.   

    希望能帮到你public static Client getConnection() { /* 获得一个到SAP系统的连接 START */ Properties logonProperties = new Properties(); logonProperties.put("jco.client.ashost", "192.168.1.10"); // 系统的IP地址 logonProperties.put("jco.client.client", "700"); // 要登录的客户端 logonProperties.put("jco.client.sysnr", "03"); // 系统编号 logonProperties.put("jco.client.user", "xtbg"); // 登录用户名 logonProperties.put("jco.client.passwd", "123456"); // 用户登录口令 // 用上述条件创建一个连接对象 Client myConnection = JCO.createClient(logonProperties); return myConnection;
    } public static void getData(int id) {
    Client myConnection = getConnection(); /* 获得一个到SAP系统的连接 END */ myConnection.connect(); // 进行实际连接 // 如果连接不为null并且处于活动状态 if (myConnection != null && myConnection.isAlive()) { // 从连接获得一个逻辑意义上的“仓库”对象(Repository) JCO.Repository myRepository = new JCO.Repository("hui",
    myConnection); // 只是一个名字 // 活动的连接 // 要调用的SAP函数名称 String strFunc = "Z_IS_TELF_DANSO_NEW"; // 从“仓库”中获得一个指定函数名的函数模板 IFunctionTemplate ft = myRepository.getFunctionTemplate(strFunc
    .toUpperCase()); // 从这个函数模板获得该SAP函数的对象 Function function = ft.getFunction(); // 获得函数的import参数列表 ParameterList input = function.getImportParameterList(); // 设定一个import参数的值。参数名为“MAX_ROWS”,设定值为10 // System.out.println(input); // input.getField("IM_KUNNR").setValue("0000100001");
    input.setValue("0000" + id, "IM_KUNNR"); myConnection.execute(function); Table flights = function.getTableParameterList().getTable(
    "IT_KNA1_ZPO"); ParameterList list = function.getTableParameterList(); // System.out.println(list); // JCO.Table对象可以直接输出到html文件 // flights.writeHTML("C:/function.html"); // System.out.println(flights.getNumRows() + "    count ..."); for (int i = 0; i < flights.getNumRows(); i++) { flights.setRow(i); System.out.println(flights.getString(0) + "     "
    + flights.getString(1) + "      "
    + flights.getString(2)); }
    System.out.println(id+"     ---------");
    // 断开连接 myConnection.disconnect(); } else { System.out.println(false); } }
      

  2.   

    如果数据量超过512个字节,就报错,我想取表中的部分数据,不知道该怎么设置FIELDS这个属性