Текущее время: Вс, авг 03 2025, 12:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Оборотка
СообщениеДобавлено: Пт, сен 07 2007, 10:48 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Добрый день!
Надо вот полную оборотку написать с детализацией
завод+склад+материал (шт и руб) за любой заданный период
(с точностью дня дня)

Перед этим уже написал подобную оборотку, с детализацией завод+материал. Для скорости использовал агрегированные месячные обороты из таблицы инфосистемы S031. Подогонял под отчет MCBA (по крайне мере по остаткам)

Пробовал так же по складам но там что-то не получается.
Кто нибудь знает алгоритм вычисляения оборотов в MCBA через таблицы s031 и s032?

(Еще нашел таблицы s034 и s035 - там детализация еще выше - +по партиям)


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
немного тут обсуждали
http://sapboard.ru/forum/viewtopic.php ... light=s031


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 11:39 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
vga написал(а):
немного тут обсуждали
http://sapboard.ru/forum/viewtopic.php ... light=s031

Нда, тема давнишняя
Но примерно так и представлял - затрат труда на это много, хоть и не год правда. Нет в мире совершенства - верно - у меня стандартные отчеты, mb5b и mb51, j3rflvmobved, mcba давали разные цифры оборотов по одному и тому-же! Первые три спотыкались уже на тривиальном сторнировании, не говоря уже о том что 'по всем данным' работают страшно долго

Самый верный (и быстрый) из них оказался MCBA - под него теперь и подгоняю свои оборотки, вернее пытаюсь
Он конечно тоже не без ограничений - только с точностью жо месяца, и почему то только конечные остатки. Раскопал что он использует таблицы s031 и s032 (иногда mbew)
Подпрограмму вычисления оборотки тоже нашел но алгоритм там совершенно зубодробительный - кто б его расшифровал

В общем экономистам надо оборотка - 'сразу по всем данным ритэйла' и 'чтобы считалась не более 20 мин'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 12:03 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
У кого аналогичная задача - может кто ввозьмется расшифровать алгоритм MCBA, а я б подсобил с тем что уже накопал


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

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Много у нас энтузиастов, желающих ходить по истоптанным граблям :wink:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 13:39 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
hoar написал:
Много у нас энтузиастов, желающих ходить по истоптанным граблям :wink:

:) я бы и рад не ходить, но что можно предложить взамен?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 13:59 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
organmusic написал(а):
У кого аналогичная задача - может кто ввозьмется расшифровать алгоритм MCBA, а я б подсобил с тем что уже накопал


Там расшифровать особенно нечего. Используются s032, s031 и mbew.
st05 смотрите.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 14:10 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
vga написал(а):
organmusic написал(а):
У кого аналогичная задача - может кто ввозьмется расшифровать алгоритм MCBA, а я б подсобил с тем что уже накопал


Там расшифровать особенно нечего. Используются s032, s031 и mbew.
st05 смотрите.

Выборки из таблиц там простые, дело в их обработке чтобы получить ДО КО шт руб с учетом переоценок
Вот начало фрагмента вычисления:
----------------- Cut ---------------------
FORM korrektur_bestandswert TABLES inttab STRUCTURE int_s000.

DATA: BEGIN OF l_korr_tab OCCURS 0,
matnr LIKE s039-matnr,
werks LIKE s039-werks,
spmon LIKE s039-spmon,
sptag LIKE s039-sptag,
spwoc LIKE s039-spwoc,
spbup LIKE s039-spbup,
mbwbest LIKE s039-mbwbest,
wbwbest LIKE s039-wbwbest,
wzubb LIKE s039-wzubb,
wzubb0 LIKE s039-wzubb, " Zugang ohne Menge
wagbb LIKE s039-wagbb,
wagbb0 LIKE s039-wagbb, " Abgang ohne Menge
mzubb LIKE s039-mzubb,
magbb LIKE s039-magbb,
mgvbr LIKE s039-mgvbr,
wgvbr LIKE s039-wgvbr,
wuvbr LIKE s039-wuvbr,
muvbr LIKE s039-muvbr,
anz TYPE i,
flg_mbwbest,
index_mbwbest TYPE i,
END OF l_korr_tab.

