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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.09.2004, 10:59   #1  
sassas
Гость
 
n/a
о слоях
планомерно изучая и перепроверяя документацию наткнулся на интересный для меня эффект:

при экспорте из usp слоя класса и импорте его в usr методы класса (как, впрочем, и таблицы) удаляются из слоя usp (остаются на слое usr). То же верно для job. Для других объектов не проверял.

Из документации понял, что объекты накатываются на разные слои независимо.

В связи с этим вопросы:

1. Это нормально? Как соотнести с документацией.
2. При импорте, допустим, в CUS слой будет происходить то же? (Вопрос к людям, делавшим это реально) . Или это характерно для слоев патчей?
Старый 09.09.2004, 18:15   #2  
sassas
Гость
 
n/a
жаль, что так и не удалось послушать начальника транспортного цеха...

EVGL, пожалуйста, ответь на мой вопрос
Старый 10.09.2004, 18:14   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
1. Это нормально? Как соотнести с документацией.
IMHO, нет.

Цитата:
2. При импорте, допустим, в CUS слой будет происходить то же? (Вопрос к людям, делавшим это реально) . Или это характерно для слоев патчей?
При экспорте из vap и импорте в vap - то же самое.
При экспорте из vap и импорте в usr - нет. В этом случае все отрабатывает корректно.
Старый 10.09.2004, 18:19   #4  
sassas
Гость
 
n/a
Цитата:
При экспорте из vap и импорте в vap - то же самое.
ээээ?
Цитата:
При экспорте из vap и импорте в usr - нет. В этом случае все отрабатывает корректно.
снизу-вверх вопросов нет. Сверху-вниз как? для источника usr и приемника var. Раз уж у Вас есть лицензии на этот слой.
Старый 10.09.2004, 18:35   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
ээээ?
Прошу прощения, из vap в var

Цитата:
снизу-вверх вопросов нет. Сверху-вниз как?
Аналогично. Нет проблем (естественно, если модификации были сделаны в разных методах ). Собственно говоря, от направления это не зависит. Это похоже просто проблема работы с патч-слоями.

p.s. Поправил оформление.
Старый 10.09.2004, 18:43   #6  
sassas
Гость
 
n/a
дак вопрос то был про одни методы, но на разных слоях.

Готовишь метод на верхнем слое (usr)-> экспортируешь его -> переходишь на нижний слой (var) -> импортируешь этот метод из файла экспорта -> <он пропадает на верхнем слое (usr)>

У Вас эта процедура проходит как я описал?
Старый 10.09.2004, 18:48   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
дак вопрос то был про одни методы, но на разных слоях.
Ах про одни методы

Ну тогда, описанное Вами поведение не идет в разрез с документацией. При экспорте класса/таблицы экспортируются модифицированные методы (в случае, если мы экспортируем определенный слой).
При импорте файла, он импортируется ВЕСЬ. Естественно при этом полностью перетирается этот метод на другом слое. Merge Axapta сама не делает. Но Вы можете при импорте сравнить xpo файл со слоем и сделать этот merge ручками.
Старый 10.09.2004, 18:53   #8  
sassas
Гость
 
n/a
Андре, я не знаю , что такое merge, но процедуру описал подробно.

В файле импорта есть метод. Он затирает метод слоя, в который накатывается. Это понятно. Но также он затирает себя из вышележащего слоя.

Это неправильно.
Старый 10.09.2004, 18:55   #9  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Извини, мне нужно отойти. Я отвечу завтра.
Старый 11.09.2004, 13:02   #10  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Перечитал всю ветку еще раз. Что-то я совсем запутался. Давай еще раз:

Цитата:
Готовишь метод на верхнем слое (usr)-> экспортируешь его -> переходишь на нижний слой (var) -> импортируешь этот метод из файла экспорта -> <он пропадает на верхнем слое (usr)>
Итак.

1)
Цитата:
Готовишь метод на верхнем слое (usr)-> экспортируешь его ->
При этом модифицированный метод полностью выгрузился в xpo файл.

2)
Цитата:
переходишь на нижний слой (var) -> импортируешь этот метод из файла экспорта ->
При этом метод на слое var полностью перетирается из xpo файла..... ....и становится идентичным этому же методу на слое usr.
Здесь солгасен ?

3)
Цитата:
<он пропадает на верхнем слое (usr)>
Этот момент в док-ии нигде не описан, но мне он кажется вполне логичным. Если верхний слой идентичен нижнему, зачем его хранить ?
В данном случае верхний слой можно удалить и функционал останется тем же.

Вот. Я не видел, чтобы этот момент был описан в документации, поэтому утверждать правелен ли этот подход или нет - нельзя. Скорее нужно смириться с этим фактом и учитывать его при работе.
Чтобы избежать этого эффекта достаточно лишь сделать так, чтобы слои различались. Например после экспорта usr, но перед его импортом в var добавить на usr какой-нибудь комментарий.
Старый 12.09.2004, 13:57   #11  
sassas
Гость
 
n/a
1) -ок
2) -ок
3) - нет:
Цитата:
Import
When you import application objects, they will be placed directly in the current layer.
...
- If you log on to the CUS layer, and import some application objects, all the imported application objects will be placed in the CUS layer.
-- existing application objects in the USR layer will be left unchanged, but be "underridden" with the imported ones in the CUS layer. (So the USR layer probably has to be updated!)
мой Инглиш из нот вери вел, но, по-моему, выделенное переводится как "<объекты, существующие в> USR слое будут сохранены в неизменном виде".

Цитата взята из Бест практис по программингу.

