AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.05.2013, 14:44   #1  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Связь беспроводного ТСД с Axapta 3.0
Имеется информационная система Axapta версии 3.0, а так же имеется терминал сбор данных (ТСД) марки CipherLAB - 8770 с модулем Wi-Fi и работающий через компоненту CipherLabTCP.dll. Проблема в том что у меня навыков интегрирования беспроводного ТСД с Axapta имеется мало. И хотел бы узнать у пользователей данного форума, кто нито интегрировался беспроводной сканер CipherLab через компоненту CipherLabTCP.dll в информационной системе Axapta? Подскажите пожалуйста как программно правильно нужно связать Wi-Fi сканер через компоненту CipherLabTCP.dll с данной версией Аксапта?
Старый 08.05.2013, 18:47   #2  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Цитата:
Сообщение от ShkipeRR Посмотреть сообщение
Подскажите пожалуйста как программно правильно нужно связать Wi-Fi сканер через компоненту CipherLabTCP.dll с данной версией Аксапта?
Для работы онлайн можно использовать следующие связки:
1. Написать веб-службу.
2. Написать TCP-IP сервер.

Для асинхронной работы ТСД и Axapta (куча ограничений, я бы не советовал):
1. Строите очередь заданий через файловую систему.
2. Строите очередь заданий через SQL.

Могу предложить еще один вариант. Изврат, но на практике встречал рабочие решения:
На ТСД устанавливается RDP-клиент. ТСД подключается к удаленному рабочему столу. Оттуда запускается аксапта и идет работа в аксапте. В аксапте скрываются все панельки когда идет запуск под пользователем с признаком ТСД. Все формы программируются специально для ТСД (жестко заданные размеры).
Старый 08.05.2013, 19:04   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
А что именно за данные предполагается собирать на беспроводном терминале сбора данных (ТСД) марки CipherLAB - 8770 ?
Старый 08.05.2013, 21:15   #4  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от EVGL Посмотреть сообщение
А что именно за данные предполагается собирать на беспроводном терминале сбора данных (ТСД) марки CipherLAB - 8770 ?
Идея заключается в:
- На складе будет находиться ТСД 8770 и уже есть точки доступа Wi-fi и даже сигнал проверяли, т.е. с Wi-fi и ТСД всё нормально. Суть такова: Кладовщик сканирует штрих-код на коробе с помощью данного сканера и в режиме on-line передаёт данные в ИС Аксапта затем ИС Аксапта получает эти данные, анализирует их и отправляет обратное сообщение сканеру приняты или не приняты данные, в сканкоде посоветовали использовать компоненту CipherLabTCP.dll именно через неё все беспроводные ТСД фирмы CipherLab работают. В аксапте программирую код на подключение к компоненте сначала инициализирую затем работаю как с ком объектами, но аксапта при подключении к этой компоненте выдаёт ошибку и уходит в режим восстановления.
И хотел я узнать, может быть кто нито имел дело с ТСД фирмой CipherLab и компонентой для организации беспроводной передачи данных по компоненте CipherLabTCP.dll?
И ещё я хотел бы узнать какие вариенты поддерживает аксапта 3.0: колбек, сообщение окну или эвент? данный вопрос относится к вопросу, как можно принять данные из компоненты CipherLabTCP.dll (если писать отдельное приложение для приёма данных из ТСД в Аксапту)
__________________
Axapta 3.0 SP6 Build 1951

Последний раз редактировалось ShkipeRR; 08.05.2013 в 21:27.
Старый 08.05.2013, 21:37   #5  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от _scorp_ Посмотреть сообщение
Для работы онлайн можно использовать следующие связки:
1. Написать веб-службу.
2. Написать TCP-IP сервер.
Я так и подумал нужно писать отдельное прикладное ПО.
Но чтобы писать не могли бы помочь разобраться что поддерживает Аксапта 3.0 колбек, сообщение окну или эвант?

