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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2014, 13:22   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от CheshireCatЭ Посмотреть сообщение
X++:
public boolean validate()
{
   boolean ret = true;
    ;
     if ( !folderPath || !WinApi::fileExists2(folderPath + #DBFName))
        ret = checkFailed(strFmt("Файл не найден по пути: %1",folderPath));

    return ret;
}
У Вас не очевидное сообщение об ошибке. В данном случае не понятно, файл не найден или не указан путь доступа. Разделите проверку на две части

Кроме того, не корректно проверять одно, а сообщать о другом. Имею в виду, что ищете-то Вы файл, а сообщаете о пути доступа. Может, проблема именно в "склеивании"?

X++:
public boolean validate()
{
   boolean ret = true;
    ;
     if ( ret && !folderPath)
        ret = checkFailed('Не указан путь доступа!');

     if ( ret && !WinApi::fileExists2(folderPath + #DBFName))
        ret = checkFailed(strFmt('Не найден файл \"%1\"', folderPath + #DBFName));

    return ret;
}
Далее немного "теории". Возможно, Вы все это знаете, но, мало ли...

Судя по постановке вопроса Вы работаете в 3-х уровневой конфигурации: База данных - AOS - клиент

AOS, как и клиент - это приложение. Физически, они могут запускаться как на одном компьютере, так и на разных. Именно AOS подразумевается под термином "сервер", когда Вас спрашивают где именно запускается тот или иной класс. Это НЕ база данных. Это отдельное приложение, работающее как сервис Windows.

Так вот, как правило, запуск в пакетном режиме - это всегда запуск "на сервере". В данном случае, во-первых, на том компьютере, где у Вас установлен AOS, а, во-вторых, под учетной записью того пользователя, от имени которого запущен сервис AOS.

Это значит, что, во-первых, Вам надо проверить "видимость" нужной Вам папки со стороны того компьютера, на котором установлен AOS. Например, если Вы указали путь "C:\MyFolder", то на компьютере, где установлен AOS такой папки может просто не быть! Ведь клиентский компьютер при запуске со стороны сервера оказывается физически другим компьютером и путь надо указывать как к сетевому ресурсу.

А, во-вторых, имеет ли права доступа к нужной папке и файлу тот пользователь, от имени которого запущен сервис AOS? Речь идет именно о пользователе Windows, а не о пользователе Axapta. Вы же ищете ресурс вне среды Axapta, соответственно и идентификация "внешняя" (по отношению к Axapta)

Свойство RunOn = "Called from" означает, что данный класс будет запущен там же, где был запущен тот класс из которого его вызвали. Если вызвавший класс запущен на клиенте, то и данный класс будет запущен на клиенте. Если вызвавший класс запущен на сервер, то и данный класс будет запущен на сервере.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Player1 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: WinAPI Blog bot DAX Blogs 0 04.07.2011 12:11
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 1 08.10.2009 17:36
PatrickChua: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 04.05.2009 14:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 31.03.2009 06:06

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

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

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