Итак, не большое резюме с дополнениями, кроме уровня партии, надо учитывать таблицы и вид класса (023, 022).
Все эти данные возвращает все та же функция VB_BATCH_DEFINITION.
DATA: l_objecttable TYPE bapi1003_key-objecttable. " OBTAB Таблица TCLT-OBTAB
DATA: gv_batch_level LIKE tcuch-kzdch. " Batch-Level
DATA: classtype TYPE tcla-klart. " Вид класса
" Макрос
" См. http://sapforum.biz/index.php/topic,222.0.html
DEFINE ext_to_int.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = &1
IMPORTING
OUTPUT = &2.
END-OF-DEFINITION.
" Формируем ключ, зависит от уровня и таблицы
CALL FUNCTION 'VB_BATCH_DEFINITION'
IMPORTING
kzdch = gv_batch_level
klart = classtype
obtab = l_objecttable.
CASE gv_batch_level.
WHEN 0.
"l_objecttable = 'MCHA'.
ext_to_int: rs_mseg-matnr l_objectkey(18),
rs_mseg-werks l_objectkey+18(4),
rs_mseg-charg l_objectkey+18(10).
WHEN 1.
"l_objecttable = 'MCH1'.
ext_to_int: rs_mseg-matnr l_objectkey(18),
rs_mseg-charg l_objectkey+18(10).
WHEN 2.
"l_objecttable = 'MCH1'.
ext_to_int: rs_mseg-charg l_objectkey+18.
ENDCASE.
" Дальше ключ можно использовать в BAPI выбора или изменения значений признаков,
" например: BAPI_OBJCL_CHANGE