Просто данные из компоненты CipherLabTCP.dll можно сообщать ИС разными способами такими как колбеком, сообщение окну и эвент. И я хотел бы уточнить что Аксапта может поддерживать?
__________________
Axapta 3.0 SP6 Build 1951
Старый 09.05.2013, 11:52   #6  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Цитата:
Сообщение от ShkipeRR Посмотреть сообщение
Просто данные из компоненты CipherLabTCP.dll можно сообщать ИС разными способами такими как колбеком, сообщение окну и эвент. И я хотел бы уточнить что Аксапта может поддерживать?
Вам нужно писать две части - клиентскую и серверную. Серверная часть будет посредством COM Busines Connector взаимодействовать с Axapta и должна висеть на каком нибудь сервере. Серверная часть содержит набор методов для работы с аксаптой. Напрмер: зарезервировать товар, создать перемещение по списку товаров, разнести перемещение и т.д. Клиентская часть находится на ТСД. Клиентская часть работает с железом сканера (скачайте на сайте производителя SDK) и с серверной частью.

Обойтись одним приложением не получится, т.к. на ТСД не поднимится COM Busines Connector - он скомпилирован под x86.
Старый 09.05.2013, 17:09   #7  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от _scorp_ Посмотреть сообщение
Вам нужно писать две части - клиентскую и серверную. Серверная часть будет посредством COM Busines Connector взаимодействовать с Axapta и должна висеть на каком нибудь сервере. Серверная часть содержит набор методов для работы с аксаптой. Напрмер: зарезервировать товар, создать перемещение по списку товаров, разнести перемещение и т.д. Клиентская часть находится на ТСД. Клиентская часть работает с железом сканера (скачайте на сайте производителя SDK) и с серверной частью.

Обойтись одним приложением не получится, т.к. на ТСД не поднимится COM Busines Connector - он скомпилирован под x86.
Спасибо!!! На ТСД стоит специальная операционная система Cipher OS. Закачать любые приложения туда нельзя.
Из компании сканкод мне предложили получать данные из компоненты в Аксапту такими способами как колбек, эвент и сообщение окну. Тогда я правильно понимаю что эти способы в аксапте не получатся?

Цитирую что сканкод предлагает чтобы соединить ТСД 8770 с аксаптой по беспроводной сети wi-Fi
" Мы можем сообщать программе 3-мя способами: колбеком, сообщение окну и эвент (есть еще очередь сообщений, но я не встречал, чтобы данный механизм где-то использовался). Теоретически (да и практически тоже) мы можем реализовать все 3 (или 4) способа, но это не факт, что заработает в Акцапте. Ну и проверить мы не сможем. Мы сможем только написать программу на С++, которая будет данным способом общаться с компонентой. Сообщите, какой способ поддерживает Акцапта"
__________________
Axapta 3.0 SP6 Build 1951
Старый 09.05.2013, 18:00   #8  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Цитата:
Сообщение от ShkipeRR Посмотреть сообщение
Тогда я правильно понимаю что эти способы в аксапте не получатся?
Я не представляю как эти способы реализовать.
Старый 10.05.2013, 14:16   #9  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от _scorp_ Посмотреть сообщение
Я не представляю как эти способы реализовать.
Спасибо!!! А на будущее чтобы мне знать из этих способов что нито аксапта 3.0 поддерживает и где можно это посмотреть или почитать про эти 3 способа?
__________________
Axapta 3.0 SP6 Build 1951
Старый 10.05.2013, 19:51   #10  
dima123 is offline
dima123
Участник
 
41 / 12 (1) ++
Регистрация: 05.01.2012
Надо начала надо выкинуть терминалы и заменить их на нормальные . а потом софт на терминале плюс сервак коротый по COM и SQL с ахаптой .
У нас реализовано : продажы , покупка, движение по складу и тд и тп . всякии состояния склада с кучей логики.

