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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2004, 13:09   #1  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Народ подскажите плиз, можно ли в Axapta 3.0 программноо (из моего кода) переместить объект из одного слоя в другой, не выходя при этом из аксапты.
Т.е. я работаю в слое USP, создал Таблицу, форму, ксласс, расширенный тип... да что угодно, и теперь я хочу поднять этот объект в слой USR из своего кода.., причем находясь в USP (подойдет и такой вариант, сменить currentLayer, но при этом не выходить из аксапты)
Я конечно понимаю, что можно сделать Export потом выйит загрузиться в другом слое, и сделать Import, но этот вариант не устраивает, можно опятьже воспользоваться классом SysCopyToCurrentLayer, но опятьже, он делает это темже самым экспортом и импортом, и его надо запускать из USR слоя, т.е. опять же выходить из аксапты, и грузиться в другом слое.

Ведь возможна в аксапте такая штука: что если объекты уже существуют в обоих слоях и в USR и в USP, то я находясь в USP смогу, переписать объект в USR c помощью TreeNode.AOTGetSource-> TreeNode.AOTSetSource и TreeNode.AOTGetProperties-> TreeNode.AOTSetProperties, ну а вот с вновь созданными объектами, которых нет в слое USR так уже не поступить.

Кто что скажет на эту тему?? Может действительно есть способ программно сменить текущий слой? Этот вариант тоже подойдет:-)
Старый 14.05.2004, 13:31   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
можно. но это закат солнца вручную. дешевле купить лицензию.
см. таблицу UtilElements.
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 13:43   #3  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Цитата:
Сообщение от mazzy
можно. но это закат солнца вручную. дешевле купить лицензию.
см. таблицу UtilElements.
смотрел мельком, сейчас посмотрю поподробнее но вот собсно вопрос, если я в UtilElements сменю UtilLevel, для объекта, он что переедет, в другой слой? А как же код переползет?
Или нужно создать новую запись в ней и в source поместить весь код из объекта?

И кстати, можно поподробнее, про купить лицензию? У меня есть лицензия на разработку, и даже в нескольких слоях... или речь о другой лицензии?? в которой есть подобный функционал?

Извиняюсь за чайниковские вопросы, просто я с аксаптой еще меньше недели:-)
Старый 14.05.2004, 13:49   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от shura
смотрел мельком, сейчас посмотрю поподробнее но вот собсно вопрос, если я в UtilElements сменю UtilLevel, для объекта, он что переедет, в другой слой? А как же код переползет?
Или нужно создать новую запись в ней и в source поместить весь код из объекта?
если бы я знал точно...
Самое главное, нет никаких гарантий, что этот способ будет работать корректно.
Вам нужно будет не столько сделать, сколько обеспечить корректность. А это еще полдня придется бегать.

про лицензии здесь
Почему наши разработки не работают у клиента на его лицензии? Axapta 3.0
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 13:53   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Таки уточню.

Сам код - у вас переползет.

Но код должен быть скомпилирован, он должен попасть в индексы и кэши, особенно для трехуровневых клиентов. Если в коде есть объявление режима кэширования таблиц, то они должны изменить режим кэширования. Если у вас форма, то должны создасться записи в security-таблицах и т.д. и т.п.

А вот это простым копированием кода не делается. Что нужно вызвать чтобы обеспечить корректную работу - не знаю. Мало того, считаю пустой тратой времени и денег разбор в этих механизмах. Если у вас есть время и вам за это платят... Попробуйте разобраться. Гарантий никаких в этом случае нет.
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 13:55   #6  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Ну значит про лицензии я правильно понял:-)
Да все эти лицензии у меня есть...
Просто мне нужен контороль разработки, т.е. кто что чего и когда поменял...
Впринципе я уже написал то что мне нужно, но для корректной работы и сравнения, мне нужно как раз программно поднимать объеты с одного слоя в другой...
Сейчас попробую поиграть с UtilElements я на нее мельком уже глядел и пытался, для начала тупо сменить UtilLevel , но это не отрабатывало...
сейчас попробую что-нить еще, если получится напишу:-)
Спасибо за ответы...
Старый 14.05.2004, 14:00   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от shura
Просто мне нужен контороль разработки, т.е. кто что чего и когда поменял...
а зачем вам слои? только для того, чтобы сравнить в средствах разработки?
тогда вы неправильный инструмент выбрали.

