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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2007, 08:29   #1  
Tarrash is offline
Tarrash
Участник
 
41 / 11 (1) +
Регистрация: 03.08.2005
xInfo::Directory DAX 4.0
Всем доброго времени суток!

Возникла проблема с шаблонами при переходе с тройки на четверку.

Дело в том, что в тройке метод xInfo::Directory() возвращает путь на системную
директорию (в нашем случае на приложение).

А в четверке, метод xInfo::Directory() возвращает путь на установленного клиента.

Поэтому, отчетность, перенесенная из тройки, не отрабатывает (из-за ошибочного пути)

Кто-нибудь знает, есть ли возможность решить проблему, без перелапачивания всего функционала по отчетности?
Старый 06.04.2007, 17:06   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Tarrash Посмотреть сообщение
Возникла проблема с шаблонами при переходе с тройки на четверку. Дело в том, что в тройке метод xInfo::Directory() возвращает путь на системную директорию (в нашем случае на приложение). А в четверке, метод xInfo::Directory() возвращает путь на установленного клиента. Поэтому, отчетность, перенесенная из тройки, не отрабатывает (из-за ошибочного пути). Кто-нибудь знает, есть ли возможность решить проблему, без перелапачивания всего функционала по отчетности?
Надо было использовать макросы! При наличии построенных перекрестных ссылок найти все вызовы xInfo::directory() и заменить их на макрос не составит большого труда. Затем создайте класс со статическим серверным методом-оберткой для xInfo::directory() и используйте его в макросе. Тогда, при условии, что в настройках AOS приложение указано через сетевую шару, доступную клиенту, можно будет использовать на клиенте возвращаемый этим методом-оберткой путь
X++:
// метод класса my_xInfo
static server str directory(DirectoryType _type)
{
    return xInfo::directory(_type);
}

// тестовый job
static void Job1(Args _args)
{
    DictEnum    dictEnum = new DictEnum(enumnum(DirectoryType));
    int         i;
    ;
    info('client calls:');
    for(i=0; i<dictEnum.values(); i++)
        info(strfmt(@"%1::%2 = '%3'",
            dictEnum.name(), dictEnum.index2Name(i),
            xInfo::directory(dictenum.index2Value(i))));
    info('server calls:');
    for(i=0; i<dictEnum.values(); i++)
        info(strfmt(@"%1::%2 = '%3'",
            dictEnum.name(), dictEnum.index2Name(i),
            my_xInfo::directory(dictenum.index2Value(i))));
}
Код:
client calls:
DirectoryType::Bin = 'c:\axapta\client\Bin\'
DirectoryType::Share = 'c:\axapta\client\appl\standard\'
DirectoryType::Config = 'c:\axapta\client\share\config\'
DirectoryType::Appl = 'c:\axapta\client\appl\standard\'
DirectoryType::DB = 'c:\axapta\client\appl\standard\db\'
DirectoryType::Temp = 'c:\axapta\client\appl\standard\tmp\'
DirectoryType::Include = 'c:\axapta\client\share\include\'
DirectoryType::Log = 'c:\axapta\client\Log\'
DirectoryType::Help = 'c:\axapta\client\Bin\help\'
server calls:
DirectoryType::Bin = 'C:\axapta\server\AX4\Bin\'
DirectoryType::Share = 'c:\axapta\app\appl\standard\'
DirectoryType::Config = 'c:\axapta\app\share\config\'
DirectoryType::Appl = 'c:\axapta\app\appl\standard\'
DirectoryType::DB = 'c:\axapta\app\appl\standard\db\'
DirectoryType::Temp = 'c:\axapta\app\appl\standard\tmp\'
DirectoryType::Include = 'c:\axapta\app\share\include\'
DirectoryType::Log = 'C:\axapta\server\AX4\Log\'
DirectoryType::Help = 'C:\axapta\server\AX4\Bin\help\'

Последний раз редактировалось gl00mie; 06.04.2007 в 17:10.
Старый 07.04.2007, 23:08   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А я бы посоветовал в классе Global нарисовать такой вот метод

static server Filename directoryOnServer(DirectoryType _directoryType)
{
;

return xInfo::directory(_directoryType);

}

И пользоваться directoryOnServer(...) вместо xInfo::directory(...).

Чтобы целый класс не городить ради такой мелочи.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: aidsua (1).
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Организация доступа внешних веб-пользователей к DAX 4.0 alex55 DAX: Администрирование 1 07.06.2009 17:48
dax-lessons: Generate XML Documentation Files for a project - DAX 2009 Blog bot DAX Blogs 0 08.08.2008 19:06
dax-lessons: Document Handling in AX - setup and Example Blog bot DAX Blogs 0 27.08.2007 23:00
dax-lessons: Active directory in Axapta Blog bot DAX Blogs 0 27.08.2007 23:00
Kashperuk Ivan: AxPaint - make your DAX look cool :) Blog bot DAX Blogs 0 26.06.2007 21:00

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

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

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