DATA: l_preis TYPE f,
l_preis_old TYPE f,
l_preis_vbr TYPE f,
l_int_s000 LIKE int_s000,
l_tabix LIKE sy-tabix,
l_tabix_mbew LIKE sy-tabix,
l_mbwbest_old LIKE s039-mbwbest,
l_mbwbest_lg LIKE s039-mbwbest,
l_delta_1 LIKE s039-wzubb,
l_delta_2 LIKE l_delta_1,
l_sum LIKE s039-wbwbest,
l_anz TYPE i.

CHECK va EQ true.

* Lagerort space soll erster Eintrag sein, damit auf diesen keine
* Rundungsdifferenz gebucht wird.
CASE sav_speri.
WHEN con_speri_spmon.
SORT inttab BY matnr werks spmon lgort.
WHEN con_speri_sptag.
SORT inttab BY matnr werks sptag lgort.
WHEN con_speri_spwoc.
SORT inttab BY matnr werks spwoc lgort.
WHEN con_speri_spbup.
SORT inttab BY matnr werks spbup lgort.
ENDCASE.


LOOP AT inttab ASSIGNING <int_s000>.
IF NOT l_int_s000 IS INITIAL AND
( l_int_s000-matnr NE <int_s000>-matnr OR
l_int_s000-werks NE <int_s000>-werks OR
l_int_s000-spmon NE <int_s000>-spmon OR
l_int_s000-sptag NE <int_s000>-sptag OR
l_int_s000-spwoc NE <int_s000>-spwoc OR
l_int_s000-spbup NE <int_s000>-spbup ).
APPEND l_korr_tab.
CLEAR l_korr_tab.
ENDIF.
IF l_korr_tab IS INITIAL.
MOVE-CORRESPONDING <int_s000> TO l_korr_tab.
l_korr_tab-anz = 1.
ELSE.
ADD <int_s000>-mbwbest TO l_korr_tab-mbwbest.
ADD <int_s000>-wbwbest TO l_korr_tab-wbwbest.
ADD <int_s000>-wzubb TO l_korr_tab-wzubb.
ADD <int_s000>-wagbb TO l_korr_tab-wagbb.
ADD <int_s000>-mzubb TO l_korr_tab-mzubb.
ADD <int_s000>-magbb TO l_korr_tab-magbb.
ADD <int_s000>-mgvbr TO l_korr_tab-mgvbr.
ADD <int_s000>-wgvbr TO l_korr_tab-wgvbr.
ADD <int_s000>-muvbr TO l_korr_tab-muvbr.
ADD <int_s000>-wuvbr TO l_korr_tab-wuvbr.
ADD 1 TO l_korr_tab-anz.
ENDIF.
IF NOT <int_s000>-mbwbest IS INITIAL.
l_korr_tab-flg_mbwbest = true.
MOVE l_korr_tab-anz TO l_korr_tab-index_mbwbest.
ENDIF.

l_int_s000 = <int_s000>.
ENDLOOP.

IF NOT l_korr_tab IS INITIAL.
APPEND l_korr_tab.
ENDIF.

CLEAR l_korr_tab.
CLEAR l_tabix.
LOOP AT inttab ASSIGNING <int_s000>.
sy-subrc = 0.
* Korrektureintrag, Preis und alten Preis ermitteln
WHILE sy-subrc EQ 0 AND
( l_korr_tab-matnr NE <int_s000>-matnr OR
l_korr_tab-werks NE <int_s000>-werks OR
l_korr_tab-spmon NE <int_s000>-spmon OR
l_korr_tab-sptag NE <int_s000>-sptag OR
l_korr_tab-spwoc NE <int_s000>-spwoc OR
l_korr_tab-spbup NE <int_s000>-spbup ).
ADD 1 TO l_tabix.
READ TABLE l_korr_tab INDEX l_tabix.
IF sy-subrc NE 0.
* Sollte nicht vorkommen k_nnen
EXIT.
ENDIF.
CLEAR l_sum.
CLEAR l_anz.
* Preis f_r Merkmalskombination ermitteln
* Ist das _berhaupt notwendig?
IF l_korr_tab-mbwbest IS INITIAL AND
l_korr_tab-mzubb IS INITIAL AND
l_korr_tab-magbb IS INITIAL AND
l_korr_tab-mgvbr IS INITIAL AND
l_korr_tab-muvbr IS INITIAL AND
и т д
--------- Cut ---------


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 14:48 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Я в свое время писал оборотку, которая считает все по документам, прям с заведения начальных остатков. Суммы брал из BSEG, так как стояла задача, чтобы обороты по счетам шли с корреспонденцией - так же самописной. Некоторые суммы приходилось распределять по складам пропорционально кол-ву(точно какие щас не скажу). Суммы по внутренним перемещениям брал из MSEG(бухи хотели видеть), но показывал по одной стороне(Д или К), т.к. в BSEG их нет(не увеличивать обороты). Вобщем всех все устраивало и работало быстро, порядко 12 мин все запасы с историей за 3 года. Правда настройки у нас простые(без консигнаций, переработки и т.д.) и скорее всего потребуется доработка, но могу прислать. Пиши в личку.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 07 2007, 15:32 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Aval написал:
Я в свое время писал оборотку, которая считает все по документам, прям с заведения начальных остатков. Суммы брал из BSEG, так как стояла задача, чтобы обороты по счетам шли с корреспонденцией - так же самописной. Некоторые суммы приходилось распределять по складам пропорционально кол-ву(точно какие щас не скажу). Суммы по внутренним перемещениям брал из MSEG(бухи хотели видеть), но показывал по одной стороне(Д или К), т.к. в BSEG их нет(не увеличивать обороты). Вобщем всех все устраивало и работало быстро, порядко 12 мин все запасы с историей за 3 года. Правда настройки у нас простые(без консигнаций, переработки и т.д.) и скорее всего потребуется доработка, но могу прислать. Пиши в личку.

