Текущее время: Вс, июл 23 2017, 22:46

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Остаток на складе (блокированный запас)
СообщениеДобавлено: Вт, ноя 16 2004, 23:43 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 13:11
Сообщения: 420
Откуда: SAP ERP 2005
Всем добрый день ! Следующая проблема: хочется получить остаток материала на складе по блокированному запасу и запасу на контроле качества на определенную дату внутри периода. В связи с этим конкретный вопрос: как определить, что определенная строка в MSEG изменяет блокированный запас (запас на контроле качества) ? Варианты с зашиванием в код видов движений не предалагать :-). Возможно, решение лежит на поверхности и я упустил что-то совсем очевидное, буду благодарен любым идеям.

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Остаток на складе (блокированный запас)
СообщениеДобавлено: Ср, ноя 17 2004, 07:36 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 08:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Clarus писал(а):
Всем добрый день ! Следующая проблема: хочется получить остаток материала на складе по блокированному запасу и запасу на контроле качества на определенную дату внутри периода. В связи с этим конкретный вопрос: как определить, что определенная строка в MSEG изменяет блокированный запас (запас на контроле качества) ? Варианты с зашиванием в код видов движений не предалагать :-). Возможно, решение лежит на поверхности и я упустил что-то совсем очевидное, буду благодарен любым идеям.


