21.01.2009, 15:59 | #1 |
Участник
|
DAX 4.0: infolog & workspaceNum
Для начала небольшая симуляция в качестве разминки: запускаем клиент Dynamics AX 4.0 и открываем из него дополнительно 2 рабочие области.
Закрываем рабочую область с номером 2 - таким образом остаются 2 окна: 'Microsoft Dynamics AX - 1...' и 'Microsoft Dynamics AX - 3...' (с 'дыркой' в последовательности). Не запуская приведенный ниже job попробуйте ответить что будет выведено в infolog: количество строк и текст? X++: static void jbEnumerateWorkspace(Args _args) { HWND hWndWorkspace ; int workspaceNum ; #define.WorkspaceCount(3) ; try { for( workspaceNum =1 ; workspaceNum <=#WorkspaceCount; workspaceNum++ ) { info( strfmt( "Workspace num: %1", workspaceNum ) ) ; hWndWorkspace = infolog.hWnd( workspaceNum ) ; info( hWndWorkspace ? strfmt( "Workspace HWND: %1", hWndWorkspace) : "Workspace HWND: oops :(" ) ; } } catch { info( strfmt( "catched in %1", funcname() ) ) ; } info( 'finished' ) ; } Тестировалось на 2 приложениях: kernel version 4.0.2163.0 и kernel version 4.0.2501.116 Результат, который был получен в infolog на этих релизах: Цитата:
Workspace num: 1
Workspace HWND: 1234567 Workspace num: 2 С 'наскоку' не обнаружил в DAX 4.0 штатной функциональности позволяющей проверить валидность workspaceNum или получить их текущий набор (функция infolog.getWorkspaceList() возвращает контейнер с HWND открытых рабочих областей) P.S. Склонен отнести это bug'ам если приведенный сценарий воспроизводится и на более поздних версиях kernel Dynamics Ax 4.0. |
|
|
За это сообщение автора поблагодарили: kashperuk (3). |
Теги |
infolog, hwnd, ax4.0 |
|
|