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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2016, 13:20   #1  
Kostiki is offline
Kostiki
Участник
 
16 / 20 (1) +++
Регистрация: 01.03.2011
Задублировались ID объектов при обновлении MS Dynamics AX 2009
Обновил аксапту. Поставил kb3102031, которое вышло в ноябре. Сверху залил слой sl2 от FP37 который вышел в феврале. Сравнил слои со старыми и офигел. Extended_Data_Types в количестве 3 штук задублировались по ID. То бишь. В аксапте теперь присутствует два разных EDT с одинаковым ID:
19824. На GLP это CadastralValue_RU, в Sl2 - RPayTaxDeducted
19826. На GLP это RoomCadastralNum_RU, в Sl2 - RPayTaxExemptions
19822. На SYP это TaxReportCashAccountingRegime_ES, в Sl2 - RPayIncomeAmount
Как такое возможно? И к чему это приведет при работе? В АОТ видны оба EDT и у каждого из них один и тот же ID.

Второй вопрос. Слой GLP. С ним прилетело обновление по формированию книг покупок и продаж и декларации по НДС. Чета в планах разработки я не видел, что Майкрософт планирует переделать формирование, ну да ладно. Волнует такой вопрос: таблички TmpLedgerVATDeclaratoinHeader_RU и TmpLedgerVATDeclaratoinLine_RU. Обе стандартные на GLP слое. В обе в обновлении были добавлены новые поля. И ID всех новых полей превышают 50000. Если не ошибаюсь, эти ID выделены для юзерской разработки. Получается Майкрософт начал разрабатывать в юзер слое? Аналогичная бадяга была летом, когда выпускали обновление по книгам покупок/продаж.

Люди добрые, объясните. что происходит с разработкой в MS?
Старый 21.03.2016, 13:49   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Спокойствие, только спокойствие MS всегда разрабатывал на usr-слое, просто обычно перед выпуском модифы переносят на "нужный" нижележащий слой, однако, иногда делать это забывают Всё это диагностируется, почти всё это лечится, см. также
Старый 22.03.2016, 10:35   #3  
Kostiki is offline
Kostiki
Участник
 
16 / 20 (1) +++
Регистрация: 01.03.2011
Ну с usr слоем фиг с ним. А что делать с EDT, которые макрасофт так подло задублировал ID?
Было поле RoomCadastralNum в RAssetTable типа RoomCadastralNum_RU который string, а теперь аксапта чудесным образом его начала считать типом RPayTaxExemptions который Real. И естественно синхронизация таблицы RAssetTable вылетает с ошибкой.
Старый 23.03.2016, 12:58   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Есть два подхода. Условно назовём их "хакерский" и "пользовательский"

Независимо от подхода, сначала надо построить перекрёстные ссылки.

Хакерский подход
  1. Находим девелоперский ключ на слой SL2.
  2. Заходим на этот слой.
  3. Экспортируем все EDT, которые перекрывают EDT со слоя SYP/GLP
  4. Удаляем эти EDT со слоя SL2
  5. Импортируем их обратно без ID
  6. С помощью перекрёстных ссылок находим все ссылки на только что импортированные EDT, и восстанавливаем их (после шага 4 все объекты, которые ссылались на EDT со слоя SL2, будут ссылаться на EDT со слоя SYP/GLP с теми же ID).

Пользовательский подход

Так как у большинства пользователей ключа на слой SL2 нет, то нам ничего не остаётся, кроме как заново создать перекрытые EDT со слоёв SYP/GLP на нашем слое разработки (BUS/CUS/USR).
  1. С помощью сравнения слоёв, создаём проект, в который собираем все EDT, которые были перекрыты на слое SL2
  2. Экспортируем этот проект, с выбором слоя SYP/GLP
  3. Импортируем проект на наш слой разработки без ID
  4. С помощью перекрёстных ссылок находим ссылки на эти EDT. Ссылаться объекты будут уже на EDT со слоя SL2, так что надо будет разобраться, какие из этих ссылок правильные, а какие нет. Ошибочные ссылки исправляем и восстанавливаем связь с оригинальным EDT.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: gl00mie (2).
Старый 23.03.2016, 14:00   #5  
Kostiki is offline
Kostiki
Участник
 
16 / 20 (1) +++
Регистрация: 01.03.2011
Все это хорошо. Для одного EDT я примерно так и сделал. Но вот для RoomCadastralNum_RU я так сделать не могу. Там изменился тип данных. Поле в таблице RAssetTable которое ранее ссылалось на етот EDT должно быть string, но после обновления оно стало real. И теперь у меня нет возможности для него указать восстановленный тип данных типа string
Старый 23.03.2016, 18:09   #6  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
В таком случае, боюсь, что без ключа на SL2 не обойтись. Впрочем, буду рад ошибиться. Посмотрим, может у кого-то ещё будут идеи.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 25.03.2016, 07:39   #7  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Вот такая идея появилась: а что, если поменять EDT для поля в RAssetTable перед установкой слоя SL2. Укажите временно любой другой EDT типа String или вообще уберите привязку к EDT. А после установки SL2 и пересоздания типов привяжите обратно к правильному EDT.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 25.03.2016, 09:47   #8  
Kostiki is offline
Kostiki
Участник
 
16 / 20 (1) +++
Регистрация: 01.03.2011
Была такая мысль. Она однозначно сработает. Только приложение сильно кастомизировано и при обновлении приложения было убито дофига времени на анализ и модификации чтобы обновление нормально влилось в наше приложение. Чета заново это делать сильно не хочется. На текущий момент ситуация такая - поля, на которых изменились типа данных были убиты в SQL. Таблицы синхронизировались, естественно с полным убиением данных в этих полях(благо не сильно важные и не сильно нужные в текущий момент). Работаем, радуемся жизни и ждем ответа от Майкрософта по данному инциденту.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
mbsturk: Ax 2009 Rollup 4 Version Checker Blog bot DAX Blogs 0 29.04.2010 17:05
JOPX: Dynamics AX 2009 - Enterprise Portal link bonanza Blog bot DAX Blogs 0 27.11.2008 01:05
gl00mie: Dynamics AX 2009 Guides and White Papers Blog bot DAX Blogs 0 13.08.2008 20:09
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:25.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.