Для тех, кто предпочитает чтению смотреть и слушать – видео, в котором всё то же самое и чуть больше (25 минут):
Продолжаем обучать Ивана Ивановича Воякс (он же Woyax) особенностям работы программистом MS Dynamics AX 2012 (и любые версии, включая D365 FO).
Начало тут:
Эта часть посвящена трём важным и интересным вещам:
Научили Воякс путешествовать по системе и запрашивать необходимые ему для выполнения задач или для анализа объекты
Научили Воякс пользоваться перекрёстными ссылками
Сформировали концепцию того, как и в каком виде Воякс будет предлагать модифицировать код и объекты системы
Первые два пункта должны быть особенно интересны консультантам и тем, кто работает в поддержке по MS Dynamics AX.
В первой части мы продемонстрировали, как Воякс оказывает консультации по работе какой-либо операции или алгоритма.
Консультант указывает название операции или путь к пункту меню и задаёт один или несколько вопросов. Воякс определяет по названию системный объект, анализирует код и отвечает на вопросы.
Теперь форма для консультаций доступна по горячим клавишам из любой формы или диалогового окна в системе (в том числе из диалоговых окон для SysOperation). Из любого места в системе: горячие клавиши – ваш вопрос по функционалу – Воякс определяет объект, анализирует код и отвечает на ваш вопрос.
Запросы дополнительных объектов
Ранее Воякс анализировал только тот объект (форму или класс), который указан в форме Консультация, но для полного ответа на вопрос иногда могут понадобиться другие объекты системы, вызываемые этим объектом. В «Расширенном» режиме консультации Воякс запросит дополнительные объекты системы, если посчитает, что они необходимы для более полного ответа на вопрос.
Так в нашем примере отвечая на вопрос об активности кнопки на форме LedgerJournalTable, Воякс принял решение, что необходимо ещё дополнительно запросить и проанализировать класс управления этой формой LedgerJournalFormTable. В ручном режиме консультант или пользователь нажимает ещё раз «Вопрос –> Ответ» - этим действием он разрешает и предоставляет Воякс запрашиваемый объект.
После анализа класса LedgerJournalFormTable Воякс решил, что неплохо бы ещё глянуть таблицу LedgerJournalTable. И в результате: «На основе анализа таблицы LedgerJournalTable и ранее предоставленных классов и формы можно дать окончательный ответ на вопроc…», а также «Исходя из предоставленного кода, дополнительных объектов для анализа не требуется. Ответ сформулирован полностью.»
Можно использовать автоматический режим расширенной консультации, когда Воякс сам общается с системой.
Мы ограничиваем свободное общение максимальным количеством запросов от Воякс и осуществляем контроль за разрешениями на предоставление объектов. Таким образом, консультация выглядит так: задаем вопрос, Воякс общается с системой, запрашивая у неё необходимое количество объектов для точного и полного ответа, мы получаем итог этого общения и результат анализа.
Перекрёстные ссылки
Если в момент вызова формы Консультация мы стоим на элементе формы, под которым скрывается реальное поле таблицы, то у нас появляется дополнительная опция в консультациях: Информация о поле.
Воякс с помощью перекрёстных ссылок перебирает объекты, использующие это поле, анализирует и составляет итоговое описание с учетом всех объектов. По пунктам выделяет каждое использование.
На любом поле на любой форме (настройки, справочники, журналы, операции и т.д.) можно одной кнопкой получить полное описание всего, что происходит с этим полем в системе, для чего, где и как оно используется.
Больше интересных примеров в видео.
Предложение по классу
От консультаций вернёмся к разработке и продемонстрируем на простых задачах, как Воякс предлагает изменения в коде в соответствии с техническим заданием. В отдельной форме указываем название модифицируемого класса и суть задачи-изменения.
По кнопке «Предложение» Воякс формирует код в соответствии с заданием и отображает его в стандартной форме сравнения объектов. Код отмечен комментариями с кодом текущего проекта, кодом разработчика и датой изменения. Мы можем принять это изменение полностью или частично стандартными инструментами.
В дальнейшем планируется таким образом отображать все предложения Воякс в рамках проекта-модификации по изменению всех объектов системы (классов, форм, таблиц и т.д.) с возможностью принять все изменения не глядя (при условии исправления всех ошибок компиляции – это отдельная тема для рассмотрения) и сразу перейти к тестированию.
Мощный вывод
В совокупности комбинируя 1-ый и 2-ой пункты можно получить ответы на 99,99% вопросов по функционалу системы. Система перестаёт быть «чёрным ящиком» и становится абсолютно прозрачной. Это даже не какой-то особый продвинутый поиск по базе знаний. Существование самой базы знаний и описаний функционалов утрачивает актуальность - любые описания с любой детализацией и точные ответы на конкретные вопросы доступны «на лету». Если дать доступ к этим инструментам продвинутым пользователям, то упраздняется поддержка. Частично утрачивается ценность тех давно работающих на сильно переписанных или полностью «своих» приложениях консультантов с их уникальными знаниями текущей функциональности. Пропадает необходимость ковыряться в старых задачах и технических заданиях. Снижается (причём кардинально) порог входа консультанта в новое для него приложение. Для получения ответов на вопросы, консультаций и анализа кода и объектов больше не нужны программисты. Нет необходимости вести и поддерживать документацию с описанием функциональности системы. Стирается граница возможностей анализа системы между пользователем, консультантом и программистом: пользователям не нужен консультант, а консультантам не нужен программист в контексте таких задач. Воякс путешествует по системе и пользуется перекрёстными ссылками – это весь набор инструментов, который использует программист для анализа. В этой части Воякс на 99,99% выполняет работу, которую раньше выполнял программист. Выполняет значительно (в 10-ки раз) быстрее, давая подробные описания.
По анализу системы на этом можно поставить точку, но вот к запросам объектов и перекрёстным ссылкам мы ещё вернёмся, когда Воякс будет определять места для внесения изменений в код и объекты, которые подлежат изменениям.
Отдельно отметим, что Воякс может также работать со всеми версиями MS Dynamics AX, включая D365FO (Microsoft Dynamics 365 Finance and Operations) .
А мы двигаемся дальше – учим Воякс предлагать решения по доработкам классов, форм, таблиц, выполнять более сложные составные технические задания.
Источник


