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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.09.2012, 14:49   #1  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
EP: как прочитать данные из IISRequest
DAX 4.0

1.
Есть объект IISRequest - как я понимаю данные запроса к странице
есть метод binaryRead

как эти данные обработать в аксапте
в частности интересует нужно прочитать данные XML которые посылаются POST запросом.

2. Написал небольшой класс к которому идет ссылка по WEB меню action
X++:
static void main(Args _args)
{
    IISRequest    req;
    IISResponse   res;
    ;
    res = WebSession().response();
    res.contentType("text/html ");
    res.writeTxt(strfmt("<HTML><HEAD></HEAD><BODY><H1>НЕLLO FROM AX,%1</H1></BODY></HTML>",curuserid()));
    res.end();
}
все нормально выходит чистая HTML страница(без меню), но такое ощущение что все таки что то axapta пытается вставить, как это прервать?
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 10.09.2012, 09:30   #2  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Прочитал данные таким образом
X++:
    BinData     binData;
    COMVariant  l,buf;
    IISRequest  request;
    XMLDocument xmlDocument;
    str         s;
    XMLElement  xmlElement;
    int         i;
    XMLElement  xmlValue;
    DictClass   dictClass;
    ;
    if (!values)
        values = new List(Types::String);
    request = new IISRequest();
    l = new COMVariant();
    buf = new COMVariant();
    l.long(request.totalBytes());
    buf = request.binaryRead(l);
    binData = new BinData();
    binData.setVariant(buf);
    xmlDocument = new XMLDocument();
    xmlDocument.loadXml(binData.getStrData());
    if (xmlDocument.getElementsByTagName("input").length() > 1)
    {
        this.addError("Неправильный запрос, количество элементов input > 1");
        return;
    }
    xmlElement = xmlDocument.getElementsByTagName("input").item(0);
    callerId = xmlElement.getAttribute("callerId");
    axCallMethod = xmlElement.getAttribute("axCallMethod");
    controlType = xmlElement.getAttribute("controlType");
    inputType = xmlElement.getAttribute("type");
    for (i=0;i<xmlElement.childNodes().length();i++)
    {
        xmlValue = xmlElement.childNodes().item(i);
        values.addEnd(xmlValue.innerText());
    }
Хотелось бы увеличить производительность страницы, можно ли каким то образом отключить все то что выводит sharepoint кроме самой web части с webletом?
нужно для ajax post запросов с XML данными и ответом, просто веб-служба в этом отношении очень неудобна
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 10.09.2012, 12:30   #3  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от Murlin Посмотреть сообщение
Хотелось бы увеличить производительность страницы, можно ли каким то образом отключить все то что выводит sharepoint кроме самой web части с webletом?
Попробуйте добавить в url параметр NONAV=1
В AX 2009 у urlMenuItem есть свойство RemoveNavigation, если его установить в true, параметр NONAV=1 добавляется в url автоматом.
За это сообщение автора поблагодарили: sukhanchik (2), Murlin (1).
Старый 11.09.2012, 13:33   #4  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от vallys Посмотреть сообщение
Попробуйте добавить в url параметр NONAV=1
В AX 2009 у urlMenuItem есть свойство RemoveNavigation, если его установить в true, параметр NONAV=1 добавляется в url автоматом.
Не получилось, зато получилось переписать downloadDocument.aspx создав новый aspx и подсунув его в эту же директорию
сооовсем чуть чуть его изменив
X++:
<%@ Page Language="C#"%>
<%@ Assembly Name="Microsoft.Dynamics.BusinessConnectorNet, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Assembly Name="Microsoft.Dynamics.WebParts, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Import Namespace="Microsoft.Dynamics.BusinessConnectorNet" %>
<%@ Import Namespace="Microsoft.Dynamics.WebParts" %>
<script runat="server">
  void Page_Load(object sender, EventArgs e)
  {
    ISession session = null;
    try
    {
        session = SessionFactory.CreateInstance(HttpContext.Current);
        if (session != null)
        {
            session.InitWeb(HttpContext.Current, Page.IsPostBack);
            string axaptaElement = "<!--AXAPTA TYPE=\"EPAjaxService\" WebletItemName=\"EPAjaxService\"  -->";
            using (IWebPortalExecutionEngine engine = WebPortalExecutionEngineFactory.CreateInstance(session))
            {
                // EPDocuGetWebLet writes directly to the output stream
                engine.RunWebletItem(axaptaElement, "", "", "", this.ClientID);
            }
            Response.Flush();
        }
    }
    catch (Exception ex)
    {
        Response.Clear();
        Response.AddHeader("content-type", "application/xml; charset=utf-8");
        Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        Response.Write("<error id=\"1\">" + ex.Message + ex.StackTrace + "</error>");                
    }
    finally
    {
        if (session != null)
        {
          session.Release(HttpContext.Current);
        }
    }
  }
</script>
Теперь у меня готовая ajax служба без всяких web служб
я доволен :-D Запрос в XMLHtttpRequest отправляю прямо на страницу aspx
получается довольно быстро, вот только баааальшая заморочка была написать javascript с обработкой полученного ответа сервера и подменой-изменение html контролов
зато теперь у меня данные в форме клиентов для адреса подтягиваются из кладра аксапты
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Solutions Monkey: Microsoft Dynamics AX 2012 EP - Admin Enhancements Blog bot DAX Blogs 0 29.09.2011 18:11
Solutions Monkey: Microsoft Dynamics AX 2012 EP Developer Enhancements Blog bot DAX Blogs 0 22.09.2011 00:11
Solutions Monkey: Integrating EP Web Parts to non-EP SharePoint sites Blog bot DAX Blogs 0 04.04.2009 03:19
Solutions Monkey: Deploying Ax 2009 SP1 EP Blog bot DAX Blogs 0 05.02.2009 07:08
Solutions Monkey: EP SSL ( https) Setup Blog bot DAX Blogs 0 23.10.2008 12:05

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:52.