Текущее время: Ср, июл 30 2025, 22:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: VBAK/VBAP
СообщениеДобавлено: Пт, янв 28 2011, 15:00 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа!
Я знаю номер SD-документа (_z-VBELN1), его тип/завод/партию/рынок сбыта/создателя
Нужно найти по этим параметрам максимальный SD-документ, номер которого меньше _z-VBELN.
Что-то типа
select max( h~vbeln ) into find_vbeln
from ( vbak as h
inner join vbap as a on h~vbeln = a~vbeln
)
where h~vbeln < _z-vbeln and
h~vkorg = _z-vkorg and
h~vtweg = _z-vtweg and
h~spart = _z-spart and
h~auart = _z-auart and
h~ernam = _z-ernam and
a~werks = _z-werks and
a~charg = _z-charg.
Запрос работает ну очень долго. Как его можно ускорить?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пт, янв 28 2011, 15:26 
Ассистент
Ассистент

Зарегистрирован:
Ср, июл 14 2010, 10:33
Сообщения: 41
Откуда: Москва
Пол: Женский
Странно было бы если б работало быстро. Посмотрите план запроса в st05 и пересмотрите свой алгоритм поиска.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пт, янв 28 2011, 18:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Сделайте индекс на VBAP по материалу, заводу и партии.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пн, янв 31 2011, 10:03 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
2Удав:
такой индекс есть

в VBAK есть индекс для vkorg/vtweg/spart/auart (если из запроса условие по ernam убрать все равно долго работает).

Условие чисто по VBAK
Code:
where h~vbeln = _z-vbeln and
h~vkorg = _z-vkorg and
h~vtweg = _z-vtweg and
h~spart = _z-spart and
h~auart = _z-auart


работает дольше чем просто
Code:
where h~vbeln = _z-vbeln


Я так понимаю что проблема вся в условии h~vbeln < _z-vbeln. А вот как из него вывернуться?...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пн, янв 31 2011, 10:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Цитата:
Сделайте индекс на VBAP по материалу, заводу и партии.

Индекс прекрасен, но чтобы он сработал, нужно добавить еще материал в условие выборки.
Цитата:
в VBAK есть индекс для vkorg/vtweg/spart/auart

Имхо - бесперспективняк. Скорее всего плохая селективность будет, и запросы, использующие этот индекс, рано или поздно умрут.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пн, янв 31 2011, 12:26 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
_garycor_ написал:
Я знаю номер SD-документа (_z-VBELN1), его тип/завод/партию/рынок сбыта/создателя
Нужно найти по этим параметрам максимальный SD-документ, номер которого меньше _z-VBELN.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пн, янв 31 2011, 13:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Rokhay написал:
Цитата:
Сделайте индекс на VBAP по материалу, заводу и партии.

Индекс прекрасен, но чтобы он сработал, нужно добавить еще материал в условие выборки.

Само собой :wink:

John Doe +1
Определитесь, что вам нужно - отследить последнюю продажу конкретной партии или последнюю продажу конкретного менеджера?

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VBAK/VBAP
СообщениеДобавлено: Пн, янв 31 2011, 15:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
Если развивать мысль о последнем документе для менеджера/материала, то можно посмотреть в сторону таблиц VAKPA или VAPMA. Первая - можно добиться заполнения по ответственному сотруднику (роль VE). Вторая - по материалу.
Для заполнения надо кое-что поднастроить:
VAKPA
SPRO - Сбыт - Продажа - Списки - Установка обновления индекса партнёра;
указываете группу транзакций и роль (в вашем случае, скорее всего, 0 и VE соответственно).
VAPMA
SPRO - Сбыт - Продажа - Списки - Установка обновления индекса позиций;
тоже для группы 0.

После настройки индексы нужно реорганизовать. Для реорганизации лучше пользоваться программой RVV05IVB. Указанная стандартом программа RVV05ICA, помнится, оказалось очень сомнительной.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VBAK/VBAP  Тема решена
СообщениеДобавлено: Ср, фев 02 2011, 15:03 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Цитата:
John Doe +1
Определитесь, что вам нужно - отследить последнюю продажу конкретной партии или последнюю продажу конкретного менеджера?


тут задача в чем.
Мы завели свою таблицу куда кладем последний созданный документ по этим параметрам.
При создании документа мы ищем по этим параметрам создаваемого документа последний уже созданный и из него копируем какие-то еще данные. После сохранения обновляем для этих параметров номер на созданный в нашей таблице.
И вот при удалении последнего созданного документа надо в нашей табличке откатить номер на существующий предыдущий.


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

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


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

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


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

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