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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.03.2015, 14:02   #1  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Экспорт с конкретного слоя
Как сделать программно экспорт объекта AOT с конкретного слоя?

С текущего слоя получилось.
Со всех слоев получилось.

Стандартный экспорт это делает в ядре, а как самому это сделать?
Старый 30.03.2015, 15:41   #3  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Манипуляции с параметром flags не позволили прочитать слой sys, sl2 и др. Только текущий слой.
Внизу приведенного обсуждения подтверждено, что экспорт делается только с текущего слоя.
Значит - никак. Жаль
Старый 30.03.2015, 15:49   #4  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от kia Посмотреть сообщение
Манипуляции с параметром flags не позволили прочитать слой sys, sl2 и др. Только текущий слой.
Внизу приведенного обсуждения подтверждено, что экспорт делается только с текущего слоя.
Значит - никак. Жаль
ИМХО оно так специально сделано :

- вы можете экспортировать только те слои, на которые можете войти (в Аксу, в смысле). То есть только те слои, на которые у вас права есть.
- если бы было не так - ничто не мешало бы, экспортировав, например, SYS, внести некие изменения прямо в XPO и залить измененный слой обратно. Что не есть правильно.

Вот как-то так
__________________
Best Regards,
Roman
Старый 30.03.2015, 16:09   #5  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от kia Посмотреть сообщение
Как сделать программно экспорт объекта AOT с конкретного слоя?

С текущего слоя получилось.
Со всех слоев получилось.

Стандартный экспорт это делает в ядре, а как самому это сделать?
Если устраивает запуск из клиента, сделайте через саму форму.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 30.03.2015, 16:11   #6  
axm2013
Гость
 
n/a
А так?

#AOT
#AOTExport
TreeNode rootNode = TreeNode::findNode("Data Dictionary\\Tables\\*ЧЧЧ*");
;
//rootNode.treeNodeExport(@'c:\fullaot.xpo', #expKeepIds | #expLables | #expLayer);
rootNode = rootNode.getNodeInLayer(UtilEntryLevel::sys);
rootNode.treeNodeExport(@'c:\fullaot.xpo', #export);
info("s");

PS
и уже после нашел обсуждение
Программынй экспорт из определенного слоя

Последний раз редактировалось axm2013; 30.03.2015 в 16:17.
Старый 30.03.2015, 16:14   #7  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от RVS Посмотреть сообщение
ИМХО оно так специально сделано :

- вы можете экспортировать только те слои, на которые можете войти (в Аксу, в смысле). То есть только те слои, на которые у вас права есть.
- если бы было не так - ничто не мешало бы, экспортировав, например, SYS, внести некие изменения прямо в XPO и залить измененный слой обратно. Что не есть правильно.

Вот как-то так
Логично в отношении импорта и изменений, но не экспорта, из формы можно экспортировать с любого слоя.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 30.03.2015, 16:27   #8  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от RVS Посмотреть сообщение
ИМХО оно так специально сделано :
- вы можете экспортировать только те слои, на которые можете войти (в Аксу, в смысле). То есть только те слои, на которые у вас права есть.
Но стандартным экспортом можно выгрузить любой слой. И просмотреть в АОТе можно содержимое любого слоя.
Старый 30.03.2015, 16:35   #9  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от RVS Посмотреть сообщение
- если бы было не так - ничто не мешало бы, экспортировав, например, SYS, внести некие изменения прямо в XPO и залить измененный слой обратно.
это известный "хак" обхода лицензионных ключей.
За это сообщение автора поблагодарили: RVS (2).
Старый 30.03.2015, 16:40   #10  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Я сейчас штатными средствами могу выгрузить SYS и залить на свой слой.
В чем хак, если используются штатные средства?
Старый 30.03.2015, 17:13   #11  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
На примере кода ниже можно убедиться, что из кода можно экспортировать с нижнего слоя, но экспортируется текущий и предыдущий слой. Т.е. можно экспортировать например только слой sys, но слой syp будет содержать весь код видимый на syp и т.п.

X++:
    #AOTExport
    
    UtilEntryLevel              layer = UtilEntryLevel::syp;
    TreeNode                    treeNode;

    treeNode = TreeNode::findNode('\\Data Dictionary\\Tables\\AccountingDistribution');

    if (SysTreeNode::existsInLayer(treeNode, layer))
    {
        treeNode = SysTreeNode::nodeInLayer(treeNode, layer, true, false);
        treeNode.treeNodeExport(strFmt('c:\\%1.xpo', layer), #export);
    }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
За это сообщение автора поблагодарили: kia (1).
Старый 30.03.2015, 17:50   #12  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от kia Посмотреть сообщение
В чем хак, если используются штатные средства?
Можно удалить с объектов кнофигурационные ключи.
Старый 31.03.2015, 10:17   #13  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от Link Посмотреть сообщение
На примере кода ниже можно убедиться, что из кода можно экспортировать с нижнего слоя, но экспортируется текущий и предыдущий слой.
Хорошее решение. Правда метода existsInLayer у меня нет.
Но, у меня задача сложней: сравнить слой с old версией слоя.
А для old-слоя нижние слои не видны.
Старый 31.03.2015, 10:53   #14  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от kia Посмотреть сообщение
Хорошее решение. Правда метода existsInLayer у меня нет.
Но, у меня задача сложней: сравнить слой с old версией слоя.
А для old-слоя нижние слои не видны.
А утилитой сравнения слоев не пробовали?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 31.03.2015, 10:55   #15  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Нужно программно.
Скажу больше: нужно вывести список объектов реально измененных в обновлении (на новом слое).
Старый 31.03.2015, 13:03   #16  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от kia Посмотреть сообщение
Нужно программно.
Скажу больше: нужно вывести список объектов реально измененных в обновлении (на новом слое).
Можно поинтересоваться - что же все же за задачу вы решаете? Стандартный вопрос на этом форуме, кстати ))

