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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2017, 15:11   #1  
Blog bot is offline
Blog bot
Участник
 
19,714 / 665 (62) +++++++
Регистрация: 28.10.2006
littleax: Dynamics 365 for Operations. Использование SysComputedColumn при создании представлений
Источник: http://littleax.blogspot.com/2017/11...perations.html
==============

SMART TALKS

Dynamics 365 for Operations


Использование SysComputedColumn при создании представлений

При построении разного рода отчетов, тем более в современной и модной технологии (охо-хо) Power BI мы сталкиваемся с вопросами производительности выборок. Еще один вариант использования, по View мы можем создать DataEntity а к DataEntity получить доступ уже по oData из внешней системы.



http://smart-talks.org/event/smart-talks-122/#r2


Источник: http://littleax.blogspot.com/2017/11...perations.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 17.11.2017, 15:44   #2  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,768 / 3639 (179) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Смотрю я на видео с ужасом... и поверить своим глазам не могу.
Это ж какое поле открыли для SQL-инекций!
Даже древние движки форумов имеют более интеллектуальный SQL-враппер.

я поначалу подумал, что это доработка такая. нет. ЭТО в стандартной аксапте. и ЭТО используется.

И никаких инструментов ни для отладки ЭТОГО, ни для performance monitoring'а.


И при таких дырах в функционале они занимаются добавлением пользовательских полей. Господи, прости.
Лучше бы запросы сделали нормальные, раз уж выкинули разные СУБД.

=======================
к девушке - никаких претензий - норм рассказала о стандартном функционале.
и нормально про свой опыт работы с этим.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 35
Размер:	92.4 Кб
ID:	11736   Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 30
Размер:	80.0 Кб
ID:	11737  

__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 17.11.2017, 15:56   #3  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,768 / 3639 (179) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
оказывается ЭТО в 2012 добавили
Миниатюры
Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 6
Размер:	40.9 Кб
ID:	11738  
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 17.11.2017, 22:13   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
358 / 331 (12) ++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от mazzy Посмотреть сообщение
оказывается ЭТО в 2012 добавили
Привествуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной
Старый 17.11.2017, 22:19   #5  
sukhanchik is offline
sukhanchik
Moderator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,503 / 1623 (60) ++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от skuull Посмотреть сообщение
Привествуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной
Ну почему именно проектных? Вполне себе обычных ГКшных. С хранимыми процедурами. Об этом даже официальная дока написана
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 18.11.2017 в 01:53.
За это сообщение автора поблагодарили: mazzy (2).
Старый 18.11.2017, 02:55   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
485 / 362 (13) ++++++
Регистрация: 07.06.2003
Цитата:
Сообщение от mazzy Посмотреть сообщение
Смотрю я на видео с ужасом... и поверить своим глазам не могу.
Это ж какое поле открыли для SQL-инекций!
я поначалу подумал, что это доработка такая. нет. ЭТО в стандартной аксапте. и ЭТО используется.

И никаких инструментов ни для отладки ЭТОГО, ни для performance monitoring'а.
А можешь пояснить при чем тут SQL-инекции? этож не рантайм функции, делаешь метод, он при синхронизации создает поле во вью(полезно когда например одно поле Amount надо вывести в 2 - дебет и кредит). на производительность вроде тоже никак не должно влиять, это просто опрерации над полями текущего курсора, никаких возможностей более тут нет. для отладки просто смотришь определение view.
для АХ7 при использовании лицензий (ISV) это кстати вообще поломали, т.е. один вью основанный на полях другого вью при отключенных конфиг. ключах вызывает ошибку синхронизации и невозможности установки пакета, а если мы хотим лицензию поставлять отдельно, при наличии в решинии таких вложенных вью ничего не получится

Последний раз редактировалось trud; 18.11.2017 в 03:03.
Старый 18.11.2017, 07:03   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
358 / 331 (12) ++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Ну почему именно проектных? Вполне себе обычных ГКшных. С хранимыми процедурами. Об этом даже официальная дока написана
Давайте скажем так "Приветствуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной."

