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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2017, 16:22   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Как достучаться из веб-приложения к акс2012, акс2009? Сервер OData?
Вопрос. Пока теоретический.

Как достучаться из веб-приложения к акс2012, акс2009?

Предположим, есть традиционное веб-приложение на традиционном для веба LAMP

Как лучше с архитектурной точки зрения организовать доступ к Аксапте для этого приложения? делать прокси к бизнес-коннектору? делать сервер OData? Создавать специализироованные веб-сервисы средствами самой Аксапты? Еще как-то?
Поделитесь опытом, размышлениями.

Есть ли уже готовые решения?


для акс7 понятно - там OData поставляется "из коробки". А вот для предыдущих версий?

апд: И да, задача ставится не для "экономии" лицензий Аксапты. Задача "как сделать правильно"
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 22.05.2017 в 16:41.
Старый 22.05.2017, 17:31   #2  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 164 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
С АХ 2012 необходимо интегрировать при помощи "custom" вэб-сервисов. Рабочеи места сотрудников, пользующихся web интерфейсом, лицензируется, как обычные, внешние пользователи - бесплатно.
Старый 22.05.2017, 17:59   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Morpheus Посмотреть сообщение
С АХ 2012 необходимо интегрировать при помощи "custom" вэб-сервисов.
"custom" вэб-сервисы - это специализированные веб-сервисы, написанные на Аксапте?
Другими словами, вести параллельную кастомизацию и в веб-приложении, и в Аксапте?

А может есть что-нибудь более унверсальный способ?
__________________
полезное на axForum, github, vk, coub.
Старый 22.05.2017, 18:26   #4  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение
  • делать прокси к бизнес-коннектору
  • делать сервер OData
  • Создавать специализироованные веб-сервисы средствами самой Аксапты
  • Еще как-то
Цитата:
Сообщение от Morpheus Посмотреть сообщение
С АХ 2012 необходимо интегрировать при помощи "custom" вэб-сервисов. Рабочеи места сотрудников, пользующихся web интерфейсом, лицензируется, как обычные, внешние пользователи - бесплатно.
"Правильно" но не обязательно "верно" - это JSON.
AX2012 это прежде всего класс RetailCommonWebAPI умеющий работать с JSON.

• Обмен файлами
• Обмен через общую базу данных
• Удаленный вызов функций
• Сервисная шина предприятия (MQ, ESB)

https://habrahabr.ru/post/326088/

А на веб-сервисы мы, хорошо подумав, забили. И вместо них решили реализовать обмен по старому доброму протоколу HTTP с применением обмена файлами
https://habrahabr.ru/company/bitrix/blog/129156/

Насчет всех внешних пользователей они должны быть не просто внешними но сторонними.
Цитата:
External (third party) users do not require licenses. Third party users are users that are not either (i) your or your affiliates’ employees, or (ii) your or your affiliates’ contractors or agents. In this sense, the definition of third party users does not extend to onsite contractors, vendors and users performing business processes on your behalf.
Старый 22.05.2017, 18:56   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ax_mct Посмотреть сообщение
AX2012 это прежде всего класс RetailCommonWebAPI умеющий работать с JSON.
Последние несколько месяцев работаю только с Retail.
Раньше в GMCS работал с этим модулем пару лет.
Удивлен, что объекты этого модуля кто-то в пример приводит.

а это ничего, что этот класс работает с JSON через System.Collections.Hashtable?
причем десериализует без проверок-стражей и даже без перехвата exception?

собственно мой вопрос возник из семейства классов Retail.
Да, вот это мы видим.

А как правильно?
А что делать приложению на LAMP? Переписывать приложение на c# под IIS?

апд: добавил скриншотов
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 497
Размер:	52.8 Кб
ID:	11402   Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 557
Размер:	47.9 Кб
ID:	11403  

__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 22.05.2017 в 19:18.
Старый 22.05.2017, 19:28   #6  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение
(1)"Правильно" но не обязательно "верно" - это JSON.
(2 )AX2012 это прежде всего класс RetailCommonWebAPI умеющий работать с JSON.

