|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от _scorp_
![]() Вам нужно писать две части - клиентскую и серверную. Серверная часть будет посредством COM Busines Connector взаимодействовать с Axapta и должна висеть на каком нибудь сервере. Серверная часть содержит набор методов для работы с аксаптой. Напрмер: зарезервировать товар, создать перемещение по списку товаров, разнести перемещение и т.д. Клиентская часть находится на ТСД. Клиентская часть работает с железом сканера (скачайте на сайте производителя SDK) и с серверной частью.
Обойтись одним приложением не получится, т.к. на ТСД не поднимится COM Busines Connector - он скомпилирован под x86. Из компании сканкод мне предложили получать данные из компоненты в Аксапту такими способами как колбек, эвент и сообщение окну. Тогда я правильно понимаю что эти способы в аксапте не получатся? Цитирую что сканкод предлагает чтобы соединить ТСД 8770 с аксаптой по беспроводной сети wi-Fi " Мы можем сообщать программе 3-мя способами: колбеком, сообщение окну и эвент (есть еще очередь сообщений, но я не встречал, чтобы данный механизм где-то использовался). Теоретически (да и практически тоже) мы можем реализовать все 3 (или 4) способа, но это не факт, что заработает в Акцапте. Ну и проверить мы не сможем. Мы сможем только написать программу на С++, которая будет данным способом общаться с компонентой. Сообщите, какой способ поддерживает Акцапта"
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Спасибо!!! А на будущее чтобы мне знать из этих способов что нито аксапта 3.0 поддерживает и где можно это посмотреть или почитать про эти 3 способа?
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#4 |
Участник
|
Цитата:
Цитата:
PHP код:
В общем, как мне представляется, с помощью оконных сообщений можно пусть не очень красиво и с использованием кучи оберток для функций Win32 API, но реализовать интеграцию на голом Х++, без написания дополнительных прослоек. Опять же, веселуха начнется в случае, когда на один хост с этой CipherLabTCPIP.dll начнут одновременно приходить данные от нескольких ТСД - это все надо будет разруливать внутри одной сессии Business Connector, крутящей цикл обработки оконных сообщений. На счет доступа по http и тривиальности реализации в этом случае - утверждение, как мне кажется, не вполне однозначное ![]() |
|
![]() |
#6 |
Участник
|
Ага, это мой вопрос сканкоду. Они хотятотдельную программу написать под аксапту и спрашивают какие методы лучше поддерживает аксапта 3.0, т.к. в для ИС Аксапта компания сканкод не разрабатывала отдельные приложения. Для 1С у них много примеров а для подключения Wi-Fi терминала для Аксапта у них нет примеров.
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Аксапта написана для работы под управлением виндов, поэтому если ее научить, то она сможет делать (для 3.0 - почти) все, что могут делать другие виндовые приложения, другой вопрос, насколько это будет трудоемко. С вариантом callback-функции могут возникнуть определенные сложности, потому что там необходимо, чтобы эта функция была скомпилирована с учетом определенных соглашений о вызовах (т.н. __stdcall). Под event'ом разработчики из Сканкода, видимо, понимают дергание обработчиков событий ActiveX-объектов, Аксапта это поддерживает, но нужно, чтобы сперва соотв. ActiveX-компонент кто-то написал. В этом смысле, наверно, вариант с обработкой оконных сообщений выглядит наиболее простым с точки зрения реализации на Х++. Пример реализации цикла обработки оконных сообщений можно посмотреть в \Classes\TableLookup_RU\waitAndSearch (по идее этот класс должен быть в 3.0, но сейчас проверить у меня нет возможности). Вкратце, в Windows есть окна, окна принимают сообщения, для которых организуется очередь, и есть callback-функции - обработчики оконных сообщений, в т.ч. обработчики по умолчанию, выполняющие большую часть рутинных операций; обработчики оконных сообщений также называют оконными функциями (Window Proc). Сообщение окну может быть помещено в очередь (для асинхронной обработки) либо может быть отправлено (для синхронной обработки с использованием прямого вызова оконной функции). Окна и оконные функции могут использоваться не только для отрисовки и реализации собственно окон (включая меню, кнопки и проч.), но и для сценариев интеграции, как в рассматриваемом случае. Обычно приложение организует цикл обработки оконных сообщений, который представляет собой нечто вроде:[php]while (GetMessage(&msg, NULL, 0, 0))
{ TranslateMessage(&msg); DispatchMessage(&msg); }
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
К сожалению RDP нет, у него специальная операционная система от ChiperLab. Очень сильно похожа на операционную систему простых не Wi-Fi ТСД от ChipherLab, только дабавлены настройки под Wi-Fi ну и соответственно если ТСД не подключился к Wi-Fi, а именно к драйверу ТСД (под драйвером имею ввиду компоненту от компании сканкод ChipherLabTCP.dll), то на дисплее ТСД не появится нужная задача. Аксапта подключается к Драйверу но с ошибкой и сразу же уходит в аварийный режим и происходит автоматическое отключение ТСД ото драйвера, ну и соответственно автоматическая перезагрузка Axapta.
__________________
Axapta 3.0 SP6 Build 1951 |
|
Теги |
cipherlab, wifi, тсд, ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|