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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.05.2011, 21:12   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
Dynamics AXBR: Performance em formulários
Источник: http://feedproxy.google.com/~r/daxbr/~3/xXKzU3SJbKo/
==============

Caros,
Estou em um projeto onde existem diversas filiais e os funcionários da matriz fazem tudo por uma determinada empresa, ou seja, usamos muitos formulários com o CrossCompany habilitado, também com métodos display e etc… tudo que torna um formulário demorado!

Tendo em vista este problema, comecei uma saga para tentar melhorar a performance e logo no inicio eu percebi que se eu limitasse o tamanho do grid exibido, o formulário melhorava drasticamente sua performance, ou seja, ao invés de deixar o grid com tamanho Automático, eu coloquei 350px e o que antes levava quase 15 segundos para abrir, passou a abrir em 9 segundos e as vezes 10, a melhoria foi notada muito facilmente!

Legal, até ai já tinha melhorado bastante, mas foi o suficiente para ver que o problema era em relação a “renderização” dos grids, e sendo assim, era ali que devia trabalhar!

Depois disso, estudando o comportamento das Grids, eu vi o método autoSizeColumns, que quando false, trazia uma performance melhor ainda, ao formulário que levava 15 segundos, passou a levar 4 ou 5 para abrir!

Logo em seguida, alguns usuários passaram a reclamar que quando tentavam abrir o formulário, o ax estava fechando, e percebi que devido as diferenças de instâncias (versão do ax e também do client) era gerado uma exceção, foi então que adicionei o código para verificar se o método estava implementado.

Em resumo, o que deve ser feito:
Formulário -> Grid -> Propriedade AutoDeclaration = yes;
Formulário -> Método init:

X++:
public void init()
{
    ;
    super();
//PICHLER - improve performance - BEGIN
    if ( new SysDictClass(classNum(FormGridControl)).hasObjectMethod(identifierStr(autoSizeColumns)) )
    {
        OverviewGrid.autoSizeColumns(false);
    }
//PICHLER - improve performance - END
}
Pronto, agora pode colocar isso em todos os formulários! Se alguém quiser fazer isso para todos, sobrescrevam o método init da classe SysSetupFormRun, e adicionem o código, mas ai lembrem-se que vocês nunca saberão o nome da grid, ou seja, algumas validações serão necessárias!

Abraço,
Pichler






Источник: http://feedproxy.google.com/~r/daxbr/~3/xXKzU3SJbKo/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.

Последний раз редактировалось Poleax; 10.05.2011 в 09:35.
Теги
syssetupformrun

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
Dynamics AXBR: Verificar saldo em aberto de um cliente Blog bot DAX Blogs 0 24.02.2011 03:19
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

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

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