08.01.2003, 11:17 | #1 |
Moderator
|
Получить курс валют из интернета
Кто нибудь пробовал решить такую задачу ?
Вот накануне набросал на VC: PHP код:
Решил попробовать реализовать это дело в Аксапте: Есть класс WinInet; в нем есть методы InternetOpen и InternetReadFileб но нет InternetConnect, HttpOpenRequest и многих других мне необходимых. Ладно думаю, не беда - создам наследника и в нем все это реализую. Не тут то было. WinInet объявлен как final. А почему ? А зачем ? Не понимаю. Ладно. Создаю свой класс: PHP код:
DLL function not found InternetConnect. Как не найдена. MSDN говорит, что она в той же dll-ке, что и InternetOpen. Более того, мой эксперимент с VC подтверждает это. Получается, что одни функции в dll Аксапта видит другие нет ? Почему ? Или такие задачи в Аксапте решаются гораздо проще ? Может есть классы, которые на более высоком уровне позволяют работать с интернет ? P.S. Несмотря на то, что WinInet объявлен как final, я создал его наследника, добавил в него свой метод и переопределил один из его методов. Это что, глюк Аксапты ? (Axapta 2.5 SP2) |
|
08.01.2003, 11:20 | #2 |
Moderator
|
Хм. Похоже и здесь глюки.
Фраза "ExtTypes::WORD" в коде интерпретировалась совсем уж по чудному |
|
08.01.2003, 11:56 | #3 |
----------------
|
Если внимательно помотреть в класс WinInet, то видно, что InternetOpen объявлялся как ф-ция InternetOpenA...
Попробуй InternetConnectA или InternetConnectW Кстати, список ф-ций в dll можно увидеть обычным текстовым просмотровщиком |
|
08.01.2003, 15:21 | #4 |
Moderator
|
Цитата:
Если внимательно помотреть в класс WinInet, то видно, что InternetOpen объявлялся как ф-ция InternetOpenA...
Попробуй InternetConnectA или InternetConnectW Кстати, список ф-ций в dll можно увидеть обычным текстовым просмотровщиком Обнаружилась другая проблема. Функция InternetOpen возвращает HINTERNET по которому можно судить об успешности вызова функции. В частности, если вызов неверен функция должна возвращать NULL: PHP код:
PHP код:
В чем дело ? Как Аксапта интерпретирует NULL ? |
|
13.01.2003, 11:57 | #5 |
SAP
|
Re: Получить курс валют из интернета
Цитата:
Изначально опубликовано Андре
Кто нибудь пробовал решить такую задачу ? Решил попробовать реализовать это дело в Аксапте: - данную задачу можно назвать "типичной" - в Афише из интернета в XAL 3.1 (Конкорд) курсы автоматически с сайта ЦБ качаются - технические варианты реализации интерфейса могут быть самые разнообразные - про глюки чудо системы ничего полезного сообщить не могу С уважением. |
|
04.03.2003, 10:01 | #6 |
Участник
|
Re: Получить курс валют из интернета
Цитата:
Изначально опубликовано Андре
Кто нибудь пробовал решить такую задачу ? Использовал классы для работы с XML. На www.cbr.ru есть скрипт возвращающий курсы валют в xml формате.. http://www.cbr.ru/scripts/sample_xml.htm здесь есть примеры на VB и php.. у меня получилось так... PHP код:
|
|
|
За это сообщение автора поблагодарили: AlexeyS (2), alex55 (1), SIrina (1). |
04.03.2003, 10:13 | #7 |
Moderator
|
Цитата:
Я решил эту задачу по другому..
Использовал классы для работы с XML. На www.cbr.ru есть скрипт возвращающий курсы валют в xml формате.. http://www.cbr.ru/scripts/sample_xml.htm Тогда, когда я решал эту задачу, Аксаптовский вариант у меня, честно говоря, так и не заработал. Плюнул я на это дело, написал dll-ку на VC, которую и использовал из Аксапты. Твой вариант гораздо изящнее |
|
04.03.2003, 10:35 | #8 |
Модератор
|
А Nominal как-то в расчетах участвует? Это ведь для доллларов он равен 1, а для каких-нибудь исландских крон или казахских тенге курс в том виде, как он в xml возвращается, использовать нельзя
|
|
04.03.2003, 10:40 | #9 |
Участник
|
Цитата:
Изначально опубликовано Vadik
А Nominal как-то в расчетах участвует? Это ведь для доллларов он равен 1, а для каких-нибудь исландских крон или казахских тенге курс в том виде, как он в xml возвращается, использовать нельзя Хотя какая проблема взять курс того же Бельгийского франка и поделить на номинал?? Получишь нужный курс...Или я ошибаюсь? |
|
04.03.2003, 11:01 | #10 |
Модератор
|
Цитата:
Хотя какая проблема взять курс того же Бельгийского франка и поделить на номинал?? Получишь нужный курс...Или я ошибаюсь?
Вот что-то подобное, умеет работать в пакетном режиме Для компаний с основной валютой "не RUR" работать будет неправильно, но эта ситуация видится настолько маловероятной, что колбасить что-то, что скорее всего не потрребуется, как-то лениво. Еще - на машине с IE5 проект не работал, с чем связано - с IE, с версией XML Parser или еще с чем, да и некузяво это - работать не с последней версией бесплатного браузера |
|
12.03.2003, 08:16 | #11 |
Участник
|
Как настроить? У меня не работает.
Если в "Иморте курсов ЦБ" нажать "Выбрать", то вылетает ошибка: QueryRun object не инициализирован/ |
|
12.03.2003, 09:33 | #12 |
Модератор
|
Я, по правде сказать, никогда "выбрать" не пользовался..
По "Ок" заимпортирует все, что в "Настройке импорта" прописано. Но "Выбрать" постараюсь в ближайшем времени полечить |
|
12.03.2003, 14:10 | #13 |
Участник
|
У меня и из файла не берет, ругается на XML node.
И еще не понятно - Инет должен быть у клиента или у сервера, а то я запускаю импорт, что то происходит, но нет ни каких результатов. У себя не вижу попыток выхода в Инет. |
|
12.03.2003, 14:23 | #14 |
Модератор
|
У тебя трехзвенка?
Скорее всего, да - проверил в трехуровневой конфигурации, не работает Будем искать |
|
12.03.2003, 16:12 | #15 |
Участник
|
трехзвенка
|
|
12.03.2003, 16:19 | #16 |
Модератор
|
Ага. А прокси какой?
|
|
12.03.2003, 16:41 | #17 |
Участник
|
Кто должен лезть в Инет? Сервер AOS или клиент?
А то клиент даже не пытается. А прокси... winroute. |
|
12.03.2003, 16:59 | #18 |
Модератор
|
У меня пока что устойчивый эффект - при запущенном под доменным пользователем AOS-е все работает, при запущенном из-под LocalSystem - RatesDoc.load(url) не отрабатывает
Пока что добавление client во все методы, работающие с этим RatesDoc, результата не дает, и это странно. Ведь код в этом случае запускается на клиентской машине и в контексте пользователя (других вариантов вроде нет) Вот еще логи прокси посмотрю, может что и прояснится |
|
13.03.2003, 16:06 | #19 |
Модератор
|
Все оказалось просто
Класс был создан с RunOn=Server, вот и метод, дергающий прокси, запускался на сервере в контексте юзера, под которым запущен AOS На batch сервере в случае трехзвенки или на толстом клиенте должен быть настроен на работу с прокси ( если таковой есть ) IE. Именно из него, как я понял, берутся настройки. Во всяком случае, комбинация ISA Server + IE 6.0SP1 у меня в трехзвенке никаких дополнительных настроек не требует |
|
18.03.2003, 14:47 | #20 |
Модератор
|
Решил причесать проектик. По ходу дела возник вопрос. Будет ли для случая, когда рубль - не основная валюта компании и не валюта триангуляции, правильным вычислять курс через соотношение курсов импортируемой и основной валют к рублю?
|
|
Теги |
загрузка курсов валют, курс |
|
|