|
|
|
|
#1 |
|
Moderator
|
Цитата:
Сообщение от mazzy
Выделил из соседней ветки
И еще. С удовольствием послушаю/почитаю как они решили вопрос с апгрейдом этих Data Entity на новые версии Аксапты. раньше для таблиц был набор классов семейства ReleaseUpdateDB был конфигурационный ключ, который позволял удалять таблицы предыдущей версии до тех пор, пока не закончен апгрейд. А как сейчас? Ну и по поводу data entity - по моему они просто создают на каждое изменение новую версию data entity. Типа CustCustomerV10 |
|
|
|
| За это сообщение автора поблагодарили: mazzy (10). | |
|
|
#2 |
|
Участник
|
А какой смысл от такого фасада, если он меняется при каждом чихе?
А для V1, V2 ... V9 гарантируют работоспособность в новой версии? |
|
|
|
|
#3 |
|
Moderator
|
Цитата:
Они там тоже в Микрософте работают в режиме "hand to mouth" - больше чем на один релиз не планируют. Типа это не бардак, а Agile... |
|
|
|
| За это сообщение автора поблагодарили: mazzy (2). | |
|
|
#4 |
|
Участник
|
Со всей уверенностью могу сказать - думали.
в 2017 решения еще не было, но документ-обоснование вопросами к апрейду - был. значит, сейчас не гарантируют работоспособность "старых" data entity. прикольно. тогда нет никакого смысла их использовать - это не фасад, а всего лишь еще один транспортный уровень. примерно с такой же изменчивостью что и просто таблицы/классы. |
|
|
|
|
#5 |
|
Участник
|
Цитата:
data entity используют отдельный от форм механизм для маппинга полей(метод defaultRow), т.е. вполне возможно что загружая что-то с помощью дата ентити ты получишь не то, что было было если бы поля вводились вручную |
|
|
|
|
#6 |
|
Banned
|
Цитата:
Сообщение от mazzy
тогда нет никакого смысла их использовать - это не фасад, а всего лишь еще один транспортный уровень. примерно с такой же изменчивостью что и просто таблицы/классы.
И ничего больше. |
|
|
|
|
#7 |
|
Banned
|
"И ничего больше" - ответ неполный. Важны расширяемые триггеры на самой entity для обработки сложных случаев. Я в одном таком триггере запрограммировал автоматическое рассопоставление проводок по клиенту при импорте отклоненных SEPA direct debits.
|
|
|
|
| За это сообщение автора поблагодарили: ax_mct (5). | |
|
|
#8 |
|
Участник
|
ты же сам написал в предыдущей теме - для владельца объекта это повышает шанс что ничего не сломается, т.е. будет меньше воплей - мы установили обновление и наша интеграция сломалась, так как она ожидала 10 полей, а пришло 11
Гарантрируется только бинарная совместимость т.е. обновление должно безболезненно устанавливаться и работать |
|
|
|
|
#9 |
|
Участник
|
Цитата:
так гарантируется, что data entity прошлых версий будут работать так же как и раньше в новой версии или нет? другими словами, код, который использует V1, продолжит работать корректно, когда появляется V2? |
|
|
|
|
#10 |
|
Модератор
|
Цитата:
Как минимум в случае доступа через OData если создавалось расширение и Public name перенесли на "новую" версию
__________________
-ТСЯ или -ТЬСЯ ? Последний раз редактировалось Vadik; 27.02.2019 в 12:35. |
|
|
|
|
#11 |
|
Administrator
|
Цитата:
С выходом PU20 добавили к этой Entity - EntityV2 (ну кстати аналогично появились обновленные версии Entity по контрагентам). Мы обновились на PU20 и вроде как все было нормально, компиляция проходила и т.д. Но... потом выяснилась интересная ситуация. Методы классов, сопутствующих этой Entity были помечены атрибутом [Obsolete], а код, который по идее должен был работать - валился в Runtime-ошибку, мол нельзя вызывать метод, объявленный как obsolete. Решение было простое (конечно после анализа ситуации) - заменить в коде вызов Entity и сопутствующих классов - на V2 и в связи с этим немного переформатировать код. Однако получается, что с т.з. глобальной компиляции - устаревание кода ошибок не влечет за собой. А вот непосредственный вызов... уже не возможен
__________________
Возможно сделать все. Вопрос времени |
|
|
|
| За это сообщение автора поблагодарили: mazzy (2), ax_mct (2), Stitch_MS (2). | |
|
|
|