как ограничить количество столбцов таблицы в выводе bapi

При запросе BAPI нас обычно интересуют только несколько столбцов таблицы.

Например, таблица PO_ITEMS (в разделе BAPI_PO_GETITEMS) имеет 58 столбцов. При запросе меня интересуют только 10 из этих столбцов. Но ответ BAPI содержит все столбцы, что является накладными расходами.

В мире SQL мы всегда можем выбрать, какие столбцы мы хотим получить. Ответ на запрос содержит только эти столбцы, а не все столбцы.

Я помню, что где-то читал, что мы можем отключить нежелательные столбцы, приходящие в ответ. Но когда он мне нужен сейчас, я не могу найти информацию об этом.

Может ли кто-нибудь поделиться фрагментом кода для этого? Или могут помочь конкретные онлайн-ресурсы / указатели?

Спасибо


person Gana    schedule 07.12.2013    source источник


Ответы (2)


В зависимости от того, какую технологию вы используете для вызова BAPI, вы можете иногда ограничивать передаваемые параметры. Например, если вы используете SAP Java Connector (JCo 3), вы можете использовать метод setActive параметра, чтобы ограничить возможность передачи параметра. Тем не мение:

  • Насколько мне известно, вы можете включать или отключать только TABLES параметры целиком или другие параметры. Вы не можете включать или отключать отдельные столбцы.
  • Насколько мне известно, сам BAPI не знает об этом параметре - и даже если бы он знал, мало кто из реализаций позаботился бы об этом.

Иногда есть дополнительные параметры, которые позволяют вам выборочно включать или отключать поля, но это часть фактической реализации BAPI, а не какая-то вездесущая базовая технология.

person vwegert    schedule 07.12.2013
comment
Да, спасибо за это. Как вы думаете, какие альтернативные решения помогут эффективно справиться с этим? - person Gana; 13.12.2013
comment
Выясните, действительно ли эти накладные расходы вызывают у вас проблемы. В большинстве случаев это не тот момент, когда вы теряете время. - person vwegert; 13.12.2013

это не точный ответ на ваш вопрос. Я надеюсь, что это поможет. Я думаю, у нас нет возможности выбрать определенное количество столбцов из таблиц функционального модуля. но мы можем получить доступ к определенной строке из этой таблицы, например, передать обязательные значения со стороны java. .... как этот пример кода здесь я сделал для функционального модуля (а не для таблицы).

Назначение JCoDestination = JCoDestinationManager.getDestination (DESTINATION_NAME);

  JCoFunction jf=destination.getRepository().getFunction("ZUSER_DET");

jf.getImportParameterList (). setValue ("ИМЯ ПЕРВОГО", "имя пользователя");

 jf.execute(destination);

String jfex = jf.getExportParameterList (). GetString («какое-то имя столбца из возвращаемой таблицы»);

System.out.println (jfex);

он вернет строку табличного значения. вы можете манипулировать чем хотите

person Ganesh Jagan    schedule 28.12.2013
comment
Привет, Ганеш, я имел в виду количество столбцов в строке. Как объясняется в вопросе, проблема связана с столбцами, которые меня не интересуют. При использовании getTable. (PO_ITEMS) .getValue (COLUMN_NAME) мы этого не осознаем. Но если вы посмотрите на jcoFunction.getTableParameterList (). GetTable (PO_ITEMS) .toXML (), он распечатает все поля и значения, которые являются частью этой таблицы PO_ITEMS. Удачи вам в изучении большего. - person Gana; 08.01.2014