скопируйте aod-файлы в каталог old внутри приложения. Наслаждайтесь сравнением со старыми слоями.

Если вы выберете копирование, кстати, у вас индексный файл намного меньше будет. Аксапта будет быстрее работать, трафика будет меньше, требования к работчим местам существенно меньше... Не программируйте
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 14:02   #8  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
ну это понятно, вызвать компиляцию программно тоже можно, насчет индексов и записи в security таблицах тут не знаю... насчет веремени, у меня его как раз мало, потому и начал задавать вопросы :-) ладно, еще раз спасибо, пошел разбираться:-))
Старый 14.05.2004, 14:16   #9  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Цитата:
Сообщение от mazzy
а зачем вам слои? только для того, чтобы сравнить в средствах разработки?
тогда вы неправильный инструмент выбрали.

скопируйте aod-файлы в каталог old внутри приложения. Наслаждайтесь сравнением со старыми слоями.
согласен, но мне немного другую задачу поставили (пока что я не смог от нее отмахнуться)
Начальству хочется видеть не различия между тем, что было в начале проекта и в конце, им хочется видеть все изменения в разрезе каждого Бизнес процесса, и каждого ТЗ, и кто их делал и когда...
т.е. один и тотже объект (например форма), была в процессе разработки изменена 5 раз, исходя из 5 тех. заданий, изменения делали 3 программера..
так вот хотят видеть по каждому ТЗ, что в 1 случае было добавлено одно поле таким-то программером, по второму ТЗ был изменен метод таким-то программером... и т.д...
сравнение и запись результатов уже сделаны, привязка их к программеру ТЗ и ЮП тоже сделаны (это все оказалось просто), но вот чтобы делать автоматическое сравнение, мне надо чтобы объекты жо изменения были в одном слое, после изменения в другом...., и соответственно, чтобы после записи результатов сравнения, объект был бы поднят (уже с изменениями) обратно в верхний слой....
Старый 14.05.2004, 14:29   #10  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от shura
смотрел мельком, сейчас посмотрю поподробнее но вот собсно вопрос, если я в UtilElements сменю UtilLevel, для объекта, он что переедет, в другой слой?
Это же псевдотаблица, то есть просто представление AOD, структура которого неизвестна, в табличной форме, чтобы можно было по ней выборки делать. Не думаю, что разработчики подложили себе такую мину замедленного действия, как возможность делать в ней insert, update, delete с отражением всего этого в AOD

