Текущее время: Ср, сен 10 2025, 04:32

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




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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Прошу прощения, поиск по конфе провел, возможно, как-то неумело, но пытался и ничего не нашел! :)

Сталкивался ли кто-нибудь с тем, что по бизнес-процессу заказчика требуется переводить валюту дважды. Например из валюты документа нужно перевести в валюту балансовой единицы (можно считать, что рубли, в принципе), а потом в валюту отчета. Пробовал создавать расчитанный показатель (пусть он будет п1), который был бы равен показателю в кубе, но с указанием типа пересчета, а потом создавал п2, который равен п1, но тип пересчета - другой. В результате мне в отчете вывалились цифры в исходных валютах документов.
Потом проблему решил тем, что добавил показатель "Сумма в рублях" и пересчитывал ее на момент загрузки данных в куб, а ее уже пересчитывал в отчете в, выбранную пользователем, валюту отчета.
Однако сегодня увидел некоторую порочность этого решения - заказчик в R3 немного подкорректировал курс на какое-то время (точно также могло бы быть, если бы документы в системе появились раньше, чем ответственный забил бы новые курсы - человеческий фактор, никуда не деться) и в моих отчетах начались расхождения сумм с суммами в R3 (естественно). Как бы от этого уйти, не подскажите направление?

P.S. Вроде бы и в хелпе где-то читал на тот момент про возможность двойного пересчета валют, но в том месте так и не было написано толком - что для этого надо сделать и как.


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Кстати говоря, хочу заметить, что ничего такого не курил!

Просто пересчет валют надо выполнять через промежуточный перевод в рубли, т.к. других курсов у заказчика не ведется. Т.е. если надо USD перевести в EUR, то такого прямого курса может и не быть, но зато точно есть курсы USD->RUB, RUB->EUR.

;)


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

Зарегистрирован:
Пн, фев 21 2005, 00:50
Сообщения: 10284
Откуда: г.Мышуйск
Пол: Женский
А как насчет предварительного высчитывания кросс-курса и перевода уже по нему?
Или отчет в рублях тоже необходим?

_________________
Пушномолочная свинья-несушка (тест)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 21 2006, 19:05 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
2LadyWind: Это, увы, не подойдет... я же не знаю заранее - какую валюту выберет пользователь для отчетной (он может выбрать любую, в принципе). Пересчитывать курс из каждой в каждую??? Кроме того - бизнесс-процесс перевода валют через валюту балансовой единицы утвержден заказчиком.

2All: Неужели никто не решал задачу с двойным пересчетом валют? У всех ведутся прямые курсы во все необходимые валюты?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двойной пересчет валют во время выполнения запроса
СообщениеДобавлено: Чт, ноя 23 2006, 10:47 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вс, июн 26 2005, 22:41
Сообщения: 1135
Откуда: Москва
Пол: Мужской
Road Runner написал:
...заказчик в R3 немного подкорректировал курс на какое-то время и в моих отчетах начались расхождения сумм с суммами в R3

Сделать переменную курс к валюте с типом программа пользователя, в зависимости от выбранной пользователем валюты заполнять это значение текущим курсом (или тем, который нужен), в итоговом расчетном показателе поставить перемножение значения текущей валюты на значение переменной курса.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Двойной пересчет валют во время выполнения запроса
СообщениеДобавлено: Чт, ноя 23 2006, 11:30 
Директор
Директор

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Bkmz написал:
Сделать переменную курс к валюте с типом программа пользователя, в зависимости от выбранной пользователем валюты заполнять это значение текущим курсом (или тем, который нужен), в итоговом расчетном показателе поставить перемножение значения текущей валюты на значение переменной курса.

Так еще не пробовал. А у меня эта программа будет выполняться для каждой строки (до агрегации) отчета или один раз при запуске отчета? Если верно второе, то не подойдет такой вариант, т.к. курс должен браться на дату документа, а если второй, то не будет ли сильных непреодолимых тормозов (хотя сам сап тоже как-то так наверно делает для поиска подходящего курса)? А вообще попробую, спасибо за идею.

