Текущее время: Сб, июл 19 2025, 22:00

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 11:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Вообще, я бы в аналогичном случае не делал бы JOIN, а создал бы ракурс в SE11.

А в исходной программе интерес вызывает запрос
Code:
select * from coep where objnr = tab1-objnr
and kstar = VZ.
sumTR = sumTR + coep-wtgbtr.
endselect.

скорее всего таймаут вылетал на нем. Во-первых, его можно записать при помощи SELECT SUM( ... ), а во-вторых, зачем он вообще нужен? Получается, он суммирует все (!) затраты проведенные по объекту и виду затрат за все время работы системы, причем без учета валют...

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 23 2006, 06:57 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Добрый день всем.. Переделал через join время выполнения уменьшилось (в два раза примерно) но в принципе проблема осталась.. Тайм аут все равно... подскажите пожалуйста можно что-то сделать!!! :oops:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 23 2006, 06:58 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
select p~objnr p~wtgbtr k~budat k~belnr k~blart
into tab1
from coep as p inner join cobk as k
on p~belnr = k~belnr
where p~kstar = VZ1
and p~werks = be
and p~perio = d4
and p~gjahr = god1
and k~budat between date1 and date2
and k~blart in ('WE', 'WA')
and k~orgvg in ('RMWF', 'RMWA').
append tab1.
endselect.
if sy-subrc <> 0.
message i002.
else.
sort tab1 by objnr.
perform checkdat.
loop at tab1.
select p~kstar k~REFBN sum( p~wtgbtr ) k~budat
into (tab1-kstar, tab1-REFBN, tab1-s1, tab1-datspis)
from coep as p inner join cobk as k
on p~belnr = k~belnr
where objnr = tab1-objnr
and p~kstar = VZ
and p~perio = d4
and p~gjahr = god1
group by p~kstar k~refbn k~budat.
modify tab1.
endselect.

if sy-subrc <> 0.
select p~kstar k~REFBN sum( p~wtgbtr ) k~budat
into (tab1-kstar, tab1-REFBN, tab1-s2, tab1-datspis)
from coep as p inner join cobk as k
on p~belnr = k~belnr
where objnr = tab1-objnr
and p~kstar = VZ
and k~budat between dat1 and dat2
group by p~kstar k~refbn k~budat.
modify tab1.
endselect.
endif.
endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 23 2006, 07:00 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
select p~objnr p~wtgbtr k~budat k~belnr k~blart
into tab1
from coep as p inner join cobk as k
on p~belnr = k~belnr
where p~kstar = VZ1
and p~werks = be
and p~perio = d4
and p~gjahr = god1
and k~budat between date1 and date2
and k~blart in ('WE', 'WA')
and k~orgvg in ('RMWF', 'RMWA').
append tab1.
endselect.
if sy-subrc <> 0.
message i002.
else.
sort tab1 by objnr.
perform checkdat.
loop at tab1.
select p~kstar k~REFBN sum( p~wtgbtr ) k~budat
into (tab1-kstar, tab1-REFBN, tab1-s1, tab1-datspis)
from coep as p inner join cobk as k
on p~belnr = k~belnr
where objnr = tab1-objnr
and p~kstar = VZ
and p~perio = d4
and p~gjahr = god1
group by p~kstar k~refbn k~budat.
modify tab1.
endselect.

if sy-subrc <> 0.
select p~kstar k~REFBN sum( p~wtgbtr ) k~budat
into (tab1-kstar, tab1-REFBN, tab1-s2, tab1-datspis)
from coep as p inner join cobk as k
on p~belnr = k~belnr
where objnr = tab1-objnr
and p~kstar = VZ
and k~budat between dat1 and dat2
group by p~kstar k~refbn k~budat.
modify tab1.
endselect.
endif.
endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 23 2006, 20:40 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
klabukov написал(а):
Добрый день всем.. Переделал через join время выполнения уменьшилось (в два раза примерно) но в принципе проблема осталась.. Тайм аут все равно... подскажите пожалуйста можно что-то сделать!!! :oops:


Теперь сделайте без
Code:
select .... endselect


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 23 2006, 20:47 
Гость
перед селектом , а также внутри его
можно поставить

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = 'Создание списка обработки...'.

должно помочь с таймаутом


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 24 2006, 00:26 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 23 2006, 12:35
Сообщения: 3
Если выбираете большие объемы данных, то попробуйте выбирать их все же в селект-энд_селект, но пакетами. Соотвественно обрабатывать выборку тоже надо пакетами.

Code:
SELECT <field_names>
   FROM <DDIC_table>
   INTO CORRESPONDING FIELDS OF TABLE <itab1>
   PACKAGE SIZE <size>
   WHERE ...

   ...
   ...
   ...

   INSERT LINES OF <itab1> INTO <itab2>.
   REFRESH <itab1>.

ENDSELECT.


Таким образом вы выбираете и обрабатываете пакетно, наполняя другую таблицу/таблицы, все зависит от того, что вам нужно в итоге.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 24 2006, 08:36 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
:o :) Спасибо огромное!!! Выручили....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 24 2006, 15:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
А может свой индекс на COEP создать, если задача будет использоваться достаточно интенсивно?
И использовать ракурс COVP, в котором есть все поля COBK и COEP.

Странно, что не используются поля разделения регистра (LEDNR), типа значения(WRTTP) и версии калькуляции(VERSN) для анализа данных...
Кроме этого, выборка идет и по датам в заголовке документа, и по году/периоду в позиции документа - а нужно ли это дублирование?
Задайте вопрос постановщику ;)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу Пред.  1, 2

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


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

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


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

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