у меня попытки update и delete по UtilElements приводят к крэшу (вот вам и обработчик ошибок)
__________________
-ТСЯ или -ТЬСЯ ?
Старый 14.05.2004, 14:32   #11  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от shura
согласен, но мне немного другую задачу поставили (пока что я не смог от нее отмахнуться)
Начальству хочется видеть не различия между тем, что было в начале проекта и в конце, им хочется видеть все изменения в разрезе каждого Бизнес процесса, и каждого ТЗ, и кто их делал и когда...
т.е. один и тотже объект (например форма), была в процессе разработки изменена 5 раз, исходя из 5 тех. заданий, изменения делали 3 программера..
так вот хотят видеть по каждому ТЗ, что в 1 случае было добавлено одно поле таким-то программером, по второму ТЗ был изменен метод таким-то программером... и т.д...
А когда ТЗ/изменений по объекту будет больше 16?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 14.05.2004, 14:49   #12  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Цитата:
Сообщение от Vadik
А когда ТЗ/изменений по объекту будет больше 16?
Да хоть сколько:-)) Я не привязываюсь ко всем слоям, мне достаточно двух:-)
Там смысл такой, разработка вся, например в USP слое, закончил модификацию, объекта, нажал кнопочку, записались все твои изменения, с привязкой к ТЗ, (сравнения автоматические с любым из вышележещих слоев, в котором находится объект (например со слоем SYS), либо если он новый, то сохранится весь код), затем, этот объект поднимается на слой выше в USR, а из USP удаляется, и пожалста, редактируй его по следующему Т.З. (но опять же находясь в слое USP)
И по следующему Т.З. запишутся уже изменения, начиная, уже с первых модификаци, так как будто они всегда в нем и были (т.е. выполнится сравнение уже USR USP ) и мало того, еще и запишется, что объект модифицирован уже второй раз, и если хошь посмотреть что было в первом разе, или туда-то..
и так далее... т.е. этих Т.З. может быть хоть миллион:-)
И впоследствие можно буить посмотреть как изменялся каждый объект и покаким ТЗ.... и мало ого, елси постараться, то и на основе этих изменений выполнить откат....
Но затык именно в автоматическом поднятии ... ну уж очень не хочется скакать из одного слоя в другой посредством выхода и входа в аксапту, и руками делать Экспорт импорт...
Старый 14.05.2004, 14:54   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от shura
Начальству хочется видеть не различия между тем, что было в начале проекта и в конце, им хочется видеть все изменения в разрезе каждого Бизнес процесса, и каждого ТЗ, и кто их делал и когда...
В Аксапте есть журнал изменения базы данных. Этот инструмент как раз и предназначен для того, чтобы отслеживать изменения (сам не пробовал).

приложение реально существует в таблице UtilElements.
Вот и подумайте, как воспользовать СУЩЕСТВУЮЩИЙ инструмент, вместо того, чтобы изобретать НОВЫЙ. Причем изобретая новый инструмент, вы значительно ухудшаете параметры системы (помимо того, что тратите время на разработку никому, кроме вас самих, не нужного инструмента)

Либо наконец выгружайте ежедневно весь AOT в текстовый файл и загоняйте в CVS систему.

Главное чего я понять не могу - нафига вы программировать то начали? Вам существующих инструментов мало? Извините, shura. Это не лично вам упрек. В очередной раз убеждаюсь, что если в Аксапте задачу начинает решать программист "большим программированием", то он решает что угодно, но не исходную задачу.
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 14:55   #14  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Может все таки есть возможность в Аксапте, программно сменить слой, в котором ты работаешь?
Т.е. Зашел в аксапту в слое USP и не выходя из нее сменить на USR слой, тогда моя проблема буить решена, я сделаю запись объектов, тем же самым export import но так как я нахожусь уже в USR слое, то и объект буить там жить:-)
Старый 14.05.2004, 14:57   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik
Это же псевдотаблица, то есть просто представление AOD, структура которого неизвестна, в табличной форме, чтобы можно было по ней выборки делать.
Скажу по секрету, что внутренности aod-файлов очень напоминают внутренности файла native-базы...

Не удивлюсь, что aod - это просто база, а utilElements, utilIDElements просто view к ней. Хотя не проверял и зуб давать по этому поводу не буду.
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 14:57   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от shura
Может все таки есть возможность в Аксапте, программно сменить слой, в котором ты работаешь?
а... как хотите...
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 15:02   #17  
Aleksandr Parfenov is offline
Aleksandr Parfenov
Участник
 
13 / 10 (1) +
Регистрация: 19.09.2005
Адрес: г. Екатеринбург
Цитата:
Сообщение от mazzy
В Аксапте есть журнал изменения базы данных. Этот инструмент как раз и предназначен для того, чтобы отслеживать изменения (сам не пробовал).