Это раз.

Верхний слой Акс не имеет права удалять, тем более без предупреждения. Ведь само присутствие кода в верхнем слое говорит о том, что код был изменен пользователем-программистом. И то, что он в текущий момент времени совпадает с импортируемым, не является достаточным основанием для удаления. Машина не может принимать решения за человека.

Это два.

Главное: даже при изменении кода в USP, сделанное после экспорта из него , но до импорта на USR, НЕ спасает объект(метод) от удаления из слоя USP.

Это уже три.


Так что все плохо. А в экзамене вопросов с такими примерами навалом
Старый 13.09.2004, 10:31   #12  
sassas
Гость
 
n/a
Андре, так как возникло непонимание, и чтобы избежать его в дальнейшем, прошу Вас позволить мне проэкспериментировать со слоем var на Вашем сайте, либо выслать мне девелоперский код для этого слоя. Обещаю удалить его после проведения эксперимента.
Старый 13.09.2004, 13:03   #13  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
... проэкспериментировать со слоем var на Вашем сайте
Каким образом ?

Цитата:
либо выслать мне девелоперский код для этого слоя.
Насколько я знаю, девелоперский код привязан к лицензионному коду. Так что мне придется передавать Вам и лицензионные коды. Эти коды принадлежат не мне, а организации в которой я работаю. А так как на форуме я не представляю фирму, а общаюсь, как независимое частное лицо, то мне кажется, что высылать коды было бы несколько не этично.

Могу предложить Вам подъехать в наш офис, где я смогу предоставить Вам компьютер для необходимого Вам эксперимента.
Хотя, думаю, что подобную услугу Вам сможет оказать любой партнер mbs.
Старый 13.09.2004, 13:06   #14  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Есть подозрение, что это, на самом деле, нигде не описанная фича (по крайней мере, я не видел описания) работы с patch-слоями. Похоже, что при импорте на USR/USP-слой (аналогично, VAR/VAP, CUS/CUP и т. п.) происходит сравнение кода методов, и при отсутствии различий они не импортируются. Попробуйте, например, перенести класс с USR на USP, не удаляя его при этом с USR. При импорте между разными (то есть, не между основным и patch-) слоями, такого не происходит.

Еще раз повторяю, что это всего лишь мои личные выводы, основанные на результатах некоторого (не очень большого) количества экспериментов.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 13.09.2004, 13:33   #15  
sassas
Гость
 
n/a
2 Андре & Maxim Gorbunov

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

2 Андре

эксперимент будет заключаться в создании и экспорте-импорте временного класса и , допустим, job , между слоями, описанными выше. После получения результатов временные объекты будут удалены.

Думаю, можно пообщаться в ICQ по поводу времени и места встречи. Мой номер в профиле.
Старый 13.09.2004, 15:44   #16  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Скорее всего тебе нужно авторизировать меня в icq. Дело в том, что мои сообщения не доходят. В случае проблем - я добавил свой icq в профайл.
Старый 23.09.2004, 12:31   #17  
sassas
Гость
 
n/a
после проведения экспериментов могу выложить отчет о них.
Выражаю благодарность Андре за техническую поддержку и дополнительную информацию об экспорте-импорте слоев.

Итак.

В результате экспериментов на лицензионной Аксапте 3.0 выявилось несоответствие технической документации и системы.
Как отвечать на экзаменационные вопросы по программированию в свете изложенного, каждый должен решать сам.

Порядок проведения экспериментов:
1. Создание на "верхнем" слое объекта.
2. Экспорт объекта
3. Изменение и сохранение объекта на "верхнем" слое
4. Импорт объекта на "нижний" слой

Условия проведения:
1. Перезапуск клиента после каждой операции модификации+сохранения
2. В качестве объектов эксперимента были использованы Акс-объекты AOT Class и Job
3. Серии экспериментов проводились для пар слоев
- usp (создание + эксп + модификация + сохранение) -> usr, var, vap (имп)
- usr (создание) -> var, vap (имп)

Результат:
1. Импортируемые методы класса затирают те же (по имени) методы того же класса на верхнем уровне. С верхнего уровня они просто удаляются. Несмотря на отличия в коде сохраненного на верхнем слое и импортируемого методов. Определение класса также удаляется.
2. Для job - все в порядке, не затирается. Объект остается на обоих слоях "по версиям".
3. 1. и 2. верны для любых пар слоев.
4. Для класса: При импорте на слой патчей из слоя импорта также удаляются все методы, не входящие в файл экспорта-импорта, но существующие на слое импорта. Как если бы при импорте было выбрано "Удалять существующие объекты". Наличие или отсутствие выбора этой опции при импорте значения не имеет и на импорт не влияет.
5. 4. верно для любого слоя патча.

Предположение, основанное на незафиксированных <официально )> экспериментах:
1. Таблицы ведут себя так же, как классы.
2. Остальные объекты ведут себя так же, как job.

Так вот. И никакого, понимаешь, возврата денег за бракованную вещь.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В каких слоях вы можете вести разработку? (можно выбрать несколько вариантов ответа) mazzy DAX: Прочие вопросы 4 26.02.2009 11:01
SysTreeNodeCompareContext petergunn DAX: Программирование 5 26.11.2008 07:01
Неприятные нюансы AxCliCfg.exe в работе с кодами для разработки в слоях Косых Артём DAX: Администрирование 2 12.04.2007 11:10
И еще раз о слоях PlasticinE DAX: Программирование 2 22.01.2002 22:44
Вопрос о слоях shestakov DAX: Программирование 0 18.01.2002 20:11

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

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

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