Ну потому что они к сердцу ближе и еще свежи воспоминания Но там местами пренебрегли даже computed columns, просто навалили SQL.
Миниатюры
Нажмите на изображение для увеличения
Название: ProjBudgetBalanceCalculator.getSQLCalculateTotals.png
Просмотров: 8
Размер:	43.4 Кб
ID:	11742  
За это сообщение автора поблагодарили: mazzy (2), sukhanchik (2).
Старый 18.11.2017, 08:44   #8  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,768 / 3639 (179) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от skuull Посмотреть сообщение
Привествуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной
Да-да.
И если кто-нибудь даже
Захочет, чтоб было иначе,
Бессильный и неумелый,
Опустит слабые руки,
Не зная, где сердце спрута
И есть ли у спрута сердце...
Цитата:
Сообщение от trud Посмотреть сообщение
А можешь пояснить при чем тут SQL-инекции? этож не рантайм функции, делаешь метод, он при синхронизации создает поле во вью
а какая разница, рантайм или не рантайм? какая разница до синхронизации или после, если иньекция неизбежно сработает?
если никаких проверок и экранирований не предусмотрено ни в "делаешь метод", ни в синхронизации?
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 18.11.2017, 11:49   #9  
sukhanchik is offline
sukhanchik
Moderator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,503 / 1623 (60) ++++++++
Регистрация: 13.06.2004
Адрес: Москва
Ну тогда уж и приведу скриншот с ГКшных бюджетов с их хранимыми процедурами, где одна процедура вызывает другую
Нажмите на изображение для увеличения
Название: 001.png
Просмотров: 22
Размер:	55.8 Кб
ID:	11743
Нажмите на изображение для увеличения
Название: 002.png
Просмотров: 6
Размер:	113.5 Кб
ID:	11744
Нажмите на изображение для увеличения
Название: 003.png
Просмотров: 6
Размер:	61.1 Кб
ID:	11745
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: mazzy (2), TasmanianDevil (3).
Старый 18.11.2017, 17:35   #10  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,011 / 2151 (80) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
если никаких проверок и экранирований не предусмотрено ни в "делаешь метод", ни в синхронизации?
Проверок нет, а вот экранирование есть (см *literal*) просто в Add не надо экранировать, так как на вход получается уже готовое sql выражение (на что намекает слово expression, в качестве имени параметра). Прямой sql был всегда, тут сделали шажок вперед - набор утилит для его создания. Следующий шажок мог быть завернуть его в отдельный тип, чтобы случайно не смешать исходные данные и подготовленный SQL, дальше expression tree, LINQ и компиляция из подмножества X++.

Короче, не ужас-ужас-ужас
Старый 18.11.2017, 18:05   #11  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,687 / 846 (32) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Просто интересно, чем рассчитанные затраты на ввод ComputedColumn в DAX2012 таким способом с точки зрения затрат (времени, денег) отличались от расширения движка запросов аксы вводом возможностей подзапросов в where, в полях, вводом алиасов для выбранных полей, указанием литералов в выборке и выражениях запроса и т.п.?
В DAX2009 ввели union (пусть достаточно ограничено) - никто же не умер.
Зачем нужны эти придумки вместо ввода поддержки давно проверенных подходов?
Старый 18.11.2017, 18:13   #12  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,687 / 846 (32) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Такое впечатление, что при покупке MS продукта либо было соглашение о том, что движок запросов трогать нельзя, либо исходный код этого движка не был передан, либо никто в этом движке не стал разбираться.
Старый 18.11.2017, 18:24   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,011 / 2151 (80) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Просто интересно, чем рассчитанные затраты на ввод ComputedColumn в DAX2012 таким способом с точки зрения затрат (времени, денег) отличались от расширения движка запросов аксы вводом возможностей подзапросов в where, в полях, вводом алиасов для выбранных полей, указанием литералов в выборке и выражениях запроса и т.п.?
Я думаю, что различия в трудоемкости большие - в одном слкчае надо сделать точку входа куда передавать строчку. В другом случае расковырять написанный давно на C++ движок чтобы все это обеспечить и ничего не сломать.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Dynamics 365 Roadmap, Readiness and License Renewal – What You Need to Know Blog bot DAX Blogs 0 16.03.2017 00:14
stoneridgesoftware: Microsoft Dynamics 365 – Right around the Corner Blog bot DAX Blogs 0 10.10.2016 21:13
german_nav_developer: Buildnummern-Übersicht Microsoft Dynamics NAV 2013 Blog bot NAV: Blogs 0 15.05.2016 18:12
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 16 Blog bot Dynamics CRM: Blogs 0 23.01.2014 03:15
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 4 Blog bot Dynamics CRM: Blogs 0 24.09.2011 01:16
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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