27.02.2019, 11:00 | #1 |
Участник
|
Каков механизм апгрейда Data Entity в мажорных и минорных версиях современной аксапты?
Выделил из соседней ветки
Цитата:
раньше для таблиц был набор классов семейства ReleaseUpdateDB был конфигурационный ключ, который позволял удалять таблицы предыдущей версии до тех пор, пока не закончен апгрейд. А как сейчас? |
|
27.02.2019, 11:08 | #2 |
Участник
|
Дублируют и добавляют V2, V3..
|
|
|
За это сообщение автора поблагодарили: mazzy (10). |
27.02.2019, 11:14 | #3 |
Moderator
|
Цитата:
Сообщение от mazzy
Выделил из соседней ветки
И еще. С удовольствием послушаю/почитаю как они решили вопрос с апгрейдом этих Data Entity на новые версии Аксапты. раньше для таблиц был набор классов семейства ReleaseUpdateDB был конфигурационный ключ, который позволял удалять таблицы предыдущей версии до тех пор, пока не закончен апгрейд. А как сейчас? Ну и по поводу data entity - по моему они просто создают на каждое изменение новую версию data entity. Типа CustCustomerV10 |
|
|
За это сообщение автора поблагодарили: mazzy (10). |
27.02.2019, 11:20 | #4 |
Участник
|
|
|
27.02.2019, 11:23 | #5 |
Участник
|
А какой смысл от такого фасада, если он меняется при каждом чихе?
А для V1, V2 ... V9 гарантируют работоспособность в новой версии? |
|
27.02.2019, 11:42 | #6 |
Moderator
|
Цитата:
Они там тоже в Микрософте работают в режиме "hand to mouth" - больше чем на один релиз не планируют. Типа это не бардак, а Agile... |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
27.02.2019, 11:54 | #7 |
Участник
|
ты же сам написал в предыдущей теме - для владельца объекта это повышает шанс что ничего не сломается, т.е. будет меньше воплей - мы установили обновление и наша интеграция сломалась, так как она ожидала 10 полей, а пришло 11
Гарантрируется только бинарная совместимость т.е. обновление должно безболезненно устанавливаться и работать |
|
27.02.2019, 11:55 | #8 |
Участник
|
Со всей уверенностью могу сказать - думали.
в 2017 решения еще не было, но документ-обоснование вопросами к апрейду - был. значит, сейчас не гарантируют работоспособность "старых" data entity. прикольно. тогда нет никакого смысла их использовать - это не фасад, а всего лишь еще один транспортный уровень. примерно с такой же изменчивостью что и просто таблицы/классы. |
|
27.02.2019, 11:59 | #9 |
Участник
|
Цитата:
так гарантируется, что data entity прошлых версий будут работать так же как и раньше в новой версии или нет? другими словами, код, который использует V1, продолжит работать корректно, когда появляется V2? |
|
27.02.2019, 12:05 | #10 |
Участник
|
Цитата:
data entity используют отдельный от форм механизм для маппинга полей(метод defaultRow), т.е. вполне возможно что загружая что-то с помощью дата ентити ты получишь не то, что было было если бы поля вводились вручную |
|
27.02.2019, 12:18 | #11 |
Модератор
|
Это декларируется, но не всегда работает Как минимум в случае доступа через OData если создавалось расширение и Public name перенесли на "новую" версию
__________________
-ТСЯ или -ТЬСЯ ? Последний раз редактировалось Vadik; 27.02.2019 в 12:35. |
|
27.02.2019, 19:25 | #12 |
Administrator
|
Цитата:
С выходом PU20 добавили к этой Entity - EntityV2 (ну кстати аналогично появились обновленные версии Entity по контрагентам). Мы обновились на PU20 и вроде как все было нормально, компиляция проходила и т.д. Но... потом выяснилась интересная ситуация. Методы классов, сопутствующих этой Entity были помечены атрибутом [Obsolete], а код, который по идее должен был работать - валился в Runtime-ошибку, мол нельзя вызывать метод, объявленный как obsolete. Решение было простое (конечно после анализа ситуации) - заменить в коде вызов Entity и сопутствующих классов - на V2 и в связи с этим немного переформатировать код. Однако получается, что с т.з. глобальной компиляции - устаревание кода ошибок не влечет за собой. А вот непосредственный вызов... уже не возможен
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: mazzy (2), ax_mct (2), Stitch_MS (2). |
28.02.2019, 02:17 | #13 |
Banned
|
https://docs.microsoft.com/en-us/dyn...ed/one-version
Цитата:
Backward compatibility covers binary and functional compatibility. Binary compatibility means that you can apply an update on any runtime environment without needing to recompile, reconfigure, or redeploy customizations. This also means that on a development environment at design time, X++ public and protected APIs and metadata are not modified or deleted. If Microsoft needs to break compatibility by removing obsolete APIs, it will be communicated 12 months in advance and follow a deprecation schedule. Functional compatibility is about user experience, all new experiences will be opt-in.
Backward compatibility does not include non-X++/metadata APIs. Microsoft reserves the right to update versions of any dependencies the product uses, as well as remove dependencies without early warning. Microsoft does not commit to maintain backwards compatibility of dependent software libraries unless expressly stated. |
|
28.02.2019, 04:06 | #14 |
Banned
|
Цитата:
Сообщение от mazzy
тогда нет никакого смысла их использовать - это не фасад, а всего лишь еще один транспортный уровень. примерно с такой же изменчивостью что и просто таблицы/классы.
И ничего больше. |
|
28.02.2019, 11:28 | #15 |
Banned
|
"И ничего больше" - ответ неполный. Важны расширяемые триггеры на самой entity для обработки сложных случаев. Я в одном таком триггере запрограммировал автоматическое рассопоставление проводок по клиенту при импорте отклоненных SEPA direct debits.
|
|
|
За это сообщение автора поблагодарили: ax_mct (5). |
28.02.2019, 14:38 | #16 |
MCTS
|
У нас на проекте с помощью entity сделана интеграция с весами. В том числе создание заказов, если это необходимо, и разноска накладных. Так что там можно запрограммировать практически все, что угодно )
__________________
I could tell you, but then I would have to bill you. |
|
|
За это сообщение автора поблагодарили: ax_mct (5). |
28.02.2019, 18:05 | #17 |
Banned
|
Цитата:
Цитата:
А есть отличие если бы мы тоже самое делали в типичной Staging table в AX? Есть batch job, мы там можем "запрограммировать практически все, что угодно". |
|
28.02.2019, 19:15 | #18 |
MCTS
|
В Staging table данные надо как-то положить. Data entities как раз для этого. Дальше отличий особых нет.
__________________
I could tell you, but then I would have to bill you. |
|
28.02.2019, 19:21 | #19 |
Banned
|
|
|
28.02.2019, 20:01 | #20 |
MCTS
|
Тем, что Data entities предоставляет определенный framework по настройке экспорта/импорта в различные форматы, мэппинг, логгирование, запуск по расписанию, объединение в проекты, права доступа и т. д. Это, по сути, удобный готовый инструмент по обмену данными со stage таблицами Аксапты и, в простых случаях, обмен stage с прод таблицами (для мастер данных).
__________________
I could tell you, but then I would have to bill you. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|