Текущее время: Чт, июл 31 2025, 18:12

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


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

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


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

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