AUFBAUEN_MDPSX_ANZEIGEN - Собственно эта функция вызывается когда запускают транзакцию MD04 или MD01 и т.д. она проводит весь расчет и на выходе возращает таблицу которую уже и показывает пользователю транзакция MD04 и остальные. В общем тут надо было перехватить вывод от MD04 по принципу как хотелось сделать вот в этой теме: You are not allowed to view links.
Register or
Login, но тут все оказалось проще, есть ФМ, который можно вызвать передав ему немного параметров и получить на выходе нужные нам данные. Пример вызова обернул в программку, так как разбираться со всеми параметрами не было времени:
*&---------------------------------------------------------------------*
*& Report YUUK_SELECT_MD04
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT yuuk_select_md04.
TYPE-POOLS: mrp, m61x.
DATA: ls_cmt61d LIKE mt61d,
ls_cm61x LIKE cm61x,
ls_cm61w LIKE cm61w,
ls_t399d LIKE t399d,
ls_cm61b TYPE m61x_cm61b,
ls_sfilt LIKE sfilt,
lt_mdpsx LIKE mdps OCCURS 1 WITH HEADER LINE.
CALL FUNCTION 'MD_READ_MATERIAL_SIMPLE'
EXPORTING
ewerks = '1000' "Завод
ematnr = 'M1' "Материал
eberid = '1000' "Область планирования
ekzrfb = 'X' "Сбросить буфер, читать данные
CHANGING
cmt61d = ls_cmt61d
EXCEPTIONS
material_mrp_area_not_found = 1
missing_parameter = 2
material_plant_not_found = 3
material_mrp_area_deleted = 4.
ls_cm61x-plobj = 'B'. "Объект управления транзакцией ППМ
ls_cm61x-plauf = 'B4'. "Вид выполнения ППМ
ls_cm61x-plakt = 'A'. "Типы операций в ППМ (А - Все операции)
ls_cm61x-dispd = sy-datum.
ls_cm61w-fabkl = '01'. "Код производственного календаря из завода
ls_cm61w-umthz = '100'. "Горизонт перепланирования сроков
ls_cm61w-gterm = 'X'. "Планирование сроков на основе инфо-записи или договора
ls_cm61w-dispd = sy-datum.
* Управляющие параметры для ППМ
SELECT SINGLE * INTO ls_t399d
FROM t399d WHERE werks = '1000'.
ls_cm61b-disfg = 'X'. "Активация областей планир. потребности на уровне манданта
ls_cm61b-berid = '1000'. "Область планирования
ls_cm61b-berty = '01'. "Вид области планирования потребности
ls_cm61b-werzg = '1000'. "Завод
* Данные по прогону ППМ
CALL FUNCTION 'AUFBAUEN_MDPSX_ANZEIGEN'
EXPORTING
emt61d = ls_cmt61d
ecm61x = ls_cm61x
ecm61w = ls_cm61w
et399d = ls_t399d
ecm61b = ls_cm61b
esfilt = ls_sfilt
TABLES
mdpsx = lt_mdpsx
EXCEPTIONS
error_message = 01.
BREAK-POINT.
lt_mdpsx - необходимые нам данные. Вообще-то, все что нам надо узнать по параметрам можно получить поставив точку останова в вызове этого ФМ и уже по аналогии смотреть информацию дальше.