Если опишете задачу - проще будет подсказать что-нить..
__________________
Best Regards,
Roman
Старый 31.03.2015, 14:15   #17  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Нужно программно вывести список объектов, реально измененных в обновлении (в VAR слое).
Хочется сравнить только VAR слой с его OLD версией.
Слой VAR чужой, пароля на него нет.
Старый 31.03.2015, 14:31   #18  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от kia Посмотреть сообщение
Нужно программно вывести список объектов, реально измененных в обновлении (в VAR слое).
Хочется сравнить только VAR слой с его OLD версией.
Слой VAR чужой, пароля на него нет.

\\Classes\SysCompareCreateProject, он же Утилита сравнения слоев.

Наследуйте от него, запускайте с уже заданными параметрами, вывод вместо проекта перенаправьте в Infolog или там в файл, куда хотите..

Все прочее он уже умеет )))
__________________
Best Regards,
Roman
Старый 31.03.2015, 15:08   #19  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от RVS Посмотреть сообщение
\\Classes\SysCompareCreateProject, он же Утилита сравнения слоев.
Может в 2012 это поможет, но в 2009 я его не нашел.
В 2009 штатная сравнилка берет с нижними слоями.
Старый 31.03.2015, 15:23   #20  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от kia Посмотреть сообщение
Может в 2012 это поможет, но в 2009 я его не нашел.
В 2009 штатная сравнилка берет с нижними слоями.
Я вообще это в 3.0 смотрел...

В 2009-й - оно тоже есть и работает.. Сервис - Средства разработки - Обновить код - Сравнение слоев.

Все работает.. Вот как-то так..

PS : Мне почудилось, или раньше картинку сюда можно было прямо с компа вставить? Потому как теперь оно требует URL, а выгружать картинки куда-то - мне лениво ))

PPS : Вот оно ))



__________________
Best Regards,
Roman

Последний раз редактировалось RVS; 31.03.2015 в 15:28.
За это сообщение автора поблагодарили: kia (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибки при установке SP и русского слоя. (AX 2009) lekonstantine DAX: Администрирование 6 30.11.2011 12:48
Экспорт отдельного слоя приложения S.Kuskov DAX: Программирование 2 26.01.2010 08:34
Экспорт слоя USR st_msav DAX: Администрирование 2 10.02.2006 13:56
Программынй экспорт из определенного слоя Vasilenko Alexsandr DAX: Программирование 14 08.12.2005 15:07
Экспорт таблиц и форм с указанием слоя Zepp DAX: Администрирование 8 31.10.2005 20:16

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

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

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