P.S. Еще вот интересно - если я храню цифры в рублях, то у меня могло бы быть ускорение за счет того, что в кубе есть агрегаты, но ведь если у меня разные валюты, то этот показатель не получится проагрегировать? Или система его проагрегирует по всем типам валют (например будет хранить 4-ре значения результата, а на лету перевести 4-ре значения ведь проще, чем 20000)?


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Ну вот что накопал... с одной стороны одно решение проблемы есть, оказывается можно задавать пересчет валют не только для показателей, но и для признаков, если они "упакованы" в структуру и затем в "выбор". Таким образом, мы можем сделать определение пересчета дважды в одной ячейке, порядок их отрабатывания должен сопадать с порядком их настройки, если верить моему переводу инструкции. В первом приближении вроде бы как отработало (до конца не проверил), но тут наткнулся на новую напасть - если я ставлю пересчет по строкам, то это воздействует на все показатели в строке! :( А в ТЗ есть отчеты, где одновременно есть столбцы в валюте отчета (какую пользователь выберет) и в исходной валюте (чтобы видеть что там все же было).

Также попробовал переменную типа SAP Exit. Ну что сказать - или я чего-то не понял или она все выполняется один (почти, на самом деле 3 или 4, не очень разобрался) раз при запуске запроса, что никак не допустимо, т.к. каждый договор, счет имеют свою дату пересчета валют. Есть ли какой-нибудь способ выполнять некий ABAP код (ФМ) для КАЖДОЙ выводимой строки отчета с передачей еще какой-нибудь информации об этой строке (идея такая - нужно взять из текущей строки сумму по договору и даты, а потом вернуть ее в нужной, по заданной переменной, валюте, полсе вызова CONVERT_TO_LOCAL_CURRENCY и CONVERT_TO_EXTERNAL_CURRENCY. Кто-нибудь может помочь?


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

Зарегистрирован:
Пн, дек 27 2004, 13:48
Сообщения: 772
Откуда: от верблюда
А почему бы не использовать кросс-курсы?

Типа цитата из хелпа:

Проверка типов курсов
Exchange rates for different purposes for the same date are defined in the system as exchange rate types (you cannot delete existing entries).

If you need to carry out currency translations between a number of different currencies, you can simplify exchange rate maintenance by entering a base currency for the exchange rate type. Instead of entering translation rates between every single currency, you then only need specify the translation rate between each currency and the base currency. All currency translations then take place in two steps - into the base currency and from the base currency into the target currency.

Example

The base currency is DEM. You want to translate FRF to CHF. To do this, the following entries must be made in the table for maintaining currency translation rates:

Ratio for FRF -> DEM
Ratio for CHF -> DEM
Translation from FRF to CHF is then carried out automatically. The translation is done as though this exchange rate (FRF -> CHF) was actually entered in the conversion table.

In this example, the base currency (DEM) is the To-currency and FRF or CHF the From-currency.


Транзакция:
SPRO -> SapNetWeaver -> Общие параметры настройки -> Валюты -> Проверка типов курсов.

_________________
Бросай курить, вставай на лыжи -
И вместо рака будет грыжа!


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
EVK написал(а):
А почему бы не использовать кросс-курсы?

Вообще, конечно, это могло бы быть выходом. Я попробую попытать консультантов по ММ, почему именно так, но... полному счастью мешают несколько моментов:
1. Курс должен пересчитываться не через какую-то определенную валюту, а через валюту БЕ (балансовой единицы, которая, в принципе, пока везде рубли, но сейчас компания купила какую-то фирмочку за границей, так что, вероятно, для каких-то подразделений валюта БЕ может и отличаться от рублей).
2. Типы и курсы валют мы тянем из исходной системы R/3 и не хотелось бы дополнительно править их у себя. А в исходной системе кросс курсы не ведутся.
3. Пересчет из валюты документа в валюту БЕ и из валюты БЕ в валюту отчета идет по разным типам курса (которые я не пойму чем отличаются, но такой вот странный бизнес-процесс понастроил заказчик).

Ну и вообще интересно, формулы и расчетные показатели это хорошо, но для более сложных случаев - можно ли выполнить какой-то ФМ для каждой строки запроса (с получением результата работы этого ФМ)? Может можно как-то свою функцию определить или что-то типа того?


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

Зарегистрирован:
Пн, дек 27 2004, 13:48
Сообщения: 772
Откуда: от верблюда
Road Runner написал:
Вообще, конечно, это могло бы быть выходом. Я попробую попытать консультантов по ММ, почему именно так, но... полному счастью мешают несколько моментов:
1. Курс должен пересчитываться не через какую-то определенную валюту, а через валюту БЕ (балансовой единицы, которая, в принципе, пока везде рубли, но сейчас компания купила какую-то фирмочку за границей, так что, вероятно, для каких-то подразделений валюта БЕ может и отличаться от рублей).


Странно как-то. Вообще, нужно исходить из того, какие курсы будут вестись в исходной системе. Логично предположить, что курсы всех валют будут вестись к рублю. Курсы валют, отличных от рубля, между собой вестись не будут.
Так ли это?

Road Runner написал:
2. Типы и курсы валют мы тянем из исходной системы R/3 и не хотелось бы дополнительно править их у себя. А в исходной системе кросс курсы не ведутся.


В том то и дело, что сами кросс-курсы в исходной системе и в биви не нужны. Прочитайте внимательно цитату из хелпа, которую я приводил.

Road Runner написал:
3. Пересчет из валюты документа в валюту БЕ и из валюты БЕ в валюту отчета идет по разным типам курса (которые я не пойму чем отличаются, но такой вот странный бизнес-процесс понастроил заказчик).


Надо понять, чем отличаются :-) И в чем потайная сермяжная правда таких изысков....

Road Runner написал:
Ну и вообще интересно, формулы и расчетные показатели это хорошо, но для более сложных случаев - можно ли выполнить какой-то ФМ для каждой строки запроса (с получением результата работы этого ФМ)? Может можно как-то свою функцию определить или что-то типа того?


Теоретически можно. Пишется рфс-шный ФМ, а потом из вижуал басика (на уровне книжки) устанавливается соединение с системой и дергается эта функция... Но это неспортивно как-то :)

