Текущее время: Вс, июл 20 2025, 02:43

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


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

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


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

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