Отладка в Dynamics AX - PullRequest
       28

Отладка в Dynamics AX

5 голосов
/ 04 января 2010

Я сталкиваюсь с некоторыми проблемами во время обучения, так что я думаю, что, как только я играю с большими детьми, все становится хуже: предупреждения в динамике не такие точные и информативные, как у VS, нет подсказок при наведении мыши и исключения, чтобы показать мне, где именно я неправильно понял. Я просто слишком привык к Visual Studio, это intellisense и все инструменты (динамика довольно новая по сравнению с Visual Studio)

Больше, чем решение простых проблем с кодом, я хотел бы узнать, как решить возникающие проблемы, которые могут возникнуть в коде, написанном не мной, или что-нибудь еще, что я бы решил за 3 минуты в Visual Studio, а также советы о том, выжить в динамическом топоре без всех инструментов Visual Studio.

Ответы [ 4 ]

8 голосов
/ 05 января 2010

Редактор кода в Dynamics AX имеет некоторое значение intellisense, набирая имя таблицы или переменной класса, а затем. or :: выдаст вам список полей или методов, доступных для этого элемента. После того, как вы наберете (для запуска вызова метода, появится всплывающая подсказка с параметрами, доступными для этого метода. При запуске новой строки вы можете щелкнуть правой кнопкой мыши и перечислить таблицы, списки классов, типы списков и т. Д. Большинство этих команд также доступны через сочетания клавиш . Обратите внимание, что intellisense работает только в том случае, если весь код в методе вплоть до местоположения вашего курсора синтаксически правильный.

Убедитесь, что вы обновили перекрестную ссылку в своей среде разработки (Инструменты / Средства разработки / Перекрестная ссылка / Периодическая / Обновление). С обновленной перекрестной ссылкой вы можете щелкнуть правой кнопкой мыши любую таблицу, поле, класс, метод, расширенный тип данных или перечисление в AOT и выбрать Надстройки / Перекрестная ссылка / Используется, чтобы увидеть, где этот элемент используется в система.

Вы также можете использовать Инструменты / Средства разработки / Обозреватель кода для просмотра исходного кода приложения со всеми типами, переменными и методами, превращенными в гиперссылки, чтобы можно было щелкнуть, чтобы перейти прямо к определению этого элемента.

Другим полезным инструментом является дерево иерархии приложений, доступное либо в разделе «Инструменты / Инструменты разработки», либо в меню надстроек правой кнопкой мыши. Это покажет вам иерархию классов, так что вы можете легко увидеть, например, что SalesFormLetter является производным от FormLetter, который происходит от RunBaseBatch.

В редакторе вы можете выделить текст и щелкнуть правой кнопкой мыши на Свойства поиска / Методы или Определение поиска.

Если вы пытаетесь отследить, где в системе генерируется конкретное информационное сообщение, используйте две стратегии:

  1. Установить точку останова на первой строке метода Info.add (). Тогда, когда вы запускаете код, генерирующий сообщение, вы попадете в отладчик, как только инфолог генерироваться. Затем вы можете посмотреть на стек проследить в отладчике, чтобы увидеть, где этот код сгенерировал сообщение.

  2. Запустить Инструменты / Разработка инструменты / Метка / Редактор меток и поиск для текста сообщения. Выбрать идентификатор метки сообщения, затем нажмите Используется, чтобы увидеть, где это в системе используется сообщение.

4 голосов
/ 05 января 2010

Существует также http://www.axassist.com/, который расширяет intellisense и многие другие расширения

2 голосов
/ 27 октября 2016

То, что эти парни уже сказали, очень интересно и полезно .

Я бы хотел добавить, что в реальной жизни в AX вы, вероятно, работаете с несколькими контекстами. например Код выполняется на клиенте, код выполняется на сервере, код выполняется в p-коде и в IL, интеграции COM, корпоративный портал и т. Д.

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

Знание этого важно, потому что вам, возможно, придется разрешить отладку или дать разрешения в нескольких местах.

Примеры:

  • Windows AD отладка пользователей (добавьте себя)
  • Разрешить отладку на клиенте
  • Разрешить на сервере
  • Отключите IL, если вы хотите использовать MorphX, в противном случае присоедините процесс в VS.
  • Разрешить службе публикаций World Wide Web взаимодействовать с рабочим столом для EP.

И последнее: вы начинаете работать с топором прямо сейчас, возможно, вам нужно будет работать с AX7 (Dynamics 365 для операций). Эта версия системы работает только с visual studio . Это все еще x ++, но у вас есть много вещей, которые VS предоставляет вам.

0 голосов
/ 20 июля 2016

Взгляните на EditorScripts Class, в AX Editor вы можете использовать его, щелкнув правой кнопкой мыши и выбрав «Сценарии». Это своего рода интеллигентный смысл, который вы можете создать самостоятельно, например: вот мой встроенный комментарий всякий раз, когда я набираю «mycom» и нажимаю «tab»

public void template_flow_mycom(Editor editor)
    {
        xppSource   xppSource   = new xppSource(editor.columnNo());
        int         currentline = editor.currentLineNo();
        int         currentcol = editor.columnNo();

        Source      template = "//Partner comment "+date2str(today(),123,2,1,3,1,4, DateFlags::FormatAll )+" at "+time2str(timenow(), 1, 1)+" by MAX - Begin\n";
        template+=strRep(" ", currentcol)+ "\n";
        template+=strRep(" ", currentcol)+ "//Partner comment "+date2str(today(),123,2,1,3,1,4, DateFlags::FormatAll )+" at "+time2str(timenow(), 1, 1)+" by MAX - End\n";

        editor.insertLines(template);
        //move cursor to the empty line between the comments
        editor.gotoLine(currentline+2);
        editor.gotoCol(currentcol+4);
    }
...