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

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


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


ВНИМАНИЕ!

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



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

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

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


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

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


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


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

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

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


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

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


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


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

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

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


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

Зарегистрирован:
Вт, сен 21 2004, 17: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, 11:08 
Модератор
Модератор
Аватара пользователя

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

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


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

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

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


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

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


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

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

... так вот - потрясли - и эффект есть!Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ! :) ... я то пока детально этим не занимался, мы запасы на контроле качества недавно запустили - все руки не доходят под это дело сальдовки и оборотки переделать. Мы кстати еще и перемещаемые запасы используем, т.е. со склада на склад 313 ВДМ, так тут тот же подход.

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


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

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

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


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

Зарегистрирован:
Вт, мар 13 2007, 22: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, 17:59 
Младший специалист
Младший специалист

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

bustm = MA05 и l_smard = LU1 для 313

bustm = MA06 и l_smard = LU2 для 315

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


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


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

Зарегистрирован:
Ср, окт 16 2013, 12: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, 15:34 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 04 2017, 15:08
Сообщения: 2
Для определения запаса на контроле качества на дату мы у себя пока что решили таким способом:
Code:
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 + 3 часа


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

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


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

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