24.06.2010, 13:48 | #1 |
Участник
|
Импорт курса валют ЦБ РФ
Доброго времени суток!
Подскажите, с чем может быть связан ошибка, возникающая при импорте курса валют ЦБ РФ в пакетном режиме (MS DAX 2009). В журнале пакетных заданий просматривается ошибка следующего вида: Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте. (S)\Classes\DictClass\makeObject (S)\Classes\ClassFactory\createClass - line 13 (S)\Classes\RunBase\makeObject - line 15 (S)\Data Dictionary\Tables\Batch\Methods\object - line 3 (S)\Classes\BatchRun\runJobStatic - line 28 при попытке импртировать курс вручную (ГК/Периодические операции/Импорт курса валют ЦБ РФ) на текущую дату импорт проходит нормально. Но если установить в этом окне галку Пакетная обработка, то задание завершается с указанной выше ошибкой. |
|
24.06.2010, 14:13 | #2 |
Участник
|
Вы же сами написали: сеанс на сервере попытался вызвать метод, который доступен только на клиенте. Если Вы программист, должны уже были сами разобраться. Если Вы не программист, то найдите себе программиста. Если у вас в компании в техподдержке нет программиста Аксапты - у вашей компании проблемы.
|
|
24.06.2010, 14:28 | #3 |
Участник
|
я не программист. программисты внедрения молчат "как рыбы об лед". спасибо за "конструктивный" ответ. ткнули лицом в очевидный факт, что проблема есть.
|
|
24.06.2010, 15:02 | #4 |
Участник
|
А Вы сервер пакетной обработки проверяли? Видите ли Вы там задание на пакетную обработку по импорту курсов валют? Модуль Основное: Периодические операции. Может быть пакетная обработка как-то некорректно настроена, поэтому и ошибка. Но лучше конечно посмотреть по коду на чем конкретно запинается система (Вами же приведен перечень объектов приложения и строк кода, где возникают ошибки). Если код не правили, то причина в настройках пакетной обработки на операцию импорта курсов в том числе. Если вносили правки, то нужно "тестить" код и проверять соблюдение условий, при которых логика импорта в режиме пакета отрабатывает. На будущее более тщательно принимайте работу внедренцев (тестируйте сами все и сиспользованием всевозможных параметров).
|
|
24.06.2010, 16:12 | #5 |
Участник
|
Цитата:
Вы спросили: Подскажите, с чем может быть связан ошибка Я вам ответил: сеанс на сервере попытался вызвать метод, который доступен только на клиенте. Ошибка связана с этим. Или вы хотите, чтобы вам программный код проанализировали? Но я не представляю, как для этого Вы сможете выложить на форум проект с нужными объектами системы, если Вы не программист. Поэтому могу только повторить: а) терзайте программиста, б) если собственного программиста у вас нет, а есть только программисты внедренческой компании, то это плохо. И еще. У внедренца должен быть руководитель проекта с их стороны. Обращайтесь к нему, а не напрямую к его программистам. Если рук.проекта с их стороны не в состоянии управлять своими же программистами, то вам не повезло дважды. |
|
24.06.2010, 16:22 | #6 |
MCT
|
для начала я бы ответил на вопрос "проблема с импортом курсов или с пакетной обработкой?"
судя по тому, что НЕ в пакетном режиме курсы импортятся нормально - то проблема именно в пакетной обработке. у вас другие пакетные обработки, кроме импорта курсов, работают без ошибок? ну и в догонку - для пакетной группы должен быть указан сервер пакетной обработки (Администрирование / Настройки / Пакетные группы, закладка "Серверы пакетной обработки), а сам сервер должен быть настроен как сервер пакетной обработки (Администрирование / Настройка / Конфигурация сервера, флаг "Сервер обработки пакетных заданий")
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
24.06.2010, 16:35 | #7 |
Administrator
|
EFA, проблема в ошибке, которую допустили разработчики при программировании импорта курса валют. Я не знаю, является ли это частью локализации или это Ваша собственная разработка. В любом случае, решать это должны программисты. Присоединяюсь к руководству к действию, выданному Бобром
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
24.06.2010, 16:56 | #8 |
Участник
|
Судя по пути использовался стандартный локализированный импорт курсов. Вот только он работает, проверено .
__________________
Ivanhoe as is.. |
|
24.06.2010, 17:23 | #9 |
Administrator
|
Ну, во-первых, не факт, что по этому пути в этом приложении всё еще находится стандартный функционал. А, во-вторых, стандартный функционал мог быть модифицирован
В общем, раз стандартный функционал работает, то все претензии к программистам-внедренцам.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
24.06.2010, 17:30 | #10 |
Гость
|
Поменяйте у класса свойство RunOn на "Server" или "Called from"
|
|
24.06.2010, 23:07 | #11 |
Участник
|
либо надо перекрыть runsImpersonated и возвращать false - это если в классе используется что-то, что работает только на клиенте. Например, класс WinApi (в отличие от WinApiServer)
Напомню, что можно запускать старый добрый клиентский пакетный сервер и в нем будут выполняться такие клиентские пакетные задания |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
25.06.2010, 17:08 | #12 |
Участник
|
Спасибо за советы!
Есть другие задания, которые в пакетном режиме отрабатывают корректно. поэтому сделали вывод, что именно с импортом проблемы. Будем мучать внедренцев. Потому как модификаций не должно быть, поскольку не было таких задач. Но в нашем случае все возможно . |
|
02.09.2010, 13:23 | #13 |
MCT
|
аналогичная ошибка появляется при импорте файлов (банковский выписок) из клиент-банка:
Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте. (S)\Classes\BankClientStream_RU\construct - line 9 (S)\Classes\BankClientImportFormat_RU\readStream - line 10 (S)\Classes\BankClientImportFormat_RU\run - line 11 (S)\Classes\BankClientImport_RU\run - line 15 может кто сталкивался? Это базовый немодифицированный импорт из клиент-банка (dax 2009 ru 5) файлы с банковскими выписками лежат на файл-сервере...
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. Последний раз редактировалось d&m; 02.09.2010 в 13:34. |
|
03.09.2010, 11:33 | #14 |
Участник
|
Тут же всё понятно - у класса BankClientStreamTextFile_RU свойство RunOn выставлено в Client. Значит задания, использующие этот класс, нельзя вызывать в пакетном режиме на сервере.
__________________
Дмитрий |
|
06.10.2010, 09:12 | #15 |
MCT
|
Цитата:
aEremenko: Пакетная обработка в AX 2009 я так и делаю: 1. для пакетной группы убираю сервера пакетной обработки (в карточке пакетной группы на закладке "Серверы обработки пакетных заданий") 2. ставлю импорт из клиент-банка в пакет. 3. запускаю отдельную Аксапту, в которой запускаю "старую" обработку пакетных заданий (Основное / Периодические операции / Пакет / Обработка) 4. Пакетное задание продолжает висеть в статусе "Ожидание" как поставить импорт выписок из клиент-банка в пакет? не в ручную же каждый раз это делать?
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
06.10.2010, 10:11 | #16 |
MCT
|
Цитата:
подскажите, а причем тут класс BankClientStreamTextFile_RU? я смотрю список задач по пакетному заданию - там: 1. имя класса - BankClientImport_RU (у этого класса RunOn = CalledFrom 2. запустить из местоположения - Сервер. Из-за этого эта задача всегда будет выполняться на сервере пакетной обработки и завершаться ошибкой "Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте"
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
07.10.2010, 10:33 | #17 |
Участник
|
Цитата:
Сообщение от d&m
подскажите, а причем тут класс BankClientStreamTextFile_RU?
я смотрю список задач по пакетному заданию - там: 1. имя класса - BankClientImport_RU (у этого класса RunOn = CalledFrom 2. запустить из местоположения - Сервер. Из-за этого эта задача всегда будет выполняться на сервере пакетной обработки и завершаться ошибкой "Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте"
__________________
Дмитрий |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
16.11.2010, 13:55 | #18 |
Модератор
|
Цитата:
Сообщение от d&m
Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте.
(S)\Classes\BankClientStream_RU\construct - line 9 (S)\Classes\BankClientImportFormat_RU\readStream - line 10 (S)\Classes\BankClientImportFormat_RU\run - line 11 (S)\Classes\BankClientImport_RU\run - line 15 может кто сталкивался? Это базовый немодифицированный импорт из клиент-банка (dax 2009 ru 5) свойству RunOn присвоить Called from Метод \Classes\BankClientStreamTextFile_RU\validateStreamParms заменяем на следующий код. X++: protected boolean validateStreamParms() { boolean ret; ret = super(); new FileIOPermission(fullPath,'r').assert(); if (readWrite == ReadWrite::read && (isRunningOnServer() ? !WinAPIServer::fileExists(fullPath) : !WinAPI::fileExists(fullPath))) return checkFailed("@SYS97948"); CodeAccessPermission::revertAssert(); return ret; } P.S. Ax 2009 SP1 RU5
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
Теги |
импорт курсов валют |
|
Похожие темы | ||||
Тема | Ответов | |||
Загрузка валют с сайта ЦБ | 31 | |||
Перенести из AX2009 в AX40 импорт банков с ЦБ РФ | 30 | |||
Еще один импорт курсов валют | 24 | |||
Импорт курса валют | 18 | |||
загрузка валют с сайта ЦБ в Axapta 4.0 | 3 |
|