Тоже на повестке дня стоит такая задача - без анализа INSMK и BUSTM кажись не обойтись


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 11:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 13:11
Сообщения: 420
Откуда: SAP ERP 2005
Если расматривать движения 343/344 и сходные с ними - поле INSMK не заполняется. Никогда :-(.

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 11:31 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 08:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Clarus писал(а):
Если расматривать движения 343/344 и сходные с ними - поле INSMK не заполняется. Никогда :-(.


INSMK во время прихода (101 и иже с ним), а в других случаях надо анализировать BUSTM.
Хотя может есть и другой способ, но я пока только такой вариант вижу.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 11:40 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 13:11
Сообщения: 420
Откуда: SAP ERP 2005
Это разные виды запаса: просто блокированный запас (344) и запас, блокированный при поступлении (101 с меткой блокирования). Для простого блокированного запаса INMSK не заполняется, надо анализировать что-то другое. Поле BUSTM при переводе запаса в блокированный (344) для обоих строк в MSEGе одинаковое (MSF7), следовательно, определить что первая строка увеличивает блокированнй запас, а вторая уменьшает свободный, а не наоборот, только по BUSTM невозможно :-(. Есть еще идеи ?

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 12:03 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 21 2004, 18:54
Сообщения: 67
Привет всем.
Решал подобную задачу.
(на самом деле, и вправду нужно анализировать BUSTM - но надо же объяснять как именно, а не просто воздух сотрясать!)
Идея такова:
/ на стопроцентную корректность не претендую, но вроде всегда работало /

IF lt_mseg-xauto = ' '.
SELECT SINGLE smard FROM t156m INTO l_smard
WHERE bustm = lt_mseg-bustm
AND zustd = lt_mseg-insmk
AND cnt02 = '01'.
ELSEIF lt_mseg-xauto = 'X'.
SELECT SINGLE smard FROM t156m INTO l_smard
WHERE bustm = lt_mseg-bustm
AND zustd = lt_mseg-insmk
AND cnt02 = '02'.
ENDIF.
CHECK sy-subrc = 0.

if lt_mseg-shkzg = 'S'.
CASE l_smard+1(1).
WHEN '0'.
l_labst_s = lt_mseg-menge.
WHEN 'Q'.
l_insme_s = lt_mseg-menge.
WHEN 'S'.
l_speme_s = lt_mseg-menge.
when 'R'.
l_RETME_s = lt_mseg-menge.
when 'U'.
l_UMLME_s = lt_mseg-menge.
when 'K'.
l_EINME_s = lt_mseg-menge.
ENDCASE.
elseif lt_mseg-shkzg = 'H'.
CASE l_smard+1(1).
WHEN '0'.
l_labst_h = lt_mseg-menge.
WHEN 'Q'.
l_insme_h = lt_mseg-menge.
WHEN 'S'.
l_speme_h = lt_mseg-menge.
when 'R'.
l_RETME_h = lt_mseg-menge.
when 'U'.
l_UMLME_h = lt_mseg-menge.
when 'K'.
l_EINME_h = lt_mseg-menge.
ENDCASE.
endif.

до многого дошел просто экспериментальным путем.......


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 12:08 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 13:11
Сообщения: 420
Откуда: SAP ERP 2005
Во, блин... Т.е. вторая буква в BUSTM отвечает за вид запаса ?

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 12:17 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 13:11
Сообщения: 420
Откуда: SAP ERP 2005
Т.е. прошу прощения, второй символ поля SMARD ?

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 12:41 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, сен 21 2004, 18:54
Сообщения: 67
ну типа того, а в чем проблема?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 12:46 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 08:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
abaper писал(а):
Привет всем.
Решал подобную задачу.
(на самом деле, и вправду нужно анализировать BUSTM - но надо же объяснять как именно, а не просто воздух сотрясать!)

... так вот - потрясли - и эффект есть!!!!! :) ... я то пока детально этим не занимался, мы запасы на контроле качества недавно запустили - все руки не доходят под это дело сальдовки и оборотки переделать. Мы кстати еще и перемещаемые запасы используем, т.е. со склада на склад 313 ВДМ, так тут тот же подход.

TO Abapper: БОЛЬШОЙ СЭНКС за помощь!!!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 17 2004, 13:24 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вс, сен 05 2004, 13:11
Сообщения: 420
Откуда: SAP ERP 2005
Потрясающе - работает ! To abaper - огромное спасибо !

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 313 и 315 не отрабатывает
СообщениеДобавлено: Чт, авг 30 2007, 09:48 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, мар 13 2007, 23:57
Сообщения: 71
OlegDm писал(а):
abaper писал(а):
Привет всем.
Решал подобную задачу.
(на самом деле, и вправду нужно анализировать BUSTM - но надо же объяснять как именно, а не просто воздух сотрясать!)

... так вот - потрясли - и эффект есть!!!!! :) ... я то пока детально этим не занимался, мы запасы на контроле качества недавно запустили - все руки не доходят под это дело сальдовки и оборотки переделать. Мы кстати еще и перемещаемые запасы используем, т.е. со склада на склад 313 ВДМ, так тут тот же подход.

TO Abapper: БОЛЬШОЙ СЭНКС за помощь!!!


слушайте, у меня как раз не работает на 313, 315. т.е. что происходят изменения с перемещаемым запасом - это я вижу, а вот что какие-то изменения происходят со свободно используемым - нет.

bustm = MA05 и l_smard = LU1 для 313

bustm = MA06 и l_smard = LU2 для 315

кто-нибудь сталкивался с такой проблемой


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 313 и 315 не отрабатывает
СообщениеДобавлено: Чт, апр 21 2011, 18:59 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 12:22
Сообщения: 55
birds писал(а):
слушайте, у меня как раз не работает на 313, 315. т.е. что происходят изменения с перемещаемым запасом - это я вижу, а вот что какие-то изменения происходят со свободно используемым - нет.

bustm = MA05 и l_smard = LU1 для 313

bustm = MA06 и l_smard = LU2 для 315

кто-нибудь сталкивался с такой проблемой


Да, и всё же, как решился именно этот случай? У нас аналогичная ситуация((


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Остаток на складе (блокированный запас)
СообщениеДобавлено: Чт, ноя 07 2013, 14:24 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 16 2013, 13:16
Сообщения: 13
Добрый день.
Позволю себе несколько поправить:
в табличке T156M содержатся операции над соответствующими таблицами запасов S*, т.е. тех таблиц, которые анализируются для Вашего отчета по остаткам (если только MARD, то по ключу BUSTM = MSEG-BUSTM, ZUSTD = MSEG-ZUSTD_T156M надо искать не пустое (релевантность для изменения) поле SMARD и соответствующий вид запаса LBBSA.
а в табличке T156C искать воздействует ли этот вид запаса на интересующее вас поле X* ( T156C-XINSME = 'X' в структуре вашего анализа ( в вопросе MARD-INSME ) по ключу LBBSA, MSEG-SOBKZ.
Лучше заранее подготовить внутреннюю табличку T156M-T156C, чтобы каждый раз не селектить.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Остаток на складе (блокированный запас)
СообщениеДобавлено: Чт, май 04 2017, 16:34 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 04 2017, 16:08
Сообщения: 2
Для определения запаса на контроле качества на дату мы у себя пока что решили таким способом:
Код:
TYPES: BEGIN OF ty_regulations,
         shkzg TYPE shkzg,
         bwart TYPE bwart,
       END OF ty_regulations.

TYPES: BEGIN OF ty_data,
         matnr TYPE matnr,
         maktx TYPE maktx,
         werks TYPE werks_d,
         name1 TYPE name1,
         lgort TYPE lgort_d,
         lgobe TYPE lgobe,
         charg TYPE charg_d,
         menge TYPE my_mbsta,
       END OF ty_data.
       
DATA gt_out TYPE TABLE OF ty_data.
DATA gt_regulations TYPE TABLE OF ty_regulations.

APPEND |S563| TO GT_REGULATIONS.
APPEND |S554| TO gt_regulations.
APPEND |S523| TO gt_regulations.
APPEND |S503| TO gt_regulations.
APPEND |S349| TO gt_regulations.
APPEND |S323| TO gt_regulations.
APPEND |S324| TO gt_regulations.
APPEND |S322| TO gt_regulations.
APPEND |H321| TO gt_regulations.
APPEND |H323| TO gt_regulations.
APPEND |H324| TO gt_regulations.
APPEND |H564| TO gt_regulations.
APPEND |H350| TO gt_regulations.
APPEND |H504| TO gt_regulations.
APPEND |H524| TO gt_regulations.
APPEND |H553| TO gt_regulations.

SELECT mseg~matnr,
       mseg~werks,
       mseg~lgort,
       mseg~charg,
       mseg~bwart,
       mkpf~budat,
       mseg~shkzg,
       mseg~menge,
       mseg~meins
  INTO TABLE @DATA(gt_mseg)
  FROM mseg
  JOIN mkpf ON mseg~mblnr EQ mkpf~mblnr
           AND mseg~mjahr EQ mkpf~mjahr
  WHERE mseg~matnr IN @so_matnr
    AND mseg~werks IN @so_werks
    AND mseg~lgort IN @so_lgort
    AND mseg~charg IN @so_charg
    AND mkpf~budat LE @so_budat-low.

SORT gt_mseg BY matnr
                werks
                lgort
                charg
                budat ASCENDING.

LOOP AT gt_mseg INTO DATA(ls_mseg) GROUP BY ( matnr = ls_mseg-matnr
                                              werks = ls_mseg-werks
                                              lgort = ls_mseg-lgort
                                              charg = ls_mseg-charg )
                                   REFERENCE INTO DATA(charg_group).

  LOOP AT GROUP charg_group ASSIGNING FIELD-SYMBOL(<ls_charg>).

    READ TABLE gt_regulations TRANSPORTING NO FIELDS
      WITH KEY shkzg = <ls_charg>-shkzg
               bwart = <ls_charg>-bwart.
    CHECK sy-subrc EQ 0.

    DATA ls_out TYPE ty_data.
    CLEAR ls_out.

    MOVE-CORRESPONDING <ls_charg> TO ls_out.
    CLEAR ls_out-menge.

    CASE <ls_charg>-shkzg.
      WHEN 'S'. ls_out-menge = abs( <ls_charg>-menge ).
      WHEN 'H'. ls_out-menge = - abs( <ls_charg>-menge ).
      WHEN OTHERS.
    ENDCASE.

    COLLECT ls_out INTO gt_out.

  ENDLOOP.

ENDLOOP.

Задумка в том, что в MSEG хранятся все проводки с суммами и флагом - поступление/списание. Мы знаем виды движения какими можно изменить запас на контроле качества. Формируем соответствующую таблицу GT_REGULATIONS с настройками: S - приход, H - расход. Сравнивая эту информацию с данными из MSEG получаем информацию о том как изменялся запас. С помощью таблицы MKPF разграничиваем дату проводок. В итоге - зная объемы прихода/ухода схлопываем эти суммы и получаем остаток, который и отражает запас на КК на нашу дату.


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

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


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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 6


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

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