приложение реально существует в таблице UtilElements.
Нет в самой базе данных такой таблицы, и соответственно я не могу отследить изменения в ней, я бы их и без аксапты отследил:-)

А насчет зачем изобретаю велосипед, и начал сие писать, это потому что программист плохой (не смог убедить начальство, что этого делать не нужно!)
Старый 14.05.2004, 15:08   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от shura
Нет в самой базе данных такой таблицы, и соответственно я не могу отследить изменения в ней, я бы их и без аксапты отследил:-)
вы хотите сказать, что вы не видите ее в списке объектов?
читайте FAQ
Описание скрытых объектов
Системные объекты и их описание


Если вы хотите сказать, что вы не видите эту таблицу при добавлении в инструмент databaselog... но id-то у этой таблицы есть, а у вас есть доступ к базе.

Копируйте aod-файлы в old-каталог.

В конце-концов, выгружайте в текстовый файл, если у вас сроки поджимают.

Или заплатите тем, кто сможет реализовать такую задачу быстро (хотя не люблю вставлять этот пункт в советы, знайте, что этот вариант у вас тоже есть)

В общем вариантов - масса. Хотите трахаться со слоями для того, чтобы отследить изменения в коде - трахайтесь.
__________________
полезное на axForum, github, vk, coub.
Старый 14.05.2004, 18:34   #19  
komar is offline
komar
Шаман форума
Аватар для komar
Ex AND Project
 
5,571 / 600 (32) +++++++
Регистрация: 24.05.2002
Цитата:
Сообщение от shura
согласен, но мне немного другую задачу поставили (пока что я не смог от нее отмахнуться)
Начальству хочется видеть не различия между тем, что было в начале проекта и в конце, им хочется видеть все изменения в разрезе каждого Бизнес процесса, и каждого ТЗ, и кто их делал и когда...
т.е. один и тотже объект (например форма), была в процессе разработки изменена 5 раз, исходя из 5 тех. заданий, изменения делали 3 программера..
так вот хотят видеть по каждому ТЗ, что в 1 случае было добавлено одно поле таким-то программером, по второму ТЗ был изменен метод таким-то программером... и т.д...
сравнение и запись результатов уже сделаны, привязка их к программеру ТЗ и ЮП тоже сделаны (это все оказалось просто), но вот чтобы делать автоматическое сравнение, мне надо чтобы объекты жо изменения были в одном слое, после изменения в другом...., и соответственно, чтобы после записи результатов сравнения, объект был бы поднят (уже с изменениями) обратно в верхний слой....
Боже...а для чего тогда программное перемещение...
Не мучайте бедное животное!
__________________
All information in this post is strictly confidential. If you have read it in error, please forget it immediately.
Старый 25.05.2004, 18:35   #20  
france is offline
france
Участник
 
159 / 11 (1) +
Регистрация: 24.11.2003
Адрес: Москва
Цитата:
Сообщение от shura
т.е. один и тотже объект (например форма), была в процессе разработки изменена 5 раз, исходя из 5 тех. заданий, изменения делали 3 программера..
так вот хотят видеть по каждому ТЗ, что в 1 случае было добавлено одно поле таким-то программером, по второму ТЗ был изменен метод таким-то программером... и т.д...
А если использовать для всего этого стандартный функционал, такую как, Разработка/Объекты приложения/Application managment (сорри, забыл, как в русском выглядело)?..
тут тебе и все разработчики, и команда разработки, и изменяемые объекты, и инфо об объектах. Мне сие очень понравилось. Вместе с документооборотом можно было бы все изменения отслеживать..
планировать вносимые изменения, отслеживать автора и время последних модификаций и тд и тп..
конечно, без возможности переносить из слоя в слой. Но если так актуально сие, можно собственный пункт в контекстное меню добавить) и почти никто ничего не заметит - посмотрели кто что наваял - и перенесли в нужный слой, при это используя методику, предложеную в Developer Guide (поиск по layer, move to another).
 


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

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

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