|  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 | 
|  |