AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen Alle Foren als gelesen markieren

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 10.09.2007, 13:22   #21  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
rusalaudinov, посмотрите функциональность Data Crawler. Я не уверен, но мне кажется, что вы спрашиваете про что-то подобное.

Там есть форма, которая позволяет запустить на АОСе функциональность индексирования таблиц (в 3.0 для поиска на портале, в 4.0 — для глобального поиска в GUI). При этом клиент продолжает работать, вы можете делать в нем что угодно (см. класс SysDataSearchDaemon). Есть возможность остановить фоновую задачу на АОСе (похоже, через таблицу идет коммуникация).

В 3.0 в двухзвенке это не работало (запускалось на клиенте, не в отдельном потоке). Работает только в тонком (трехзвенном) клиенте. Это на всякий случай.
__________________
С уважением,
glibs®
Alt 10.09.2007, 13:29   #22  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
glibs, я пытался давно работать в двухзвенке - ничего не получилось - остальное собрано с аксфорума

rusalaudinov, можно еще использовать таймер (см форму поиска по АОТу, База знаний ERP : Axapta / Таймер Без Формы )
Alt 11.09.2007, 06:37   #23  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
я щас спрошу, и потом пойду в поиск. может пока ищу вы уже и ответите. короче у меня есть hWnd, который я передал в класс. как по нему получить форму, чтобы можно было обратиться к методу формы?
Alt 11.09.2007, 07:32   #24  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
по ходу не умею я пользоваться поиском
Alt 11.09.2007, 07:52   #25  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
Как вообще передать в класс объект формы. В частности нужно передать дерево
Alt 11.09.2007, 08:25   #26  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
Вы в Thread хотите передать?
__________________
Axapta v.3.0 sp5 kr2
Alt 11.09.2007, 08:37   #27  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
да. в поток
Alt 12.09.2007, 05:23   #28  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
эээ...ХЕЛП
Alt 12.09.2007, 12:13   #29  
gaenar ist offline
gaenar
Участник
 
151 / 63 (3) ++++
Registriert seit: 26.03.2005
Кажется, в стандартной оборотно-сальдовой ведомости (RLedgerSheetReport, метод fetchRowIntoBuff_Next) так и делается - вычитывается только та часть, которая отображается. Можно глянуть как сделано, но там контрол другой, может и не подойдёт та логика.
__________________
Умные тоже наступают на грабли, но только для того, чтобы поднять их с земли не нагибаясь.
Alt 13.09.2007, 05:00   #30  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
В общем сейчас попробую точно обрисовать что мне нужно, а то мне кажется именно поэтому я не получаю ответа.

у нас есть форма, в которой есть дерево. Создан новый класс, в котором создан поток. Задача передать дерево в поток, чтобы оно загружалось там и не мешало работе формы. я научился передавать в поток hWnd окна. Далее зная его и к какой форме он относится я смогу вызвать метод, который вернет мне дерево. Ключевым моментом в этой задаче является:"Можно ли, и если можно, то как по hWnd окна найти саму форму, чтобы обратиться к ней из потока?"
Alt 13.09.2007, 10:09   #31  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Zitat:
Zitat von rusalaudinov Beitrag anzeigen
"Можно ли, и если можно, то как по hWnd окна найти саму форму, чтобы обратиться к ней из потока?"
Нельзя.
hWnd - это просто хэндл окна.
К форме он отношения никакого не имеет.

Но можно хранить Map ссылок (HWND -> FormRun), и потом получить его по хвнд.
Alt 13.09.2007, 10:21   #32  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Я думаю, стоит попробовать организовать некоторую очередь в гуи потоке, которую сканировать по таймеру и модифицировать тривью по командам из жтой очереди. Правда, не знаю, чо надо сделать, чтоб туда из другого потока запихивать.