[/B]
Цитата:
Сообщение от mazzy Посмотреть сообщение
Удивлен, что объекты этого модуля кто-то в пример приводит.

а это ничего, что этот класс работает через System.Collections.Hashtable?
причем десериализует без проверок-стражей и даже без перехвата exception?
RetailCommonWebAPI - это как бы "правильно" с точки зрения вендора, но не не обязательно "верно" для конкретного использования. Никоим образом не рекомендовал. Но оно все же"стандартное" (в новом значении этого слова) и перечислять такое в качестве примера необходимо.
Цитата:
А как правильно?
А что делать приложению на LAMP? Переписывать приложение на c# под IIS?
Кстати постановка вопроса "достучаться из веб-приложения к AX" - спорная. Возможно это AX надо обновлять веб-приложение. То есть само веб-приложение не имеет доступа к AX. В идеале - так лучше.
Старый 22.05.2017, 19:42   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ax_mct Посмотреть сообщение
RetailCommonWebAPI - это как бы "правильно" с точки зрения вендора, но не не обязательно "верно" для конкретного использования. Никоим образом не рекомендовал. Но оно все же"стандартное" (в новом значении этого слова) и перечислять такое в качестве примера необходимо.
ага. понял.
предлагаю считать долг вендору и Retail-компонентам отданым и перейти к правильному с точки зрения пользователей и ИТ-команды заказчика. Кстати, не исключено, что Retail-компоненты вполне правильные с точки зрения пользователей и ИТ-команды заказчика, просто я их неправильно готовлю.

Цитата:
Сообщение от ax_mct Посмотреть сообщение
Кстати постановка вопроса "достучаться из веб-приложения к AX" - спорная. Возможно это AX надо обновлять веб-приложение. То есть само веб-приложение не имеет доступа к AX. В идеале - так лучше.
я согласен, что спорная.

изначально писал про то, что современные веб-приложения - это комплекс ПО и на сервере, и на клиенте. Встретить современного клиента без JS... это поискать надо. (или какой-нибудь Dynamics AX WMS. Будем считать, что и ему долг отдали. )))

Причем современные - это не только браузерные приложения, но и Android/iOS приложения.

Скорее у заказчика будет уже существующее веб-приложение типа WMS, типа какой-нибудь внутренней заказывалки или еще что-нибудь. Скорее всего, это приложение будет реализовано на LAMP в виде серверной и клиентской части. Скорее всего, используются какие-нибудь стандартные для веб-мира библиотеки типа node.js, knockout и подобные

Собственно, вопрос как организовать взаимодействие этого приложения с акс2012, акс2009?
__________________
полезное на axForum, github, vk, coub.
Старый 22.05.2017, 19:56   #8  
Dumfag is offline
Dumfag
Участник
 
