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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2008, 14:18   #1  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Отделение объектов АОТ в разрезе функциональности.
Есть приложение, в котором на ОДНОМ СЛОЕ разработаны независимые друг от друга функциональности (для простоты - модули). Но проекты в которых собраны элементы AOT per модуль потеряны. Встала задача перенести один из модулей в другую систему, т.е. собрать все элементы АОТ, относящиеся к интересуемому модулю в проект экспортнуть. Вставала ли подобная задача у кого-нибудь? Как решалась (интересует эффективное решение, не перетаскивоние по-нескольким элементам и дотаскивание чего не хватает)?
Идея которая мне пришла в голову - написать инструмент примерно такой
1. На вход подаем один из элементов для интересующего модуля (напр. MenuItem из главного меню).
2. Далее, начиная с этого MenuItem'а, он рекурсивно, обнавляя и используя crossRef, бежит по всем related-элементам глубоко вниз и находу вытаскивает их в отдельный проект, учитывая нужный нам слой (слои).
На первый взгляд такой пробег должен собрать все (или почти все) нужные элементы.
Каково ваше мнение? Может есть другие идеи?
Старый 11.07.2008, 15:02   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
По перекрестным ссылкам он Вам натащит даже то, что не является Вашей разработкой, а является стандартными объектами AOT
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 11.07.2008, 15:06   #3  
Mykola Galak is offline
Mykola Galak
Участник
 
40 / 39 (2) +++
Регистрация: 24.01.2008
Адрес: Copenhagen
Обычно все кастомные объекты должны иметь префикс.
Создайте проект и пофильтруйте его сделав селект по объектам с нужным вам префиксом (например ХХХ*).
Останутся только модифицированые стандартные объекты, которые в свою очередь могут быть модифицированы обоими солюшенами. Их тоже ищем с помощью фильтра: utilLayer = 'usr'; ModifiedDate = '>01/01/2007' (посмотрите дату любого немодифицированого сис объекта - зависит от вашей версии АХ).

Последний раз редактировалось Mykola Galak; 11.07.2008 в 15:11.
Старый 11.07.2008, 15:16   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Mykola Galak Посмотреть сообщение
Обычно все кастомные объекты должны иметь префикс.
согласно последнего постановления ВЦСПС не префикс, а суффикс.
префикс должен определять модуль.
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2008, 15:18   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
...он Вам натащит даже то, что не является Вашей разработкой, а является стандартными объектами AOT
- Будут учтены слои, и стандартные немодифицированные элементы в список не попадут.
Цитата:
Обычно все кастомные объекты должны иметь префикс.
Как это не печально, но и префикс использовался один для обоих солюшенов, и разработка производилась в один период времени.
Старый 11.07.2008, 15:19   #6  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от mazzy Посмотреть сообщение
согласно последнего постановления ВЦСПС не префикс, а суффикс.
префикс должен определять модуль.
C суфиксом конечно выглядит красиво.
Но с префиксом удобнее. Всё в одном месте(на одну букву), а не разбросано.
Старый 11.07.2008, 15:24   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Терпеть не могу префикс у объекта согласно коду фирмы/проекта, к которому он относится. Префикс должен обозначать модуль. Ужасно неудобно, когда не помнишь, стандартное это поле, например, или добавленное. Приходится, чтобы его найти сначала без префикса попробовать, а потом с префиксом. Это если префиксов два. А если больше? Так что польностью согласен с Маззи. Более того, я даже не считаю нужным делать суффикс.

miklenew, а зачем вам это надо, чтобы "Всё в одном месте(на одну букву), а не разбросано"?
Старый 11.07.2008, 15:28   #8  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Потому что, как правило когда задачу начинаю делать.
Что нибудь когда нибудь да делал.
В память какая нибудь зацепочка для поиска есть.
Выделил например все классы с префиксом и поиск.
А если по всему AOT дольше возиться, чтоб отобрать что нужно.
Старый 11.07.2008, 15:30   #9  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Ушли от темы, по-моему оффтоп начался...
Старый 11.07.2008, 15:38   #10  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от miklenew Посмотреть сообщение
Потому что, как правило когда задачу начинаю делать.
Что нибудь когда нибудь да делал.
В память какая нибудь зацепочка для поиска есть.
Выделил например все классы с префиксом и поиск.
А если по всему AOT дольше возиться, чтоб отобрать что нужно.
Для этого достаточно написать джобик, который сформирует в проект все элементы, у которых вы стоите в поле "Created by". И периодически вечерком его запускать. Ну или самому при добавлении нового элемента помещать его еще в свой специальный Private Project. Хотя мне, например, такого никогда не надо было. Я или знаю где искать или поиска по всему АОТу достаточно. Минусов у использования такого префикса гораздо больше.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Ушли от темы, по-моему оффтоп начался...
Извиняюсь. Можно выделить в отдельную тему.
Старый 11.07.2008, 15:41   #11  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
А если это в нескольких прилагах.
Сегодня из одной, завтра из другой.
Причём стоящих на локале. Не выход.
Старый 11.07.2008, 15:44   #12  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
При разработке надо думать прежде всего не о своем удобстве, а об удобстве того, кто это потом будет поддерживать и дорабатывать. А ему от ваших префиксов пользы мало. Вы же не один работаете над этим приложением.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Каково ваше мнение? Может есть другие идеи?
А "модуль" - большой? Объектов таких много? Вручную не будет эффективнее? Я бы так делал, а не программировал какой-то новый инструмент.
Старый 11.07.2008, 15:48   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Как это не печально, но и префикс использовался один для обоих солюшенов, и разработка производилась в один период времени.
Запущено то как.

