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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.02.2012, 16:13   #1  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 513 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
CLR в пакетной обработке
Добрый день,

Борюсь уже второй день с попытками заставить работать пакетный класс. На клиенте работает, на сервере нет.

Код:
Error executing code: CLRObject object not initialised.
Есть ли какие гуманные способы обойти эту неприятную особенность? Хочет избежать запуск АОСов с ключем.

X++:
    System.IO.DirectoryInfo                     dirInfo;
    System.Type                                 arrayType;
    System.Array                                array;
    System.IO.FileInfo                          fileInfo;
    counter                                     filesCnt;
    int                                         i;

    InteropPermission                           interopPerm;
    FileIOPermission                            filePerm;
    System.Exception                            clrException;
;
    interopPerm = new InteropPermission(InteropKind::ClrInterop);
    interopPerm.assert();

    dirInfo     = new System.IO.DirectoryInfo(_fromFolder);
    arrayType   = System.Type::GetType("System.IO.FileInfo");
    array       = System.Array::CreateInstance(arrayType, 1);
    array       = dirInfo.GetFiles();
    filesCnt    = array.get_Length();

    for (i = 0; i < filesCnt; i++)
    {
        fileInfo        = array.GetValue(i);
        fileName        = fileInfo.get_FullName();
        info(fileName);
    }
Эксепшн происходит в методе array.GetValue(i);

AX 2009 SP1 RU7
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 29.02.2012, 16:36   #2  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 423 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Я написал несколько иначе - все работает.

Разница в инициализации CLR объектов - сравните, может быть натолкнет на мысль.

Думаю, суть статичных методов dev_netInt и dev_netStr - будет понятна (это у меня методы класса global)...

X++:
static server container serverFileList(str _filePathServer, str _fileMask = '*.*')
{
    System.IO.DirectoryInfo directoryInfo;
    System.IO.FileInfo[]    fileInfoArray;
    System.IO.FileInfo      fileInfo;

    container               ret;
    int                     i;
    ;
    new InteropPermission(InteropKind::ClrInterop).assert();

    try
    {
        directoryInfo = new System.IO.DirectoryInfo(_filePathServer);

        fileInfoArray = directoryInfo.GetFiles(_fileMask);

        for (i = 0; i < dev_netInt(fileInfoArray.get_Length()); i++)
        {
            fileInfo = fileInfoArray.GetValue(i);
            ret += dev_netStr(fileInfo.get_Name());
        }

        return ret;
    }
    catch (Exception::CLRError)
    {
        throw error(AifUtil::getClrErrorMessage() );
    }
}
За это сообщение автора поблагодарили: Link (4).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Некорректное отражение map при пакетной обработке в Ax2009, и налоги в строках накладных/фактур Maximin DAX: Программирование 22 21.12.2011 16:03
Откуда подтягиваются номерные серии при пакетной обработке??? Che DAX: Программирование 4 17.02.2011 09:39
Как автоматически отключать связи в файле Excel при пакетной обработке? decoder DAX: Программирование 7 03.06.2009 19:19
Не обновляется класс при пакетной обработке Eldar9x DAX: Программирование 7 28.01.2009 08:23
Еще 1 простой вопрос по пакетной обработке Smith DAX: Функционал 1 26.10.2004 17:55

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

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

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