Добрый день.
Была задача выдернуть информацию по остаткам на дату.
Рыл инет. Ничего рабочего не нашел. Или плохо искал? Ткните ссылкой ежели так
Сделал своё.
Вдруг кому поможет.
Функция основана на выдергивании содержимого ALV после SUBMIT-а.
Сначала дергается, так сказать, заголовок (BESTAND) а потом проводки (MSEG_LEAN)
Цитата:
EHP7 FOR SAP ERP 6.0 EHP7 FOR SAP ERP 6.0
SAP ERP 2005
SAP NETWEAVER 7.4
Code:
DATA MATNR TYPE MATNR.
DATA LGBST TYPE LGBST.
DATA BWBST TYPE BWBST.
DATA SBBST TYPE SBBST.
DATA HEAD TYPE CHAR1.
DATA BODY TYPE CHAR1.
DATA MATNR_RANGE TYPE STANDARD TABLE OF CURTO_MATNR_RANGE.
DATA WERKS_RANGE TYPE STANDARD TABLE OF CURTO_WERKS_RANGE.
DATA LGORT_RANGE TYPE STANDARD TABLE OF JITO_LGORT_RANGE.
DATA BUDAT_RANGE TYPE STANDARD TABLE OF DATUM_RANGE.
DATA BESTAND TYPE STANDARD TABLE OF YMM_BESTAND.
DATA MSEG_LEAN TYPE STANDARD TABLE OF YMM_MSEG_LEAN.
CALL FUNCTION 'ZMM_GET_MB5B'
EXPORTING
matnr = matnr
lgbst = 'X'
bwbst = space
sbbst = space
head = 'X'
body = 'X'
TABLES
werks_range = s_werks
lgort_range = s_lgort
charg_range = s_charg
bwart_range = s_bwart
budat_range = s_budat
bestand = bestand
mseg_lean = mseg_lean.
************************************************************************
FUNCTION zmm_get_mb5b .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" REFERENCE(MATNR) TYPE MATNR
*" REFERENCE(LGBST) TYPE LGBST DEFAULT 'X'
*" REFERENCE(BWBST) TYPE BWBST
*" REFERENCE(SBBST) TYPE SBBST
*" REFERENCE(HEAD) TYPE CHAR1 DEFAULT 'X'
*" REFERENCE(BODY) TYPE CHAR1 DEFAULT 'X'
*" TABLES
*" WERKS_RANGE STRUCTURE CURTO_WERKS_RANGE
*" LGORT_RANGE STRUCTURE JITO_LGORT_RANGE OPTIONAL
*" CHARG_RANGE STRUCTURE MGA_CHARG_RANGE OPTIONAL
*" BWART_RANGE STRUCTURE BWART_RANGE OPTIONAL
*" BUDAT_RANGE STRUCTURE DATUM_RANGE
*" BESTAND STRUCTURE YMM_BESTAND
*" MSEG_LEAN STRUCTURE YMM_MSEG_LEAN
*"----------------------------------------------------------------------
* Reference program (copy from) : MB5B report - RM07MLBD
* Development specification ID : xxx
* Process team contact person/team name: xxx
* Date created : 15.03.2017
* Programmer : Konstantin Polushkin
* Description : Get result table of tr. MB5B
************************************************************************
DATA: lr_pay_conf_data TYPE REF TO data,
lr_pay_conf_data1 TYPE REF TO data.
FIELD-SYMBOLS:
<lt_pay_conf_data> TYPE STANDARD TABLE,
<ls_pay_conf_data> TYPE any,
<lv_field> TYPE any,
<lt_pay_conf_data1> TYPE STANDARD TABLE,
<ls_pay_conf_data1> TYPE any,
<lv_field1> TYPE any.
DATA: lr_ex TYPE REF TO cx_salv_bs_sc_runtime_info,
lv_msg TYPE string.
**************************************************************************
CLEAR: matnr_range, matnr_range[].
matnr_range-sign = 'I'.
matnr_range-option = 'EQ'.
matnr_range-low = matnr.
APPEND matnr_range.
CLEAR: matnr_range.
IF head = 'X'.
CLEAR : lr_pay_conf_data.
cl_salv_bs_runtime_info=>set( EXPORTING display = abap_false metadata = abap_false data = abap_true ).
SUBMIT rm07mlbd USING SELECTION-SCREEN 1000
WITH matnr IN matnr_range
WITH werks IN werks_range
WITH lgort IN lgort_range
WITH datum IN budat_range
WITH lgbst EQ lgbst
WITH bwbst EQ bwbst
WITH sbbst EQ sbbst
WITH xsum EQ space
WITH pa_sumfl EQ 'X'
WITH xchar EQ space
WITH nosto EQ space
AND RETURN.
TRY.
cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_conf_data ).
CATCH cx_salv_bs_sc_runtime_info INTO lr_ex.
lv_msg = lr_ex->get_text( ).
MESSAGE lv_msg TYPE 'I'.
ENDTRY.
ASSIGN lr_pay_conf_data->* TO <lt_pay_conf_data>.
IF sy-subrc <> 0.
CLEAR : sy-ucomm.
ELSE.
LOOP AT <lt_pay_conf_data> ASSIGNING <ls_pay_conf_data>.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <ls_pay_conf_data> TO <lv_field>.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
ENDLOOP.
MOVE-CORRESPONDING <lt_pay_conf_data> TO bestand[].
ENDIF.
cl_salv_bs_runtime_info=>clear_all( ).
ENDIF.
IF body = 'X'.
CLEAR : lr_pay_conf_data.
cl_salv_bs_runtime_info=>set( EXPORTING display = abap_false metadata = abap_false data = abap_true ).
SUBMIT rm07mlbd USING SELECTION-SCREEN 1000
WITH matnr IN matnr_range
WITH werks IN werks_range
WITH lgort IN lgort_range
WITH datum IN budat_range
WITH lgbst EQ lgbst
WITH bwbst EQ bwbst
WITH sbbst EQ sbbst
WITH xsum EQ space
WITH pa_sumfl EQ space
WITH xchar EQ space
WITH nosto EQ space
AND RETURN.
TRY.
cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_conf_data ).
CATCH cx_salv_bs_sc_runtime_info INTO lr_ex.
lv_msg = lr_ex->get_text( ).
MESSAGE lv_msg TYPE 'I'.
ENDTRY.
ASSIGN lr_pay_conf_data->* TO <lt_pay_conf_data>.
IF sy-subrc <> 0.
CLEAR : sy-ucomm.
ELSE.
LOOP AT <lt_pay_conf_data> ASSIGNING <ls_pay_conf_data>.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <ls_pay_conf_data> TO <lv_field>.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
ENDLOOP.
MOVE-CORRESPONDING <lt_pay_conf_data> TO mseg_lean[].
ENDIF.
cl_salv_bs_runtime_info=>clear_all( ).
ENDIF.
ENDFUNCTION.
СТР YMM_BESTAND
MATNR Тип MATNR CHAR 18 0 Номер материала
MAKTX Тип MAKTX CHAR 40 0 Краткий текст материала
BWKEY Тип BWKEY CHAR 4 0 Область оценки
WERKS Тип WERKS_D CHAR 4 0 Завод
CHARG Тип CHARG_D CHAR 10 0 Номер партии
SOBKZ Тип SOBKZ CHAR 1 0 Код особого запаса
NAME1 Тип NAME1 CHAR 30 0 Имя
START_DATE Тип DATE_FROM DATS 8 0 С даты
END_DATE Тип DATE_TO DATS 8 0 По дату
ANFMENGE Тип Y_BESTAND_MENGE DEC 16 4 Y_BESTAND_MENGE
MEINS Тип MEINS UNIT 3 0 Базисная единица измерения
SOLL Тип Y_BESTAND_MENGE DEC 16 4 Y_BESTAND_MENGE
HABEN Тип Y_BESTAND_MENGE DEC 16 4 Y_BESTAND_MENGE
ENDMENGE Тип Y_BESTAND_MENGE DEC 16 4 Y_BESTAND_MENGE
ANFWERT Тип Y_BESTAND_MENGE DEC 16 4 Y_BESTAND_MENGE
WAERS Тип WAERS CUKY 5 0 Код валюты
SOLLWERT Тип DEC 9 2 хз
HABENWERT Тип DEC 9 2 хз
ENDWERT Тип DEC 9 2 хз
СТР: YMM_MSEG_LEAN
MBLNR Тип MBLNR CHAR 10 0 Номер документа материала
MJAHR Тип MJAHR NUMC 4 0 Год документа материала
VGART Тип VGART CHAR 2 0 Вид операции
BLART Тип BLART CHAR 2 0 Вид документа
BUDAT Тип BUDAT DATS 8 0 Дата проводки в документе
CPUDT Тип CPUDT DATS 8 0 Дата ввода бухгалтерского документа
CPUTM Тип CPUTM TIMS 6 0 Время ввода
USNAM Тип USNAM CHAR 12 0 Имя пользователя
XABLN Тип XABLN CHAR 10 0 Номер накладной
LBBSA Тип LBBSA CHAR 2 0 Вид запаса при движении материала (первичная проводка)
BWAGR Тип BWAGR CHAR 4 0 Группа видов движения для анализа запаса
BUKRS Тип BUKRS CHAR 4 0 Балансовая единица
BELNR Тип BELNR_D CHAR 10 0 Номер бухгалтерского документа
GJAHR Тип GJAHR NUMC 4 0 Финансовый год
BUZEI Тип BUZEI NUMC 3 0 Номер строки проводки в рамках бухгалтерского документа
HKONT Тип HKONT CHAR 10 0 Основной счет главной бухгалтерии
WAERS Тип WAERS CUKY 5 0 Код валюты
ZEILE Тип MBLPO NUMC 4 0 Позиция документа материала
BWART Тип BWART CHAR 3 0 Вид движения (управление запасами)
MATNR Тип MATNR CHAR 18 0 Номер материала
WERKS Тип WERKS_D CHAR 4 0 Завод
LGORT Тип LGORT_D CHAR 4 0 Склад
CHARG Тип CHARG_D CHAR 10 0 Номер партии
BWTAR Тип BWTAR_D CHAR 10 0 Вид оценки
KZVBR Тип KZVBR CHAR 1 0 Проводка расхода
KZBEW Тип KZBEW CHAR 1 0 Код движения
SOBKZ Тип SOBKZ CHAR 1 0 Код особого запаса
KZZUG Тип KZZUG CHAR 1 0 Код поступления
BUSTM Тип BUSTM CHAR 4 0 Строка проводки для количества
BUSTW Тип BUSTW CHAR 4 0 Строка проводки для стоимости
MENGU Тип MENGU CHAR 1 0 Обновление количеств в основной записи материала
WERTU Тип WERTU CHAR 1 0 Обновление стоимости в основной записи материала
SHKZG Тип SHKZG CHAR 1 0 Индикатор дебета/кредита
MENGE Тип MENGE_D QUAN 13 3 Количество
MEINS Тип MEINS UNIT 3 0 Базисная единица измерения
DMBTR Тип DMBTR CURR 13 2 Сумма во внутренней валюте
DMBUM Тип DMBUM CURR 13 2 Сумма переоценки, проводимая по прошлому периоду
XAUTO Тип XAUTO CHAR 1 0 Индикатор: позиция создана автоматически
KZBWS Тип KZBWS CHAR 1 0 Оценка особого запаса
XOBEW Тип XOBEW CHAR 1 0 Индикатор: раздельно оцененный запас давальческого метериала
SGT_SCAT Тип SGT_SCAT CHAR 16 0 Сегмент запаса
RETAIL Тип CHAR1 CHAR 1 0 Индикатор из одной позиции
OIGLCALC Тип CHAR1 CHAR 1 0 Индикатор из одной позиции
OIGLSKU Тип DEC 7 3
INSMK Тип INSMK CHAR 1 0 Вид запаса
SMBLN Тип MBLNR CHAR 10 0 Номер документа материала
SJAHR Тип SJAHR NUMC 4 0 Календарный год для генерации месячного графика РабочВрем
SMBLP Тип MBLPO NUMC 4 0 Позиция документа материала