AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 17.11.2017, 15:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,646 / 848 (80) +++++++
Join Date: 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, напишите личное сообщение администратору.
Old 17.11.2017, 15:44   #2  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Смотрю я на видео с ужасом... и поверить своим глазам не могу.
Это ж какое поле открыли для SQL-инекций!
Даже древние движки форумов имеют более интеллектуальный SQL-враппер.

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

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


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

=======================
к девушке - никаких претензий - норм рассказала о стандартном функционале.
и нормально про свой опыт работы с этим.
Attached Thumbnails
Click image for larger version

Name:	1.PNG
Views:	634
Size:	92.4 KB
ID:	11736   Click image for larger version

Name:	2.PNG
Views:	592
Size:	80.0 KB
ID:	11737  

__________________
полезное на axForum, github, vk, coub.
Old 17.11.2017, 15:56   #3  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
оказывается ЭТО в 2012 добавили
Attached Thumbnails
Click image for larger version

Name:	3.PNG
Views:	466
Size:	40.9 KB
ID:	11738  
__________________
полезное на axForum, github, vk, coub.
Old 17.11.2017, 22:13   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Join Date: 08.03.2013
Location: ХЗ
Quote:
Originally Posted by mazzy View Post
оказывается ЭТО в 2012 добавили
Привествуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной
Old 17.11.2017, 22:19   #5  
sukhanchik is offline
sukhanchik
Administrator
sukhanchik's Avatar
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,343 / 3563 (125) ++++++++++
Join Date: 13.06.2004
Location: Москва
Quote:
Originally Posted by skuull View Post
Привествуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной
Ну почему именно проектных? Вполне себе обычных ГКшных. С хранимыми процедурами. Об этом даже официальная дока написана
__________________
Возможно сделать все. Вопрос времени

Last edited by sukhanchik; 18.11.2017 at 01:53.
This post has been rated by: mazzy (2).
Old 18.11.2017, 02:55   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Join Date: 07.06.2003
Blog Entries: 1
Quote:
Originally Posted by mazzy View Post
Смотрю я на видео с ужасом... и поверить своим глазам не могу.
Это ж какое поле открыли для SQL-инекций!
я поначалу подумал, что это доработка такая. нет. ЭТО в стандартной аксапте. и ЭТО используется.

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

Last edited by trud; 18.11.2017 at 03:03.
Old 18.11.2017, 07:03   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Join Date: 08.03.2013
Location: ХЗ
Quote:
Originally Posted by sukhanchik View Post
Ну почему именно проектных? Вполне себе обычных ГКшных. С хранимыми процедурами. Об этом даже официальная дока написана
Давайте скажем так "Приветствуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной."

Ну потому что они к сердцу ближе и еще свежи воспоминания Но там местами пренебрегли даже computed columns, просто навалили SQL.
Attached Thumbnails
Click image for larger version

Name:	ProjBudgetBalanceCalculator.getSQLCalculateTotals.png
Views:	500
Size:	43.4 KB
ID:	11742  
This post has been rated by: mazzy (2), sukhanchik (2).
Old 18.11.2017, 08:44   #8  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by skuull View Post
Привествуем в мире проектных бюджетов, там все работает на SQL магии, поэтому их лучше обходить стороной
Да-да.
И если кто-нибудь даже
Захочет, чтоб было иначе,
Бессильный и неумелый,
Опустит слабые руки,
Не зная, где сердце спрута
И есть ли у спрута сердце...
Quote:
Originally Posted by trud View Post
А можешь пояснить при чем тут SQL-инекции? этож не рантайм функции, делаешь метод, он при синхронизации создает поле во вью
а какая разница, рантайм или не рантайм? какая разница до синхронизации или после, если иньекция неизбежно сработает?
если никаких проверок и экранирований не предусмотрено ни в "делаешь метод", ни в синхронизации?
__________________
полезное на axForum, github, vk, coub.
Old 18.11.2017, 11:49   #9  
sukhanchik is offline
sukhanchik
Administrator
sukhanchik's Avatar
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,343 / 3563 (125) ++++++++++
Join Date: 13.06.2004
Location: Москва
Ну тогда уж и приведу скриншот с ГКшных бюджетов с их хранимыми процедурами, где одна процедура вызывает другую
Click image for larger version

Name:	001.png
Views:	369
Size:	55.8 KB
ID:	11743
Click image for larger version

Name:	002.png
Views:	402
Size:	113.5 KB
ID:	11744
Click image for larger version

Name:	003.png
Views:	365
Size:	61.1 KB
ID:	11745
__________________
Возможно сделать все. Вопрос времени
This post has been rated by: mazzy (2), TasmanianDevil (3).
Old 18.11.2017, 17:35   #10  
belugin is offline
belugin
Участник
belugin's Avatar
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Join Date: 16.01.2004
Blog Entries: 5
Quote:
Originally Posted by mazzy View Post
если никаких проверок и экранирований не предусмотрено ни в "делаешь метод", ни в синхронизации?
Проверок нет, а вот экранирование есть (см *literal*) просто в Add не надо экранировать, так как на вход получается уже готовое sql выражение (на что намекает слово expression, в качестве имени параметра). Прямой sql был всегда, тут сделали шажок вперед - набор утилит для его создания. Следующий шажок мог быть завернуть его в отдельный тип, чтобы случайно не смешать исходные данные и подготовленный SQL, дальше expression tree, LINQ и компиляция из подмножества X++.

Короче, не ужас-ужас-ужас
Old 18.11.2017, 18:05   #11  
Raven Melancholic is offline
Raven Melancholic
Участник
Raven Melancholic's Avatar
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Join Date: 21.03.2005
Location: Москва-Петушки
Просто интересно, чем рассчитанные затраты на ввод ComputedColumn в DAX2012 таким способом с точки зрения затрат (времени, денег) отличались от расширения движка запросов аксы вводом возможностей подзапросов в where, в полях, вводом алиасов для выбранных полей, указанием литералов в выборке и выражениях запроса и т.п.?
В DAX2009 ввели union (пусть достаточно ограничено) - никто же не умер.
Зачем нужны эти придумки вместо ввода поддержки давно проверенных подходов?
Old 18.11.2017, 18:13   #12  
Raven Melancholic is offline
Raven Melancholic
Участник
Raven Melancholic's Avatar
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Join Date: 21.03.2005
Location: Москва-Петушки
Такое впечатление, что при покупке MS продукта либо было соглашение о том, что движок запросов трогать нельзя, либо исходный код этого движка не был передан, либо никто в этом движке не стал разбираться.
Old 18.11.2017, 18:24   #13  
belugin is offline
belugin
Участник
belugin's Avatar
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Join Date: 16.01.2004
Blog Entries: 5
Quote:
Originally Posted by Raven Melancholic View Post
Просто интересно, чем рассчитанные затраты на ввод ComputedColumn в DAX2012 таким способом с точки зрения затрат (времени, денег) отличались от расширения движка запросов аксы вводом возможностей подзапросов в where, в полях, вводом алиасов для выбранных полей, указанием литералов в выборке и выражениях запроса и т.п.?
Я думаю, что различия в трудоемкости большие - в одном слкчае надо сделать точку входа куда передавать строчку. В другом случае расковырять написанный давно на C++ движок чтобы все это обеспечить и ничего не сломать.
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
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
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 08:51.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.