Спасибо за помощь. Наверное у нас в розн торговле (retail) объемы данных слишком велики или сервер слабоват - но напрямую по проводкам селект по всем магазинам шел больше 3 часов и рос бы с ростом продаж и временем.
Потому пришлось переделать на гибридную схему - выч остатки на начало месяца по агрегированным оборотам из s031, а дальше до дня добираем проводками из mseg и bsim - так работает менее 20 минут и не будет расти с ростом mseg. Но впрочем твоя программка тоже интересна если нетрудно пошли в личку, может что почерпну из полезных идей - интересно попробовать по быстродействию на наших данных


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 10 2007, 17:56 
Менеджер
Менеджер

Зарегистрирован:
Чт, фев 24 2005, 18:37
Сообщения: 530
Aval написал:
Я в свое время писал оборотку, которая считает все по документам, прям с заведения начальных остатков. Суммы брал из BSEG, так как стояла задача, чтобы обороты по счетам шли с корреспонденцией - так же самописной. Некоторые суммы приходилось распределять по складам пропорционально кол-ву(точно какие щас не скажу). Суммы по внутренним перемещениям брал из MSEG(бухи хотели видеть), но показывал по одной стороне(Д или К), т.к. в BSEG их нет(не увеличивать обороты). Вобщем всех все устраивало и работало быстро, порядко 12 мин все запасы с историей за 3 года. Правда настройки у нас простые(без консигнаций, переработки и т.д.) и скорее всего потребуется доработка, но могу прислать. Пиши в личку.

Aval, а можно и мне посмотреть на Ваш код - дело в том, что тоже бьемся с обороткой доволько давно, пытались сотрудничать с базисниками по вопросу ув. ее производительности - но, к сожалению, это помогло не сильно... Приходится запускать ее в фоне только вечерами. Заранее спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 09:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
А по регистру материалов извиняюсь нельзя реализовать?
Там же уже хранятся итоговые значения по периодам! :D
А лопатить все документы по материалам - это конечно сильно!!!
Правда если ABAPER любит круто полопатить, то да...................

-----------------------------------------------------------------------------
SAP R/3 - бездонная яма кода :D :D :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 19 2007, 17:14 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
ROKO написал:
А по регистру материалов извиняюсь нельзя реализовать?
Там же уже хранятся итоговые значения по периодам! :D
А лопатить все документы по материалам - это конечно сильно!!!
Правда если ABAPER любит круто полопатить, то да...................

-----------------------------------------------------------------------------
SAP R/3 - бездонная яма кода :D :D :D

А где находится этот регистр?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 20 2007, 06:24 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Данные регистра материала находятся в таблицах ML*. Главные из них MLHD, MLIT, MLCD, MLCR, MLCRP. Обрати внимение в MLIT на поле KALNR. Связь с некоторыми таблицами осуществляется по нему.
Но все это доступно, если у вас активирован регистр материала. Спроси об этом у консультанта.


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

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


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

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


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

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