_________________
Бросай курить, вставай на лыжи -
И вместо рака будет грыжа!


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
EVK написал(а):
Странно как-то. Вообще, нужно исходить из того, какие курсы будут вестись в исходной системе. Логично предположить, что курсы всех валют будут вестись к рублю. Курсы валют, отличных от рубля, между собой вестись не будут.
Так ли это?

Сейчас это действительно так. В общем решении нужно только заменить рубль на "валюта БЕ". Если я правильно понимаю, то никто не обязывает иметь в системе только одну балансовую единицу. Курсы валют будут вестись к валютам всех БЕ системы.



EVK написал(а):
В том то и дело, что сами кросс-курсы в исходной системе и в биви не нужны. Прочитайте внимательно цитату из хелпа, которую я приводил.

Хмм... еще раз прочел... я так понял, что нужно определить базовую валюту для каждого типа курса. В R/3 она неопределена (и команда того проекта против их определения, по крайней мере пока) и значит я должен сделать это на стороне BW вручную. В принципе конечно можно определить и потом тянуть только курсы... или я все же неправильно перевел?

EVK написал(а):
3Надо понять, чем отличаются :-) И в чем потайная сермяжная правда таких изысков....

Я так понял, что теоритически в будущем могут использоваться разные курсы и на разные даты... вроде бы как-то связано с тем, что сумма по договору в валюте БЕ должна "биться" с счетом-фактурой. А реально могут уже и не помнить почему так. :) Самое главное - оно так сделано, сделано давно и принято заказчегом за эталон правильных расчетов. ;)

EVK написал(а):
Q - можно ли выполнить какой-то ФМ для каждой строки запроса (с получением результата работы этого ФМ)? Может можно как-то свою функцию определить или что-то типа того?

A - Теоретически можно. Пишется рфс-шный ФМ, а потом из вижуал басика (на уровне книжки) устанавливается соединение с системой и дергается эта функция... Но это неспортивно как-то :)

Полностью согласен. Т.е. без VB сделать это нереально. Жаль (хотя себе система, вероятно, позволяет это - как-то ведь он вызывает модуль пересчета валют для каждой строки отчета или там как раз из того же VB и идет запрос?).


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
"you then only need specify the translation rate between each currency and the base currency"

Задал базовую валюту (руб) для своего типа пересчета.
Есть курсы (на нужную дату) - usd -> rub и eur -> rub. Проверял - пересчет показателя, который всегдя в рублях, работает и в евро и в доллары (опасался, что не будет, потому что не дает и базовую валюту задать и галочку с разрешением инвертирования поставить), после этого пробую задать пересчет в евро (или доллары) для показателя, "сумма в валюте документа". Пишет, что нет курса usd -> eur для выбранной даты (дата пересчета берется одна и та же и для рублевого показателя и для мультивалютного). Как-то, видимо, не завелись кросс-курсы? :(

А хелпе написано - If you want to use this simplified form of exchange rate maintenance, simply enter the key here for the currency you want to use as a reference currency.

Сохранял, перевходил - не пересчитывает курс из евро в доллары. Что-то может где-то надо еще включить? Хелп! :(


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

Зарегистрирован:
Пн, дек 27 2004, 13:48
Сообщения: 772
Откуда: от верблюда
1. Еще есть транзакция для заведения коэффициентов для расчета курсов, в SPRO, там же в разделе "Валюты". Там проверьте, стоят ли коэффициенты на доллары в рубли и евро в рубли.
2. У меня был тоже глюк похожий, не помню только вот уже код ошибки... Вылечил, поставив последние патчи на бекс и гуй :shock: :lol:

И напишите сюда код ошибки (какой номер брэйна :) )и ее точный текст...

_________________
Бросай курить, вставай на лыжи -
И вместо рака будет грыжа!


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
Коэффициенты для доларов в рубли и евро в рубли стоят (ну я думаю, что тогда оно бы и рубли в евро не переводило, а оно только для долларов спотыкается).

Пишет вот так:
"
Проведите ведение коэффициентов пересчета для EUR / USD (ТипКурса N).

№ сообщения SG111

Diagnosis

No conversion factors are maintained for the currency pair or there is
no valid entry for 03.03.2006.

System response

Error message when trying to create entries for the currency pair.
Warning for entries which already exist.

Procedure

First maintain the conversion factors for the currency pair and the
exchange rates which you specified. Choose
Global settings -> Currencies -> Conversion factors in the
Implementation Guide.
"

И действительно нет коэффицентов между долларами и евро, но ведь и не должно быть? :(


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

Зарегистрирован:
Сб, мар 11 2006, 14:59
Сообщения: 1259
Пол: Мужской
При этом в ведении коэффициентов мы имеем следующее:
N CHF RUB 01.01.2004 1 : 1
N EUR RUB 01.01.2006 1 : 1
N EUR RUB 01.01.2005 1 : 1
N NOK RUB 01.01.2004 10 : 1
N USD RUB 01.01.1800 1 : 1

Т.е. - между евро и рублем как и долларом и рублем коэффициенты заданы.


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

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


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

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


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

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