Текущее время: Чт, мар 28 2024, 18:58

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Программа по расчету остатков на дату - ПОЛЬЗУЙТЕСЬ
СообщениеДобавлено: Пт, мар 17 2017, 10:01 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 17 2009, 00:53
Сообщения: 166
Откуда: Екатеринбург
Пол: Мужской
Добрый день.

Была задача выдернуть информацию по остаткам на дату.
Рыл инет. Ничего рабочего не нашел. Или плохо искал? Ткните ссылкой ежели так :)
Сделал своё.

Вдруг кому поможет.

Функция основана на выдергивании содержимого 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   Позиция документа материала

_________________
Высшая степень уважения к клиенту - это разработать программу не так как он хочет, так как следует!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB