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

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Подпрограмма в правилах обновления
СообщениеДобавлено: Вт, ноя 18 2008, 09:30 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, фев 20 2007, 13:18
Сообщения: 63
Добрый день!
При закачке данных из ОДС в куб для определения значения признака мне надо посчитать сумму по группе определенных счетов в том же самом ОДС. Попыталась сделать Select по таблице активных данных этого ОДС /BIC/ALFIGLO0600, но в правилах обновления этот
Select игнорируется. Пробавала и внутреннюю таблицу создать и ФМ - не работает. Хотя если программку запустить как ABAPовскую - результат есть.
Что делать?
версия BW 3.5
Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подпрограмма в правилах обновления
СообщениеДобавлено: Вт, ноя 18 2008, 10:06 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Правила обновления между кубом и ОДС?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Подпрограмма в правилах обновления
СообщениеДобавлено: Вт, ноя 18 2008, 10:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
Ulenka написал(а):
Что делать?
версия BW 3.5
Спасибо!


код в студию, pls.

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 10:29 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, фев 20 2007, 13:18
Сообщения: 63
правила обновления из ОДС в куб
....
u_hkont = .... (определяется нормально, проверяла)
......
select sum( BALANCE )
into u_sum
from /BIC/ALFIGLO0600 (в таблице данные есть)
where GL_ACCOUNT = u_hkont
and FISCPER = COMM_STRUCTURE-FISCPER
and BALANCE <> 0
group by GL_ACCOUNT FISCPER.
endselect.
....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 10:35 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Ulenka написал(а):
правила обновления из ОДС в куб
....
u_hkont = .... (определяется нормально, проверяла)
......
select sum( BALANCE )
into u_sum
from /BIC/ALFIGLO0600 (в таблице данные есть)
where GL_ACCOUNT = u_hkont
and FISCPER = COMM_STRUCTURE-FISCPER
and BALANCE <> 0
group by GL_ACCOUNT FISCPER.
endselect.
....


А строчка Result = u_sum. есть?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 10:57 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, фев 20 2007, 13:18
Сообщения: 63
u_sum используется дальше, result - это для другого признака (который взависимости от того u_sum >0 или < 0 имеет одно значение или другое) -он срабатывает (пробовала u_sum заводить константой, все хорошо).
Дело в том что u_sum не считается из этого Select.
Если Select написать в Se38 - работает, в правилах обновления - нет.
Пробавала сделать дубликат исходного ОДС и брать оттуда - все равно не работает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 11:44 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, авг 29 2007, 13:53
Сообщения: 251
В se38, наверное, постоянные значения в условия подставляли, попробуйте их же подставить и в правило для теста.
Имхо, и строки group by и endselect здесь не обязательны.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 12:12 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Kubus написал(а):
В se38, наверное, постоянные значения в условия подставляли, попробуйте их же подставить и в правило для теста.
Имхо, и строки group by и endselect здесь не обязательны.


Скорее всего из-за group by и endselect в сумму выбирается 0.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 12:20 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, фев 20 2007, 13:18
Сообщения: 63
это я тоже пробавала.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 12:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, авг 10 2005, 09:24
Сообщения: 1023
Ulenka написал(а):
это я тоже пробавала.


Ты группируешь, и в каждой группе вычисляется сумма. Однако снаружи цикла используется сумма только для последней группы. А так как SQL в таком виде не дает строго определенный порядок выборки групп, то и сумма, вычисленная в программе и сумма, полученная в правилах, может отличаться.

Однозначно нужно убирать группировку и endselect


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 18 2008, 12:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, июн 24 2005, 15:18
Сообщения: 1216
Откуда: Diagon Alley
Ulenka написал(а):
правила обновления из ОДС в куб
....
u_hkont = .... (определяется нормально, проверяла)
......
select sum( BALANCE )
into u_sum
from /BIC/ALFIGLO0600 (в таблице данные есть)
where GL_ACCOUNT = u_hkont
and FISCPER = COMM_STRUCTURE-FISCPER
and BALANCE <> 0
group by GL_ACCOUNT FISCPER.
endselect.
....




Виталий Вам уже написАл.

Мне тоже непонятно, зачем Вам операторы GROUP BY и цикл SELECT - ENDSELECT.
Кроме того, если вы хотите получить сумму по группе счетов, то что находится в переменной u_hkont ?

Если сумма вычисляется по группе, то должно быть что-то вроде:

SELECT.....
WHERE GL_ACCOUNT IN (ACCOUNT1, ACCOUNT2,....)

Или какой-нибудь RANGE должен быть определён для группы.

А вообще, мой вам совет: поставьте BREAK-POINT и пройдите DEBUGGER-ом, сразу всё поймёте.

_________________
"Если ты в молодости не испытал трудности, их стоит купить за большие деньги". (с) Даймо


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

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


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

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


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

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