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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.03.2019, 11:58   #1  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от trud Посмотреть сообщение
Добавлять поля в заказ и накладывать фильтры/строить индексы по этим полям. Собственно как работает поле компания
Так конкретный же кейс, фильтр по фин аналитике на строке заказа, какие фильтры и индексы будем добалять? Причем ребята с ролью "А" не видят подразделение "Б", а роль "Б" не видит "А" и не тоько на одной конкретной форме заказа, а вообще нигде, включая отчеты.
Старый 14.03.2019, 13:08   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А все кто против - реальные кейсы можете описать, когда начали использовать и отказались? Или теоретики?
Ну я встречал только негативные последствия(хотя тут наверное ошибка выжившего, когда все хорошо мне об этом не расскзаывали), кейсы - это фильтр на приджойненную таблицу

Цитата:
Сообщение от skuull Посмотреть сообщение
Так конкретный же кейс, фильтр по фин аналитике на строке заказа, какие фильтры и индексы будем добалять? Причем ребята с ролью "А" не видят подразделение "Б", а роль "Б" не видит "А" и не тоько на одной конкретной форме заказа, а вообще нигде, включая отчеты.
Как раз один из негативных случаев. Решать подобные вещи очень сложно - т.е. в итоге клиент перетасовал роли и подразделения таким образом чтобы можно было фильтровать по полю из шапки заказа(первоначально была строка), ну и добавили поле в шапку. Хотя в первый год все работало замечательно
А старый Record level security остался в D365?
Старый 14.03.2019, 13:37   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от trud Посмотреть сообщение
Как раз один из негативных случаев. Решать подобные вещи очень сложно - т.е. в итоге клиент перетасовал роли и подразделения таким образом чтобы можно было фильтровать по полю из шапки заказа(первоначально была строка), ну и добавили поле в шапку. Хотя в первый год все работало замечательно
А старый Record level security остался в D365?
В такой ситуации, я бы аналитики продублировал в скрытые поля в таблице заказов или их строк, построил бы по ним индексы, обновлял бы их в update() или insert() на основании значений аналитик, ну и добавил бы эти поля в XDS.
P.S. Старого RLS не было уже в DAX2012 по моему. В целом - мне его нисколько не жалко. XDS в DAX2012 иногда подлгюкивал на моей памяти, но он все равно был намного более стабильным и работоспособным чем RLS.
За это сообщение автора поблагодарили: EVGL (2).
Старый 14.03.2019, 13:53   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от fed Посмотреть сообщение
В такой ситуации, я бы аналитики продублировал в скрытые поля в таблице заказов или их строк, построил бы по ним индексы, обновлял бы их в update() или insert() на основании значений аналитик, ну и добавил бы эти поля в XDS
Так аналитика изначально была в строках(а форма заказов отображает шапки). Т.е. заказ показывается пользователю если есть хотя бы одна строка из того чем его подразделение торгует. Я не смог придумать как такое решить индексами и как вообще технически сделать подобную задачу. т.е. на каких-то объемах это просто начало тормозить. можно наверное как-то поиграться с материлизованными вью было
Старый 14.03.2019, 14:08   #5  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от trud Посмотреть сообщение
Так аналитика изначально была в строках(а форма заказов отображает шапки). Т.е. заказ показывается пользователю если есть хотя бы одна строка из того чем его подразделение торгует. Я не смог придумать как такое решить индексами и как вообще технически сделать подобную задачу. т.е. на каких-то объемах это просто начало тормозить. можно наверное как-то поиграться с материлизованными вью было
Ну при таком раскладе, надо было бы заводить отдельную таблицу с со списком имеющихся подразделений по заказу и при любом обновлении строки заказа, эту табличку обновлять. Ну а потом где-то в XDS прописывать exists join между заказом и этой таблицей. (Хотя честно говоря, я уже не помню как это делать. Я этим XDS пользовался всего пару раз и году в 2014-2015).
Старый 14.03.2019, 14:23   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от fed Посмотреть сообщение
Ну при таком раскладе, надо было бы заводить отдельную таблицу с со списком имеющихся подразделений по заказу и при любом обновлении строки заказа, эту табличку обновлять. Ну а потом где-то в XDS прописывать exists join между заказом и этой таблицей.
Так я о том и говорю, что exists join где условие накладывается на привязанную таблицу - это по сути полный скан таблицы заказов при открытии формы(т.е. ты находишь сначала по индексу записи в фильтрующей таблице, потом ищешь все заказы которые под это попадают(так так на формах обычно сортировка по коду заказа), сортируешь их, и выводишь первые 10. Это отлично работает на малых объемах, но начиная с сотни тысяч уже тормозит и никакими индексами это не победить
Старый 14.03.2019, 14:33   #7  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от trud Посмотреть сообщение
Так я о том и говорю, что exists join где условие накладывается на привязанную таблицу - это по сути полный скан таблицы заказов при открытии формы(т.е. ты находишь сначала по индексу записи в фильтрующей таблице, потом ищешь все заказы которые под это попадают(так так на формах обычно сортировка по коду заказа), сортируешь их, и выводишь первые 10. Это отлично работает на малых объемах, но начиная с сотни тысяч уже тормозит и никакими индексами это не победить
Это не обязательно полный скап таблицы заказов при открытии формы Сиквел может оказаться достаточно умным чтобы сначала отобрать записи в этой дополнительной таблице и потом уже результат заджойнить через nested look к таблице заказов. Более того - он может в этой дополнительнойтаблице отобрать первые 10 или 20 записей по нужному подразделению и потом их быстренько по кластерному ключу приджойнить nested loop к таблице заказов. Ну еще вариант - добавить в шапку заказа 10 или 15 полей с кодами подразделений и по всем им построить индексы. Вариант не особо блестящий, но тоже может сработать.
Старый 14.03.2019, 13:55   #8  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от trud Посмотреть сообщение
Ну я встречал только негативные последствия(хотя тут наверное ошибка выжившего, когда все хорошо мне об этом не расскзаывали), кейсы - это фильтр на приджойненную таблицу


Как раз один из негативных случаев. Решать подобные вещи очень сложно - т.е. в итоге клиент перетасовал роли и подразделения таким образом чтобы можно было фильтровать по полю из шапки заказа(первоначально была строка), ну и добавили поле в шапку. Хотя в первый год все работало замечательно
А старый Record level security остался в D365?
А кто говорит что легко? XDS самый простой вариант, с токи зрения реализации даже в 2012, а с екстеншенами в 365 цены ему нет. Как уже говорили выше, тормозит будет все с разной степенью тормознутости и к сожалению клиента не всегда удаётся переубедить.

RLS был в 2012, просто был не рекомендуемый . В 365 вроде прибили.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Managing Product Safety Data Sheets in Dynamics 365 for Finance & Operations Blog bot DAX Blogs 0 29.03.2018 02:28
atinkerersnotebook: Creating New Customer Notifications for Dynamics 365 for Operations using Flow and the Common Data Service Blog bot DAX Blogs 0 15.12.2016 22:12
NAV Team: Upgrading from Microsoft Dynamics NAV 2009 R2 or Microsoft Dynamics NAV 2009 SP1 to Microsoft Dynamics NAV 2015 Blog bot Dynamics CRM: Blogs 0 23.02.2015 13:00
NAV Team: How to: Set up your Microsoft Dynamics NAV installation for Single Sign-on with Office 365 using Windows PowerShell Blog bot Dynamics CRM: Blogs 0 19.12.2013 15:10
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 14 Blog bot Dynamics CRM: Blogs 0 12.07.2013 07:13

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:46.