8 / 10 (1) +
Регистрация: 20.03.2015
Цитата:
Сообщение от Morpheus Посмотреть сообщение
С АХ 2012 необходимо интегрировать при помощи "custom" вэб-сервисов. Рабочеи места сотрудников, пользующихся web интерфейсом, лицензируется, как обычные, внешние пользователи - бесплатно.
Я правильно понимаю, что это AIF?
Если да, то мне такой способ больше нравится, чем с бизнес-коннектором (создавать дополнительную прослойку для обмена между AX и LAMP, С# на IIS)
Почти все языки поддерживают формат обмена данными по WSDL.
Старый 22.05.2017, 19:59   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
да, про AIF не сказал.
AIF требует доработки классов и настройки на стороне Аксапты.
AIF отсутствует в акс7. да, я спрашивал про акс2009, акс2012, но точно стоит завязываться на технологию, которой не будет в следующей версии? почему?
__________________
полезное на axForum, github, vk, coub.
Старый 23.05.2017, 00:09   #10  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение
современные веб-приложения - это комплекс ПО и на сервере, и на клиенте. Встретить современного клиента без JS... это поискать надо.
...
Скорее у заказчика будет уже существующее веб-приложение типа WMS, типа какой-нибудь внутренней заказывалки или еще что-нибудь. Скорее всего, это приложение будет реализовано на LAMP в виде серверной и клиентской части
....
Собственно, вопрос как организовать взаимодействие этого приложения с акс2012, акс2009?
Это понятно что нефиг JS в браузере запрашивать ERP. Я о том что вообще нефиг, подразумевая под веб-приложением серверную часть. Инициатором обмена данных может и должна выступать только AX. В идеале. Который вполне достижим.

Что мешает AX самой подключиться к удаленной базе третьего приложения и положить, взять то что нужно? А если в одной сети то вообще - однозначно так.
Есть база MySQL в локальной сети, так что мудить с REST? Для CV?Периодический джобик AX работает с этой базой. У самого этого внутреннего приложения нет доступа к AX - ибо нефиг.

Но вот скорее веб-приложение хостится на AWS, а AX - во внутренней сети. Тут варианты но все равно лучше когда не к AX обращаются, а она сама синхронизирует данные третьего приложения. Так многое упрощается и становится надежнее.

Транспорт? Если это не красивый адаптер для продажи, а как для себя, то я бы передавал файлы через SFTP или HTTP POST.
Старый 23.05.2017, 00:20   #11  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Что мешает AX самой подключиться к удаленной базе третьего приложения и положить, взять то что нужно?
В принципе может мешать многое. Но мы же берем ситуацию когда одна и та же команда в одной и той же компании, то есть внутрикорпоративно. Хороший интернет и хорошие программисты

Делать так ISV адаптеры - уже не поймут. Тут конечно же REST/JSON и все такое. Красивое
Старый 23.05.2017, 09:33   #12  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
А я бы сделал старый-добрый Web сервис, ну или REST, но независимый от Аксапты - который бы реализовывал нужный функционал.
Как он будет это делать - через коннектор, Odata или просто читать напрямую из базы - уже дело вкуса. Внешнее приложение просто дергало бы в нужный момент сервис и не парилось как там чего реализовано.
__________________
Axapta 3.0 sp - хз какой, kr2
Старый 23.05.2017, 09:45   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Инициатором обмена данных может и должна выступать только AX.
даже в случае, когда пользователь на своем браузере открывает форму с аксаптовскими данными?
типичный пример - приложение для ввода данных о расходах подотчетного лица.
такое приложение уже есть в аксапе. сотрудник открывает форму в браузере и видит свои авансовые отчеты со строками и статусами одобрения.

Цитата:
Сообщение от egorych Посмотреть сообщение
А я бы сделал старый-добрый Web сервис, ну или REST, но независимый от Аксапты - который бы реализовывал нужный функционал
Другими словами, на каждый случай свой отдельный сервис?
стоит ли заморачиватся универсальными сервисами?
или наваять специализированный проще и быстрее, нежели разбираться с еще одним фреймворком?

другими словами,
нужен ли какой-то прокси-набор для доступа к аксапте из традиционных для веб-разработки библиотек?
насколько нужен? с каких библиотек стоило бы начать?
__________________
полезное на axForum, github, vk, coub.
Старый 23.05.2017, 10:29   #14  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
А что есть "правильно" и что есть "доступ", а какие нагрузки будут, а можно хотя бы простой сценарий озвучить.... а то бросились тут в технические подробности, хотя мне, например, задача что-то непонятна.
__________________
Sapere aude
Старый 23.05.2017, 11:39   #15  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Цитата:
Сообщение от mazzy Посмотреть сообщение
Другими словами, на каждый случай свой отдельный сервис?
стоит ли заморачиватся универсальными сервисами?
или наваять специализированный проще и быстрее, нежели разбираться с еще одним фреймворком?
Я сторонник специализированных сервисов - и писать проще и работают быстрее.
__________________
Axapta 3.0 sp - хз какой, kr2
Старый 23.05.2017, 11:44   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mazzy Посмотреть сообщение
Как достучаться из веб-приложения к акс2012, акс2009?

Предположим, есть традиционное веб-приложение на традиционном для веба LAMP
остальное сознательно не конкретизировано.

Цитата:
Сообщение от Diman Посмотреть сообщение
А что есть "правильно" и что есть "доступ", а какие нагрузки будут, а можно хотя бы простой сценарий озвучить....
Правильно = в долгосрочной перспективе максимизировать удовольствие пользователя от приложения при минимизации трудозатрат разработчиков.

нагрузка, сценарий, удовольствие, трудозатраты, библиотеки, архитектура - являются переменными величинами и могут обсуждаться.

скорее всего, при высокой нагрузке будет одно решение. какое?
а при низкой - другое. какое? или то же самое?

на первой итерации я бы с удовольствием послушал знающих людей как подобная задача решается в мире традиционной веб-разработки.

примеры:
https://angularjs.org/ (начиная со слов Data binding)
http://learn.knockoutjs.com/#/?tutorial=loadingsaving
https://facebook.github.io/react/tutorial/tutorial.html
__________________
полезное на axForum, github, vk, coub.
Старый 23.05.2017, 11:49   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
пример доступа к DB со стороны серверной части
https://metanit.com/web/nodejs/6.2.php
__________________
полезное на axForum, github, vk, coub.
Старый 23.05.2017, 12:45   #18  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
остальное сознательно не конкретизировано.


Правильно = в долгосрочной перспективе максимизировать удовольствие пользователя от приложения при минимизации трудозатрат разработчиков.

нагрузка, сценарий, удовольствие, трудозатраты, библиотеки, архитектура - являются переменными величинами и могут обсуждаться.

скорее всего, при высокой нагрузке будет одно решение. какое?
а при низкой - другое. какое? или то же самое?

на первой итерации я бы с удовольствием послушал знающих людей как подобная задача решается в мире традиционной веб-разработки.

примеры:
https://angularjs.org/ (начиная со слов Data binding)
http://learn.knockoutjs.com/#/?tutorial=loadingsaving
https://facebook.github.io/react/tutorial/tutorial.html
сервис producer-очередь-сервис consumer обычно такие решения для больших проектов, которые предполагается масштабировать, паблишить наружу и т.п. Если решения для одного конкретного клиента, тот тут слово "правильно" и "приятно" имеют очень широкую трактовку.
Не понял причем тут JS фреймворки.
__________________
Sapere aude
Старый 23.05.2017, 12:50   #19  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Diman Посмотреть сообщение
Не понял причем тут JS фреймворки.
Что можете предложить посмотреть?
__________________
полезное на axForum, github, vk, coub.
Старый 23.05.2017, 12:58   #20  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Что можете предложить посмотреть?
Из очередей: Rabbit, Redis, ActiveMQ
Для интеграции всего этого хозяйства с поддержкой BPM: Apache camel, Mule
Если сервисs не предполагают сложной логики, а так, чисто фасад к БД, то Go, NodeJS
Если сложное, то само собой C# / Java
НО сразу оговорюсь - этот зоопарк есть смысл разводить для больших проектов.
IMHO
Для акса 2012 и выше я бы выбрал сервисы на стороне аксы.
__________________
Sapere aude

Последний раз редактировалось Diman; 23.05.2017 в 13:02.
За это сообщение автора поблагодарили: mazzy (2), Vadik (1).
Теги
ax2009, ax2012, lamp, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Working with the OData Endpoint in Dynamics 365 for Operations Blog bot DAX Blogs 0 12.01.2017 17:11
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
axforum blogs: Трудности перехода: опыт переноса модификаций с AX 3.0 SP5 EE на AX 2009 SP1 RU5 EE Blog bot DAX Blogs 0 19.07.2011 03:14
DAX2009 workflows - отдельный сервер для каждого приложения nebraska DAX: Администрирование 1 01.10.2010 09:37
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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