Тогда:
1. не занимайтесь ерундой (в смысле, не программируйте новое)
2. соберите все измененные объекты в один проект. Сервис \ Средства разработки \ Обновление \ Мастер создания проекта для обновленных объектов (Точное название не помню)
3. Создайте группы в проекте: Подпроект1, Подпроект2, Общие объекты
4. руками растащите объекты по разным группам.

Уверен, что так вы получите результат быстрее и надежнее (даже если у вас несколько сотен измененных объектов), нежели писать код, потом его тестировать, а потом выверять результаты.
__________________
полезное на axForum, github, vk, coub.
Старый 11.07.2008, 15:52   #14  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от oip Посмотреть сообщение
При разработке надо думать прежде всего не о своем удобстве, а об удобстве того, кто это потом будет поддерживать и дорабатывать. А ему от ваших префиксов пользы мало. Вы же не один работаете над этим приложением.
Я ставлю префикс компании для которой делалось.
И этот же префикс ставят другие программисты.
И пока было удобно. И мне и другим.
Старый 11.07.2008, 15:58   #15  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Так же ужасно выглядит, когда есть какой-то стандартный класс Cust***, а вы добавлаете ему наследника, но называете его не Cust***_MyChild, a, например, Doors_Cust***.

Цитата:
Сообщение от miklenew Посмотреть сообщение
Я ставлю префикс компании для которой делалось.
И этот же префикс ставят другие программисты.
И пока было удобно. И мне и другим.
А какой толк от этого тому, кто придет после вас?

Цитата:
Сообщение от mazzy Посмотреть сообщение
Уверен, что так вы получите результат быстрее и надежнее (даже если у вас несколько сотен измененных объектов), нежели писать код, потом его тестировать, а потом выверять результаты.
+1
Старый 11.07.2008, 16:02   #16  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
А "модуль" - большой? Объектов таких много?
В принципе не очень, и в данном конкретном случае можно было бы обойтись, но хочется иметь подобное решение на будущее
Старый 11.07.2008, 16:03   #17  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от oip Посмотреть сообщение
Так же ужасно выглядит, когда есть какой-то стандартный класс Cust***, а вы добавлаете ему наследника, но называете его не Cust***_MyChild, a, например, Doors_Cust***.
А какой толк от этого тому, кто придет после вас?
Не Doors, а MRD_. Вроде когда то давно даже читал, что нужно префикс ставить из трёх букв.
А в остальном всё правильно.
Тоже будет ставить MRD_.
Толк познается в работе.
Я сразу вижу наше это или стандартное.
Или чьё-то ещё.
Старый 11.07.2008, 16:04   #18  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Ок, всем спасибо, будем разруливать...
Старый 11.07.2008, 16:16   #19  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от miklenew Посмотреть сообщение
Я сразу вижу наше это или стандартное.Или чьё-то ещё.
Для этого слои есть.Надо у проектов делать префикс той компании, которая разрабатывает. Таким образом легко собрать все вами созданные/модифицированные объекты и никому мешать это не будет.

Цитата:
Сообщение от miklenew Посмотреть сообщение
Тоже будет ставить MRD_.
Ок, как скажите. Просто надеюсь, что мне не придется работать в приложении, в котором у объектов есть некий лишний префикс. Тем более, что у "ВЦСПС" такое же мнение.

Просто был опыт. Очень не понравилось. Доходило до того, что даже не только методы начинались с префикса, но и переменные. Представьте себе переменную MRD_i.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Дублирование объектов АОТ malex DAX: Программирование 18 13.03.2012 18:22
Как сильно модифицировано ваше приложение Аксапты? (% обновленных партнерских объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% новых партнерских объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% обновленных объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% новых объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:40
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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