Несколько советов разработчикам MS Dynamics NAV 2009 (RTC)

Здесь собраны несколько советов, которые пригодятся при разработке в NAV 2009. Прошу сильно не бить, если они покажутся смешными (кому как :)

Управление файлами на компьютере с запущенным RTC

В C/AL для работы с файлами имеются следующие команды: EXIST: EXISTS(<File_Name>); RENAME(<Old_File_Name>,<New_File_Name>); ERASE(<File_Name>); COPY(<From_File_Name>,<To_File_Name> ) . Но они работают только с классическим клиентом, на RTC эти операции выполняются на сервере приложений. Что же делать, если надо поработать с файлами на машине с запущенными RTC?

Предлагаю использовать автоматизацию:’Windows Script Host Object Model’.FileSystemObject.  При создании «Client side»-параметра, automation-сервер будет запущен на клиентской машине, а мы сможем использовать все его функции.
Примеры функций:

Функция на NAV C/AL Функция на automation-сервере
EXISTS(<File_Name>); <automationName>.FileExists(<File_Name>);
RENAME(<Old_File_Name>,<New_File_Name>); <automationName>.MoveFile(<Old_File_Name>,<New_File_Name>);
ERASE(<File_Name>); <automationName>.DeleteFile(File_Name>[, BOOL Force]);
COPY(<From_File_Name>,<To_File_Name> ) <automationName>.CopyFile(<From_File_Name>,<To_File_Name>);

Разные способы отображения полей типа Boolean (RTC)

Обычно логические поля выглядят как галочки, но можно придать им и другой вид – например, компбо-бокс «Да/Нет». Это можно сделать при помощи комментариев к триггеру OnDrillDown. Ниже пример такого использования на RTC: у первой переменной есть комментарии в триггере, вторая – стандартный вид.

Использование в RTC виртуальной таблицы 2000000022 «File»

Если вы уже используете эту виртуальную таблицу где-то на классическом клиенте и хотите перенести функциональность, надо знать некоторые особенности:

  • Виртуальная таблица покажет файлы и папки на самом сервере приложений (не на клиенте RTC), и они будут отличаться от работы ранее (в классическом клиенты показывались данные с клиентской машины)
  • При работе в RTC с таблицей File, не используйте поле Data. В классическом клиенте при наличии данных в этом поле ставится звездочка. RTC начинает читать данные из самого файла и нагружает процессор/и память тоже.

Спасибо!

Оригинал заметки можно прочесть здесь: «Few tips for NAV developers».

Автор:

В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.

Количество статей, опубликованных автором: 86.

Комментарии (3 комментария)

  1. Кудрет

    Привет, Андрей!
    Не очень люблю гуглить по вопросам NAV, горе специалистов в инете ни о чем развелось.
    Но, тут пришлось и ..наткнулся на твои статьи), очень помогли решить одну задачку в NAV 2009.
    Добавил ссылку в избранное, жду новых статей от тебя).
    Спасибо и Удачи в хороших делах!

Добавить комментарий