08.04.2012, 01:18 | #1 |
Участник
|
Доступ в Аксапту через Web без портала
Добрый день!
Add-in в Visual Studio 2008 позволяет создавать аксаптоподобные проекты, внутри которых есть возможность создавать controls и web-parts, которые потом можно разместить на портале Аксапты. Либо импортировать из портала объекты, изменить их и снова залить на портал. Все это очень хорошо, кроме того, что мы привязаны к SharePoint и к Порталу. Если взять и создать проект asp.net обычного типа, то панель объектов Аксапты останется и можно сделать следующее: создать AxDataSource, размещенный внутри *.aspx файла и вывести данные либо в стандартный грид, либо в Ax-грид. Далее, если запустить на выполнение описанную страницу с гридом ИЗ VISUAL STUDIO, данные из Аксапты, соответствующие DataSet в Аксапте и служащие источником данных для DataSource в Visual Studio, вполне нормально отобразятся в браузере. Если же данный проект разместить на IIS 7.0, то возникнет ошибка открытия сессии в бизнесс-коннекторе Аксапты. Если же посмотреть трассировку, то видно, что по мере выполнения, программа обращается к библиотеке SharePoint. Это наводит на грустные мысли, что система безопасности бизнес-коннектора не может работать не через SharePoint. Так ли это? Оно понятно, что, если бы, без особых усилий, создав контрол на страничке asn.net, мы бы получали свободный доступ в Аксапту, это было бы просто дырой в безопасности системы, но .net вполне умеет работать с виндовыми пользователями, вроде бы... Может быть, если доступ в Аксапту с простых страничек возможен, кто-нибудь поделится правильными настройками IIS 7.0 для того, чтобы странички отображались с веб-сервера? |
|
08.04.2012, 13:51 | #2 |
Участник
|
Делали порталы на АХ 3 и 4 без шарепоинта, только на асп.Нет
На ах2009 все тоже будет работать без проблем. Но какие-то готовые контрольки типа грида-датасорса АХ могут не работать, пишутся свои под это дело. Так что все реализуемо, если есть потребность |
|
|
За это сообщение автора поблагодарили: Narayana (1). |
10.04.2012, 19:34 | #3 |
Участник
|
Аксаптовский проект в Visual Studio и есть обычный.net 3.5 website project, чей файл web.config расширен ссылками на ассамблеи и выражения Microsoft.Dynamics.*
На странице AxWebPartPage.aspx вы можете установить ManagedContentItem для уже находящейся там AxUserControlWebPart и нажать на кнопочку F5 для запуска/отладки сайта. При этом предварительно в проект из Аксапты нужно добавить вызываемый UserControl. <dynamics:AxUserControlWebPart ID="Customers" ManagedContentItem="Tutorial_Customers" runat="server" /> AX .Net Connector будет имперсонализировать пользователя Windows. |
|
|
За это сообщение автора поблагодарили: Narayana (1). |
11.04.2012, 11:44 | #4 |
Участник
|
Цитата:
Сообщение от nikos2001
Аксаптовский проект в Visual Studio и есть обычный.net 3.5 website project, чей файл web.config расширен ссылками на ассамблеи и выражения Microsoft.Dynamics.*
На странице AxWebPartPage.aspx вы можете установить ManagedContentItem для уже находящейся там AxUserControlWebPart и нажать на кнопочку F5 для запуска/отладки сайта. При этом предварительно в проект из Аксапты нужно добавить вызываемый UserControl. <dynamics:AxUserControlWebPart ID="Customers" ManagedContentItem="Tutorial_Customers" runat="server" /> AX .Net Connector будет имперсонализировать пользователя Windows. Щас прям попробую! |
|
12.04.2012, 00:24 | #5 |
Участник
|
Цитата:
Сообщение от nikos2001
Аксаптовский проект в Visual Studio и есть обычный.net 3.5 website project, чей файл web.config расширен ссылками на ассамблеи и выражения Microsoft.Dynamics.*
На странице AxWebPartPage.aspx вы можете установить ManagedContentItem для уже находящейся там AxUserControlWebPart и нажать на кнопочку F5 для запуска/отладки сайта. При этом предварительно в проект из Аксапты нужно добавить вызываемый UserControl. <dynamics:AxUserControlWebPart ID="Customers" ManagedContentItem="Tutorial_Customers" runat="server" /> AX .Net Connector будет имперсонализировать пользователя Windows. Спасибо большое, все получилось! Правда, не сразу. Есть еще один тонкий момент... самописное asp.net приложение должно находиться в одном пуле приложений с порталом Аксапты на IIS. |
|
12.04.2012, 08:29 | #6 |
Участник
|
На самом деле, как оказалось, все проще.
Создаем пустой сайт в IIS 7.0 В Autentication для сайта выбираем или Basic Autentication, или Windows Autentication. В Basic settings Устанавливает для сайта пул приложения тот же, что и для портала Аксапты. Создаем обычный asp.net проект. Из панели инструментов Аксатпы перетаскиваем на Default.aspx AxDataSource и выбираем для него DataSet из Аксапты. Из панели инструментов Аксапты перетаскиваем на Default.aspx AxGridView и устанавливаем в нем ранее оговоренный DataSet и DataMember. Делаем привязку сайта к доменному имени. ...и все работает и из локальной сети, и из интернета. |
|
22.07.2013, 20:00 | #7 |
Участник
|
Как при этом достучаться до текущей сессии(чтобы вызывать методы AX классов)?
То есть, судя по мануалам, чтобы вызывать методы классов, нужно получить тек сессию след образом : X++: private ISession AxSession { get { AxBaseWebPart webpart = AxBaseWebPart.GetWebpart(this); return webpart == null ? null : webpart.Session; } }; Вы,может быть, используете "Dynamics Ax webpart page" как шаблон для страниц сайта? |
|
22.07.2013, 20:41 | #8 |
Участник
|
Цитата:
Сообщение от IKA
Как при этом достучаться до текущей сессии(чтобы вызывать методы AX классов)?
То есть, судя по мануалам, чтобы вызывать методы классов, нужно получить тек сессию след образом : X++: private ISession AxSession { get { AxBaseWebPart webpart = AxBaseWebPart.GetWebpart(this); return webpart == null ? null : webpart.Session; } }; Вы,может быть, используете "Dynamics Ax webpart page" как шаблон для страниц сайта? Перестал экспериментировать, потому что понял, что делать сайты с прямым доступом в АОС или базу Аксапты, это не очень хорошая идея. Все разумное, что можно сделать напрямую в Аксапте через веб, более-менее охвачено в портале. Что не охвачено, довольно просто дописать в том же портале. А вот делать интернет-магазин или сайт общего пользования, который просто отображает данные из Аксапты, это не есть гуд. Сейчас думаю, что самое лучшее, это все-таки синхронизация отдельного решения интернет-магазина с Аксаптой. Если у вас даже маленькая задача с очень узким функционалом, то сдается мне, что лучше сделать для него свою базу, написать странички стандартными и простыми ASP.NET приемами, а потом сделать простую отдельную утилитку, которая таскает данные из одной базы в другую. Может быть, даже через АОС. Но, в любом случае, если вспомню что-то про сессии, напишу. Как-то там все не очень сложно оказалось. Мало того, если вы добавляете на страницу элементы, которые изначально есть на шаблонах AxWebPartPage, то сессия открывается автоматически. Или, может быть, открывается, когда вы добавляете Аксаптовский ДатаСорс... не помню... Смешное в другом месте. Если вы страницу обновляете, то добавляются новые сессии, а старые не закрываются. Кстати, в Аксапте есть форма текущих пользователей, - там можно посмотреть открытые сессии. При открытии Аксаптовской веб-страницы создается один обычный пользователь и несколько веб-пользователей. Думаю, лучше поэкспериментировать... |
|
23.07.2013, 13:09 | #9 |
Участник
|
Интересно, какой метод вы придумали. Я, вроде, нашла сегодня работающий способ.
Если кому понадобится: X++: myDS.GetDataSet().DataSetRun.AxaptaAdapter.CallStaticClassMethod() ; Описаных лишних сессий при обновлении страниц пока не наблюдаю, но спасибо за предупреждение. Последний раз редактировалось IKA; 23.07.2013 в 13:13. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Доступ к Outlook из web - портала | 6 | |||
Лучшая ОС для Web-портала | 1 | |||
Просмотр отчетов Axapta через WEB | 17 | |||
WEB-Доступ | 8 | |||
Введение в Аксапту | 0 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|