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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.07.2009, 20:23   #1  
deo is offline
deo
DAX 3.0;4.0;5.0
 
4 / 10 (1) +
Регистрация: 28.07.2009
DeleteAction на Unit table
DeleteAction на Unit table для SalesQuotationLine не работает.
Создаем юнит, создаем sales quotation line c созданым юнитом (SalesUnit). Затем идем на юниты и удаляем созданный ранее юнит и... несмотря на то, что есть deleteAction (restricted) для SalesQuotationLine, юнит все равно удаляестя. Фишка в том, что у SalesQuotationLine есть еще одно поле наследуемое от EDT UnitId (PackingUnit) и система выбирает ЭТО поле, сравнивает значение с удаляемым юнитом (например, пустое поле) и наш юнит удален.
Если кто-нибудь сталкивался с подобной проблемой и решал ее, то поделитесь плиз.
Quick fix: ValidateDelete на Unit table, но это мне не оч нравится.
Kv: 4.0.2503.743; Av:4.0.2503.743.
Старый 28.07.2009, 21:22   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,322 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Есть еще вариант - сменить EDT у поля PackingUnit на EDT без Relation. В этом случае подцепится все правильно. Правда при этом потеряется лукап - но его можно попробовать сделать через Relation на таблице (с одиночным полем), а если и это не прокатит - то уж перекрытый метод lookup на форме и класс SysTableLookup всегда могут выручить.
Напрямую не сталкивался с этим, но сталкивался с тем, что то, что задевает модуль CRM как-то не отлажено что ли (явно не является предметом массового спроса). К примеру - без добавления полей с договорами - в предложения - трассировка стека вылезает и т.д. Поэтому - тут не так уж страшно попрограммировать
__________________
Возможно сделать все. Вопрос времени
Старый 29.07.2009, 08:09   #3  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Есть еще вариант - сменить EDT у поля PackingUnit на EDT без Relation. В этом случае подцепится все правильно. Правда при этом потеряется лукап - но его можно попробовать сделать через Relation на таблице (с одиночным полем)...
Если сделать Relation на таблице - то скорее всего будет тот же эффект, поскольку при Delete Action он тоже будет подхватываться.

Если нужно только переместить проверку по Delete Action c поля PakingUnit на SalesUnit, то по идее достаточно
создать Relation на таблице SalesQuotationLine (SalesQuotationLine.SalesUnit == Unit.UnitId).
Если же нужно сделать так, чтобы проверялись оба поля, то тут без программирования видимо не обойтись, поскольку по всей видимости при проверке Delete Action
(в случае отсутствия на таблицах Relation), AX ищет первое поле с данным EDT и проверяет его.

P.S. К слову, по таблице UnitConvert тоже есть Delete Action, только Cascade, так вот, удаляются только те записи, у которых в поле FromUnit установлена данная единица.

Также можно настроить constraint на уровне СУБД.
__________________
Sergey Nefedov
Старый 29.07.2009, 12:53   #4  
deo is offline
deo
DAX 3.0;4.0;5.0
 
4 / 10 (1) +
Регистрация: 28.07.2009
Спасибо за ответы.
Выбран вариант с SalesQuotationLine (SalesQuotationLine.SalesUnit == Unit.UnitId).
По двум полям все равно не работает так как это стандартное поведение аксапты. Из двух полей будет выбираться то, у которого ID меньше.
Теги
deleteaction

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
PatrickChua: Temporary table Blog bot DAX Blogs 0 04.05.2009 14:05
axaptapedia: Table Methods Generator Blog bot DAX Blogs 0 13.02.2009 02:05
mfp: Late night discussions on software development #3: Unit testing Blog bot DAX Blogs 6 17.03.2008 12:01
Axapta Lessons: Export a table to a file Blog bot DAX Blogs 0 28.10.2006 18:22
PatrickChua: Temporary table Blog bot DAX Blogs 0 28.10.2006 18:14

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

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

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