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

Часовой пояс: 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 часа


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

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


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

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