Насколько я знаю, практически везде гуи классы не поддерживают многопоточность (поправьте, если не так) И странно ожидать этого от аксапты.
Alt 13.09.2007, 12:51   #33  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
эээ...щас побеседовал с коллегой примерно 50% вещей встали на свои места в голове.
kashperuk, а как нам тогда можно Map передать в поток? Собственно проблема в том, что в поток можно передать только простые типа данных, потому мы и стали заморачиваться с hWnd. А вот именно как передать, либо найти, увидеть из потока этот Map? Или может есть простые способы передать дерево в поток, да я не знаю?
Alt 13.09.2007, 12:57   #34  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
Вот здесь Визульное сравнение различных алгоритмов сортировки есть пример обновления из трида данных на форме.
На четверке не проверял, но на тройке (в том числе SP5+KR2) все это хозяйство работает не очень устойчиво
__________________
Axapta v.3.0 sp5 kr2
Alt 13.09.2007, 16:14   #35  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А нельзя вашу задачу решить как-то по-другому? Например, рассчитать что-то в классе, и потом заполнить элемент управления в форме.
__________________
С уважением,
glibs®
Alt 17.09.2007, 06:15   #36  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
я не могу рассчитать в классе. проблема у меня в том, что когда раскрываешь узел типа Classes проходит много секунд пока он подгружается. нужно это устранить. можно было бы все(что критично долго грузится) загрузать в самом начале, но тогда форма будет висеть пока загрузится всё-че надо. поэтому пришло в голову прогружать дерево в отдельном потоке, а форма тем временем будет в отличном состоянии и готова к работе в любую секунду
Alt 17.09.2007, 10:21   #37  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
подгружай по таймеру можно посмотреть как ищет поиск по АОТу или как в sidax устроена фоновая загрузка главного меню.
Alt 21.09.2007, 01:17   #38  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А обязательно вашу задачу решать через форму?

Например, такой джобик закеширует объекты АОТа из узла классов.

#AOT
static void glibs()
{
TreeNode treeNode;
TreeNodeIterator treeNodeIterator;
;

treeNode = TreeNode::findNode(#ClassesPath);
treeNodeIterator = treeNode.AOTiterator();
treeNode = treeNodeIterator.next();
while (treeNode)
{
treeNode.AOTload();
treeNode = treeNodeIterator.next();
}

}

Для других узлов его переделать несложно.

Только он память жрет прилично. Возможно, вам будет достаточно прогнать его без вызова treeNode.AOTload().

Я вот что заметил. После запуска джоба, остановки клиента и АОСа и последующего их запуска узел АОТа открывается быстро.

Посему я не уверен, но, возможно, при открытии узла АОТа анализируется не кэш АОСа, а читается какой-нибудь axapd.aoi (или что-то в этом роде) с диска. А после перезапуска АОСа файлы приложения живут в файловом кэше, и поэтому узел уже быстро открывается. Иначе пока я не знаю, как объяснить этот эффект.

Но джоб и в этом случае должен обеспечить кэширование файлов приложения.

Попробую проверить завтра. А то м.б. джоб нужно запускать время от времени в процессе работы, т.к. файловый кэш имеет свойство освобождаться.

А вообще, по-моему, надуманная проблема насчет того, что узел открывается неприемлемо долго. Это один раз происходит. После перезапуска сервера. И не так уж долго и терпеть приходится.
__________________
С уважением,
glibs®
Alt 21.09.2007, 12:24   #39  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Проверил. На свеже загруженной машине запустил АОС, запустил клиента, запустил джоб аккуратно (без treeNode.AOTload()). В результате классы открылись очень быстро. Попробовал открыть таблицы — тормозили. Так что вот.

Гипотезу насчет файлового кэша м.б. тоже проверю как-нибудь.
__________________
С уважением,
glibs®
Alt 26.09.2007, 14:58   #40  
rusalaudinov ist offline
rusalaudinov
Участник
 
91 / 36 (2) +++
Registriert seit: 24.05.2007
уффф... В общем так. Нашел файлы, которые создает аксапта при закрывании её, о которых в начале этой ветки вел речь Mazzy. оказывается, что у меня на четвертой аксапте расширение у этих файлов не aoc a auc. ладно. создал файлик в котором загружено все, что надо, сохранил. переименовал как master.auc и куда я только его не пихал в надежде что аксапта считает его и будет быстро загружать мои узлы дерева, ничего не вышло, аксапта не загружала и не читала. У кого есть идеи куда еще его подпихнуть и как назвать. чтоб сразу загрузился кеш...WELCOME

Дальше коллега подсказал мне попробовать воспользоваться GlobalCache. сегодня весь день им "пользовался". в итоге мне удалось передать дерево в класс, там его раскрыть и потом открывать быстро уже на форме, НО сростить это все с работой в потоке неполучилось. в итоге без потока оно всё работает, как только вызываем метод в отдельном потоке в инфолог уже не получает дерево и все усилия напрасны.....ЧЕРТ
Stichworte
aoc, aot, как правильно, кэширование, тормоза

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Задача: запретить удалять строки разнесённых журналов. jeky DAX: Программирование 12 28.01.2009 22:22
Тормоза после оптимизации базы Alenka DAX: Администрирование 5 11.04.2008 19:37
Казалось бы, простая задача... konfet DAX: Программирование 5 05.04.2007 16:58
Задача оптимизации загрузки производственых мощностей SevA DAX: Программирование 23 01.11.2004 18:12
Дополнительные модули для задач оптимизации. NJD DAX: Прочие вопросы 1 26.10.2003 19:45
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 21:57 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.