08.07.2005, 17:08 | #1 |
Участник
|
ошибка на logon comconnector'а
на строке
Axapta.Logon2 "MyUser", "MyPassword", , , , , "MyProfile" возникает ошибка (см. атач) диспетчера ODBC а том, что связь с MS SQL сервером уже используется может кто знает как лечить? thx |
|
08.07.2005, 17:52 | #2 |
Участник
|
А в настройках Business Connector зарегистрил как COM or DCOM or COM+, если не зарегистрить то может ругаться и так вы сказали.
>> (см. атач) диспетчера ODBC --? и где же |
|
11.07.2005, 11:48 | #3 |
Участник
|
уточнение
Законектился...
теперь пишет ошибку Run-time error '-2147213251 (8004203d)': Ошибка времени выполнения. : Object Объект не имеет метода 'name'. Трассировка стека: \Classes\Object\name \Classes\SysSetupFromRun\new - line 10 \Classes\ClassFactorv\formRunClassOnClient - line 5 |
|
11.07.2005, 12:21 | #4 |
Участник
|
Параметры в вызове поставь и должно быть тебе счастье , пример на *.vbs
Set Axapta = CreateObject("AxaptaCOMConnector.Axapta") Можно так сделать Axapta.Logon2 "admin","MY_PASSWOD","dat","ru","","DBFULL","test" или Axapta.Logon2 "admin","","dat","ru","","DBFULL","test" можно и так Axapta.Logon "admin","DBFULL","","test" |
|
11.07.2005, 12:34 | #5 |
Участник
|
у меня уже коннектится нормально
при вызове функции Axapta.CallStaticClassMethod "MyClass", "RunForm" где RunForm - static метод класса, который отображает форму на экране |
|
11.07.2005, 12:39 | #6 |
Участник
|
запущена аксапта (клиент) или не запущена, зарегистрирован или нет axapta business connector - все одну и ту же ошибку выдает (см. предыдущее сообщение)
|
|
11.07.2005, 12:57 | #7 |
Administrator
|
нельзя извне запустить форму Аксапты, даже скрытую. Остальное - все что хошь
|
|
11.07.2005, 13:05 | #8 |
Участник
|
т.е. нельзя сделать следующее:
на клиентской машине запущена аксапта и эксель в экселе макрос через com connector вызывает static метод класса, который в аксапте отображает нужную форму это можно сделать? |
|
11.07.2005, 13:43 | #9 |
Administrator
|
1. Запущенные сессии Аксапты через COM и не через COM - разные (см Администрирование-Активные пользователи)
2. (Следствие) Запустить форму - как описано в задачке - нельзя. Единственное, что можно - поиграться с WinApi и нужное окно активизировать. Но для этого форма д.б. запущена |
|
11.07.2005, 14:34 | #10 |
Участник
|
мне не обязательно чтобы окно с формой становилось активным
я сам могу переключится alt tab'ом главное чтобы внутри аксапты запустилась нужная мне форма |
|
11.07.2005, 14:38 | #11 |
Участник
|
понял. т.е. фактически сессии разные.
а как нить повлиять на уже запущенную сессию можно? т.е. послать ей сигнал - запустить такую-то форму... |
|
11.07.2005, 15:16 | #12 |
Administrator
|
Теоретически - наверное можно. Идея такова - при запуске аксапты запускается некий класс который сканирует некую табличку (табличка не должны кешироваться). Если в табличке изменилась запись - то класс запускает форму. Запись должна изменяться извне.
Но это изврат. Ибо во-первых, скажется на производительности, во-вторых трудоемкость сего исследования несопоставима с убеждением пользователя проделать сие самостоятельно (все-таки Аксапта - это система, а не среда разработки). Стандартно, используя минимальные трудозатраты этого сделать нельзя. |
|
11.07.2005, 15:42 | #13 |
Участник
|
а в аксапте есть что-то аналогичное unix'овому IPC (inter process communications - межпроцессное взаимодействие)
семафоры, очереди сообщений или еще что? |
|
11.07.2005, 16:07 | #14 |
Соучастник
|
Forms/Tutorial_Battleship - хороший пример реализации взаимодействия между сессиями.
Forms/Tutorial_Thread - пример того, как запустить фоновый процесс. Classes/Application/startUpPost - инициализируйте запуск фонового процесса. На производительность периодического фонового select-a(который, я так понял нужно запускать, только когда пользователь меняет фокус с клиентского приложения Axapta на 3-rd party) по маленькой индексированной табличке(число записей не превышает кол-во активных сессий) не снизит производительность системы.
__________________
View Anton Soldatov's LinkedIn profile |
|
11.07.2005, 16:12 | #15 |
Administrator
|
По большому счету нет. Есть класс \System Documentation\Classes\Thread, который позволяет запускать несколько ветвей. Но это внутри одной аксапты. Документации на него нет (или по крайней мере я не видел). И это появилось только в 3.0 - т.е. возможно сыроватое.
Поэтому проще сказать - что нет. |
|
11.07.2005, 16:13 | #16 |
Administrator
|
уже опередили ... Ну значит я заблуждался
|
|
11.07.2005, 16:23 | #17 |
Соучастник
|
в остутствии семафоров не заблуждались, в морском бое все взаимодействие через таблицу, как вы и говорили.
а про целесообразность - работа на день-два. зато для пользователя - "линки" в ячейках экселя к нужным формам(и даже записям). по-моему идея имеет право на жизнь. правда если поьзователей много и у каждого COM клиенты - это дополнительные пользователи, что довольно дороговато. но это уже другой вопрос. это скорее делают для руководства.
__________________
View Anton Soldatov's LinkedIn profile |
|