Как использовать orderby с JCO в Java - PullRequest
0 голосов
/ 10 июля 2019

Я новичок в sap и jco, так что простите мои ошибки новичка
Я хочу использовать предложение orderby с jco java-библиотекой, но не нашел намека на это в интернете.

  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());
    

1 Ответ

0 голосов
/ 10 июля 2019

Из соглашения об именах, которое вы использовали, например, "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>");

...