【问题标题】:How to use orderby with jco in java如何在java中使用orderby和jco
【发布时间】:2019-07-10 14:36:09
【问题描述】:

我是sap和jco的新手,所以请原谅我的新手错误
我想在 jco java 库中使用 orderby 子句,但在互联网上没有找到任何提示。

  1. 此代码获取表名,但我想按顺序获取数据。

  2. 第二件事是如果只想获取行数,那么我该如何获取 那个?

    JCoDestination client = (JCoDestination) sapconnector.getBaseConnection();
    JCoRepository repo = client.getRepository();
    JCoFunctionTemplate ftemplate = repo.getFunctionTemplate(dataSource.getRfcName());
    JCoFunction function = ftemplate.getFunction();
    JCoParameterList input = function.getImportParameterList();
    input.setValue(QUERY_TABLE, "DD02L");
    
    JCoParameterList output = function.getExportParameterList();
    
    JCoTable fieldsTable = 
    function.getTableParameterList().getTable("FIELDS");
    fieldsTable.setRow(0);
    fieldsTable.setValue("FIELDNAME", "TABNAME");
    // ???? sort TABNAME ASC|DESC
    function.execute(client);
    
    System.out.println("result:" + output.toXML());
    

【问题讨论】:

    标签: java sap jco


    【解决方案1】:

    根据您使用的命名约定,例如“QUERY_TABLE”,我假设您使用的是RFC_READ_TABLE,这可能是“getRfcName()”所暗示的。在这种情况下,没有ORDER BY。如果您需要ORDER BY,则必须编写自己的自定义 RFC 功能模块。

    对于第二个问题,要获取表的记录数,请使用函数EM_GET_NUMBER_OF_ENTRIES,然后:

    JCoTable inputTable = function.getTableParameterList().getTable("IT_TABLES"); inputTable.appendRow(); inputTable.setValue("TABNAME", "<table_name>");

    【讨论】:

    • 如果我使用 EM_GET_NUMBER_OF_ENTRIES 作为 rfc 名称并获取函数模板导入参数列表和导出参数列表为空,那么如何使用它?任何文档或源链接?
    • 您必须将参数 IT_TABLES 导入为表格,并将第一个字段“TABNAME”作为您的表格名称。然后,结果在“TABROWS”字段中。这里主要是为表参数设置值。请参阅我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多