А если вы хотите остаца на этих терминалах , то пускай пушут прогу которая по HTTP с серваком общаеца. Всё тривиально .
Но я посоветовал бы MS платформу ( прогеров куча , разработка быстрая и по деньгам норм , много документации , возможности не такие ограничаные ) .
Старый 10.05.2013, 23:45   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от ShkipeRR Посмотреть сообщение
Из компании сканкод мне предложили получать данные из компоненты в Аксапту такими способами как колбек, эвент и сообщение окну.
Цитата:
Сообщение от ShkipeRR Посмотреть сообщение
из этих способов что нито аксапта 3.0 поддерживает и где можно это посмотреть или почитать про эти 3 способа?
Аксапта написана для работы под управлением виндов, поэтому если ее научить, то она сможет делать (для 3.0 - почти) все, что могут делать другие виндовые приложения, другой вопрос, насколько это будет трудоемко. С вариантом callback-функции могут возникнуть определенные сложности, потому что там необходимо, чтобы эта функция была скомпилирована с учетом определенных соглашений о вызовах (т.н. __stdcall). Под event'ом разработчики из Сканкода, видимо, понимают дергание обработчиков событий ActiveX-объектов, Аксапта это поддерживает, но нужно, чтобы сперва соотв. ActiveX-компонент кто-то написал. В этом смысле, наверно, вариант с обработкой оконных сообщений выглядит наиболее простым с точки зрения реализации на Х++. Пример реализации цикла обработки оконных сообщений можно посмотреть в \Classes\TableLookup_RU\waitAndSearch (по идее этот класс должен быть в 3.0, но сейчас проверить у меня нет возможности). Вкратце, в Windows есть окна, окна принимают сообщения, для которых организуется очередь, и есть callback-функции - обработчики оконных сообщений, в т.ч. обработчики по умолчанию, выполняющие большую часть рутинных операций; обработчики оконных сообщений также называют оконными функциями (Window Proc). Сообщение окну может быть помещено в очередь (для асинхронной обработки) либо может быть отправлено (для синхронной обработки с использованием прямого вызова оконной функции). Окна и оконные функции могут использоваться не только для отрисовки и реализации собственно окон (включая меню, кнопки и проч.), но и для сценариев интеграции, как в рассматриваемом случае. Обычно приложение организует цикл обработки оконных сообщений, который представляет собой нечто вроде:
PHP код:
while (GetMessage(&msgNULL00)) 
{
    
TranslateMessage(&msg);
    
DispatchMessage(&msg);

Тут за кадром остаются вызовы оконных функций, зарегистрированных для каждого соотв. класса окна. Опять же, поскольку оконные функции - это callback-функции, то реализация их в Аксапте на Х++ сопряжена с определенными трудностями (см. про __stdcall), но в примере с TableLookup_RU разработчики несколько упростили себе жизнь и вместо создания своей callback-функции встроили логику в цикл обработки сообщений, пожертвовав асинхронностью. Возможно, имеет смысл пойти примерно по тому же пути. Остается маленький нюанс - собственно создание окна, чья очередь сообщений задействуется в интеграции. Для этого используются функции CreateWindow/CreateWindowEx; перед созданием окна нужно зарегистрировать соотв. класс окна либо использовать один из предопределенных системных классов, таких как "BUTTON" или "EDIT". Конкретный класс окна влияет на его внешний вид и функциональные возможности, но поскольку тут окно нужно лишь для доступа к инфраструктуре обмена (оконными) сообщениями, конкретный класс не особо важен.
В общем, как мне представляется, с помощью оконных сообщений можно пусть не очень красиво и с использованием кучи оберток для функций Win32 API, но реализовать интеграцию на голом Х++, без написания дополнительных прослоек. Опять же, веселуха начнется в случае, когда на один хост с этой CipherLabTCPIP.dll начнут одновременно приходить данные от нескольких ТСД - это все надо будет разруливать внутри одной сессии Business Connector, крутящей цикл обработки оконных сообщений.
На счет доступа по http и тривиальности реализации в этом случае - утверждение, как мне кажется, не вполне однозначное Вместо одной сессии с легкой реализацией хранения состояния и непростой реализацией разруливания параллельного доступа с нескольких ТСД получится, условно, куча stateless-сессий http с легким разруливанием параллельного доступа с нескольких ТСД, но с непростой реализацией хранения состояния каждой сессий. Плюс из http-сервера все равно надо будет дергать Business Connector. Впрочем, кому что удобнее.
Старый 11.05.2013, 15:13   #13  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от Player1 Посмотреть сообщение
Ага, это мой вопрос сканкоду. Они хотятотдельную программу написать под аксапту и спрашивают какие методы лучше поддерживает аксапта 3.0, т.к. в для ИС Аксапта компания сканкод не разрабатывала отдельные приложения. Для 1С у них много примеров а для подключения Wi-Fi терминала для Аксапта у них нет примеров.
__________________
Axapta 3.0 SP6 Build 1951
Старый 11.05.2013, 15:16   #14  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от 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
Старый 13.05.2013, 08:50   #15  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от ShkipeRR Посмотреть сообщение
На ТСД стоит специальная операционная система Cipher OS. Закачать любые приложения туда нельзя.
А для этой ОС нет реализации RDP? Если данные со сканера можно будет перенаправить в буфер клавиатуры, то можно обойтись малой кровью.
Старый 13.05.2013, 09:41   #16  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А для этой ОС нет реализации RDP? Если данные со сканера можно будет перенаправить в буфер клавиатуры, то можно обойтись малой кровью.
К сожалению RDP нет, у него специальная операционная система от ChiperLab. Очень сильно похожа на операционную систему простых не Wi-Fi ТСД от ChipherLab, только дабавлены настройки под Wi-Fi ну и соответственно если ТСД не подключился к Wi-Fi, а именно к драйверу ТСД (под драйвером имею ввиду компоненту от компании сканкод ChipherLabTCP.dll), то на дисплее ТСД не появится нужная задача. Аксапта подключается к Драйверу но с ошибкой и сразу же уходит в аварийный режим и происходит автоматическое отключение ТСД ото драйвера, ну и соответственно автоматическая перезагрузка Axapta.
__________________
Axapta 3.0 SP6 Build 1951
Старый 13.05.2013, 15:11   #17  
virhundo is offline
virhundo
Участник
 
33 / 16 (1) ++
Регистрация: 29.03.2007
Цитата:
А COM коннектор для 3.0 Вы даже не рассматриваете?
Правильно! Написать стороннюю программу-сервис, подключить ее как КОЛБЕКом или ЭВЕНТом, в синхронном режиме обмениваться информацией с AX через COM.

EVGL: извиняюсь, случайно отредактировал сообщение от virhundo вместо того, чтобы ответить.

Последний раз редактировалось EVGL; 13.05.2013 в 15:56.
За это сообщение автора поблагодарили: EVGL (1).
Старый 13.05.2013, 16:58   #18  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от virhundo Посмотреть сообщение
Правильно! Написать стороннюю программу-сервис, подключить ее как КОЛБЕКом или ЭВЕНТом, в синхронном режиме обмениваться информацией с AX через COM.

EVGL: извиняюсь, случайно отредактировал сообщение от virhundo вместо того, чтобы ответить.
я правильно понимаю, сторонняя программа-сервис будет осуществлять подключение к ТСД ну и основные функции будут в ней прописаны, в аксапте создавать обращение к данной программе-сервис, через Com будут данные поступать в AX, а далее сделать в AX анализ данных и обратно через COM подавать сообщение данной программе-сервис, а затем программа сервис отсылает сообщение на дисплей ТСД такой алгоритм будет?
__________________
Axapta 3.0 SP6 Build 1951
Старый 13.05.2013, 17:16   #19  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Не совсем. Обратно "подавать сообщение" вы не сможете. Вы можете только возвращать значение функции, вызванной сторонним приложением через COM.
Старый 13.05.2013, 17:29   #20  
ShkipeRR is offline
ShkipeRR
Участник
 
41 / 7 (1) +
Регистрация: 08.05.2013
Адрес: Владимир
Цитата:
Сообщение от EVGL Посмотреть сообщение
Не совсем. Обратно "подавать сообщение" вы не сможете. Вы можете только возвращать значение функции, вызванной сторонним приложением через COM.
Спасибо за ответ! Предположим что в программе-сервис организована такая функция, которая возвращает значение, обращается к ТСД и показывает на дисплее информацию. Тогда я правильно понимаю, если в аксапте прописать возвращаемое значение ну например возвращаемое значение слово "WORLD" и передать это слово программе-сервису, то по логике программа -сервис должна дать сигнал на ТСД и данное слово должно отобразиться на дисплее ТСД. Правильно я понимаю, так по логике должно получится?
__________________
Axapta 3.0 SP6 Build 1951
Теги
cipherlab, wifi, тсд, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptacorner: Dynamics Axapta History Blog bot DAX Blogs 0 15.06.2012 17:11
Связь между системой Axapta и базой данных разорвалась zemlyn DAX: Администрирование 1 25.12.2009 09:33
dynamicsaxtraining: Axapta Training Introduction Blog bot DAX Blogs 0 12.11.2009 17:05
Axapta и Ин. языки SIRS DAX: Администрирование 4 01.03.2006 10:02
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:40.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.