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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.03.2013, 16:48   #1  
McArrow is offline
McArrow
Участник
 
45 / 38 (2) +++
Регистрация: 18.05.2009
Delete actions не работают по невидимым полям
Здравствуйте, коллеги.

Проблема (была):

В системе имеется пара таблиц, связанных Relation по EDT. В подчинённой таблице были обнаружены записи, для которых нет соответствующих записей в главной таблице. Как выяснилось, на главной таблице настроен Delete action с типом cascade на подчинённую. Теоретически, в случае удаления записей из главной таблицы через интерфейс, соответствующие записи в подчинённой должны были удаляться автоматически. Однако в некоторых случаях этого не происходило.

Если одновременно:
- у пользователя настроен доступ непосредственно на эти таблицы (доступ выдан на таблицы, на соответствующий им Security Key - нет);
- поле, являющееся внешним ключом в подчинённой таблице, имеет аттрибут Visible = no;
то delete actions по этому relation не работают в принципе (никакие).

Очень неожиданное поведение, на мой взгляд. Вообще, в системе много мест, где подобным образом настроены поля. При настройке прав доступа - мина с замедленным действием.

Может я хотфикс какой пропустил? Или мануал не дочитал?

В приложении приведён демо-проект, демонстрирующий данную "фичу".

проверено на DAX4 SP2. Может кто-нибудь проверит на 2009?
Вложения
Тип файла: xpo SharedProject_MDL_DACascadeTest.xpo (12.2 Кб, 360 просмотров)
За это сообщение автора поблагодарили: mazzy (2), Logger (3), S.Kuskov (1).
Старый 02.03.2013, 01:05   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
doDelete() не влияет на все это дело?
Старый 02.03.2013, 08:39   #3  
McArrow is offline
McArrow
Участник
 
45 / 38 (2) +++
Регистрация: 18.05.2009
Сперва тоже подумал, что удаляется из кода по dodelete(), но ничего подобного не нашёл. И на заведомо чистом тестовом примере воспроизводится (по крайней мере у меня).
Старый 02.03.2013, 09:58   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
На AX2009 не воспроизвелось.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Using skipDeleteActions with doDelete still calls the delete actions Blog bot DAX Blogs 0 18.05.2011 19:12
axzaptech: Delete Action Blog bot DAX Blogs 0 07.02.2011 16:11
Axilicious:AIF: Service actions lost after recreating service Blog bot DAX Blogs 0 28.01.2011 23:14
Исследование - Как работают разные типы Delete Actions. sguryev DAX: База знаний и проекты 1 10.05.2002 15:46
Отображение связных таблиц. Сплиттер. Автоувеличение индекса. Delete Action. sguryev DAX: База знаний и проекты 0 14.12.2001 06:15

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

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

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