Добавить SELECT-OPTIONS для информационного набора

Я не могу правильно добавить Select-Option для параметра в информационный набор. Я получил эти параметры на экране выбора:

    REPORT  RSAQDVP_TEMPLATE .
*
*---------------------------------------------------------------------*
*   declarations
*   (insert your declarations in this section)
*---------------------------------------------------------------------*
data:
  BAPI_PLDORDCOMP_E1 type BAPI_PLDORDCOMP_E1,
  it_data type standard table of BAPI_PLDORDCOMP_E1.


field-symbols: <struc> type BAPI_PLDORDCOMP_E1.

*-------------------------------------------------------------------*
*   selection screen statements
*-------------------------------------------------------------------*
*   (define your selection-screen here)
parameters: plant_in like MARC-WERKS default 'IX09',
        pln_orde type PLAF-PLNUM.


* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_HEAD>


*-------------------------------------------------------------------*
*   read data into IT_DATA
*-------------------------------------------------------------------*
*  (select your data here into internal table IT_DATA)
call function 'BAPI_PLANNEDORDER_GET_DETAIL'
  EXPORTING
    PLANNEDORDER = pln_orde
  TABLES
    componentsdata = it_data.

Итак, в основном 2 параметра (см. скриншот в SQ01): введите здесь описание изображения

Я не понимаю, как вставить выбираемый параметр диапазона с помощью сатимента «SELECT-OPTION».

Заранее спасибо за любую помощь/предложение. С.


person SimonFreeman    schedule 01.12.2015    source источник


Ответы (1)


Пойдем.

<сильный>1. Информация:

Вы проверили этот функциональный модуль BAPI_PLANNEDORDER_GET_DETAIL? Он не принимает никаких диапазонов-таблиц/выборов в качестве аргументов для своих параметров.

<сильный>2. Предположение:

Единственное, что может быть Вашей целью, исходя из типа объявления переменной в начале,

it_data type standard table of BAPI_PLDORDCOMP_E1.

заставляет меня предположить, что вы, возможно, захотите предоставить список компонентов, и поэтому вы думаете, что вам нужна таблица диапазонов, чтобы были выбраны ТОЛЬКО ОПРЕДЕЛЕННЫЕ КОМПОНЕНТЫ.

<сильный>3. Как сделать:

Если это Ваш случай, то Вы должны создать параметры выбора на Вашем экране выбора, например: (Это может быть способом, тем не менее, Вы должны найти подходящую таблицу, где хранятся все компоненты запланированного заказа, и использовать его "имя"-матнр в "ЗА". ). Здесь просто показано, как это делается.

SELECT-OPTIONS: so_matnr FOR marc-matnr.

ЕСЛИ программа скорбит, добавьте оператор в начало, или в топ-включите:

TABLES: "TheTableNameYouWantForFor".

Если вы добавите SO_xxx в раздел вашего параметра, это неявно создаст переменную в коде, которая служит таблицей диапазонов. В отладчике можно увидеть что-то вроде этого:

введите здесь описание изображения

Теперь вы должны

  • а) ПРОАНАЛИЗИРОВАТЬ ЭТУ ДИАПАЗОННУЮ ТАБЛИЦУ, чтобы правильно ее проанализировать. Это непросто (для этого может быть функциональный модуль/метод, но я не знаю). Что Вам в основном нужно будет сделать, так это извлечь те материальные числа, КОТОРЫЕ желательны. Это не так очевидно, как кажется, потому что пользователь также МОЖЕТ ввести НЕСКОЛЬКО ДИАПАЗОНОВ / НЕСКОЛЬКО ИСКЛЮЧЕНИЙ / НЕСКОЛЬКО ОДИНОЧНЫХ ЗНАЧЕНИЙ / НЕСКОЛЬКО ВКЛЮЧЕНИЙ. Поля SIGN и OPTION отвечают за указанную выше комбинацию. И SAP предлагает многое.

Это фото покажет Вам, что это может означать.

введите здесь описание изображения

  • б) После того, как вы правильно проанализировали все материалы и действительно определили, КАКИЕ МАТЕРИАЛЫ ДОЛЖНЫ БЫТЬ ТАКЖЕ ВЫБРАНЫ (возможно, вторая таблица посредника), вы можете зациклиться на таблице so_xxx-implicit или таблице посредников в структуре, получить значение, передать его к структуре таблицы аргументов вызова bapi и НАДЕЮСЬ, что номер материала достаточен для BAPI-структуры для доставки материалов (вы должны сначала проверить это с помощью se37). Как получить материалы из таблицы неявных опций выбора?

введите здесь описание изображения

Но из того, что я вижу, и это было бы правильным способом, это самостоятельно определить обратный вызов F4, т.к. Вы уже вводите ключ запланированного заказа. Это означало бы, что у вас будет подмножество всех материалов в системе, сокращенное до тех, которые являются компонентами запланированного заказа.

Это будет включать настраиваемые F4-Helps, настраиваемые F4-HelpExits, настраиваемые обратные вызовы F4.

Еще немного усилий.

На самом деле слишком много для такого простого запроса.

<сильный>4. Вывод:

Проверяем, что делает BAPI, частично его переписываем (проверьте выбранные таблицы, se37 и st05 до se37 подскажет), сами пишете правильный код (или копипастите из bapi), а можно использовать матнр-диапазон как написано выше.

person icbytes    schedule 02.12.2015