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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.06.2016, 10:31   #1  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
View и виртуальная компания
Добрый день.
Возникла проблема, есть виртуальная компания, в нее добавлены 2 компании, пытаюсь создать вьюху на основе запроса, в который добавлена только таблица InventTable. В итоге, в представлении вижу все записи задвоенными.
В чем может быть проблема?

Есть ощущение, что это из-за настройки виртуальной компании, т.к. завпрос на создание вьюхи в SQL выглядит немного странно:

CREATE VIEW [dbo].[COMP_TMP] AS SELECT T1.ITEMID AS ITEMID,T1.ARTICLE AS ARTICLE,T1.PARTITION AS ITEMPARTITION,T1.DATAAREAID AS DATAAREAID,T1.PARTITION AS PARTITION,T1.RECID AS RECID
FROM (SELECT VIRT.ID AS DATAAREAID ,T1.ITEMID,T1.ARTICLE,T1.PARTITION,T1.RECID FROM INVENTTABLE T1 INNER JOIN VIRTUALDATAAREALIST VIRT ON T1.DATAAREAID = VIRT.VIRTUALDATAAREA UNION ALL SELECT T1.DATAAREAID ,T1.ITEMID,T1.ARTICLE,T1.PARTITION,T1.RECID FROM INVENTTABLE T1 INNER JOIN DATAAREA DAT ON (T1.DATAAREAID = DAT.ID AND DAT.ISVIRTUAL = 0)) T1 WHERE (DATAAREAID=N'comp')

Версия Ax12 R2
Старый 01.06.2016, 13:15   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,670 / 1188 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Скорее всего, у Вас код виртуальной и физической компании одинаковый. Что возвращает вот такой запрос

X++:
select * from VIRTUALDATAAREALIST where id = N'comp' OR VIRTUALDATAAREA = N'comp'

Если получили запись, у которой ID = VIRTUALDATAAREA, то в запросе для View оставьте только UNION, но уберите опцию ALL, чтобы исключить дубли
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 01.06.2016 в 13:18.
Старый 01.06.2016, 13:25   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,670 / 1188 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Да, для справки

Если таблица сначала относилась к физической компании, а потом была виртуализирована (или наоборот), то записи с устаревшим значением поля DataAreaId не удаляются. Хотя и не отображаются в обозревателе таблицы или в формах из-за наложенного фильтра по коду компании

Вам надо просто физически удалить устаревшие данные из таблицы InventTable. С не корректным значением DataAreaId
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 01.06.2016, 13:27   #4  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Возвращает 2 записи:
ID - COMP, VIRTUALDATAAREA - CMPH
ID - comp, VIRTUALDATAAREA - CMPH

с разным Partition
Старый 01.06.2016, 13:30   #5  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Если получили запись, у которой ID = VIRTUALDATAAREA, то в запросе для View оставьте только UNION, но уберите опцию ALL, чтобы исключить дубли
А как можно редактировать эту часть запроса, ведь Аксапта ее сама формирует?
Старый 01.06.2016, 13:57   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,670 / 1188 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от iglu Посмотреть сообщение
Возвращает 2 записи:
ID - COMP, VIRTUALDATAAREA - CMPH
ID - comp, VIRTUALDATAAREA - CMPH

с разным Partition
Ну, собственно, это и причина возникновения дублей. Вам надо выяснить являются ли все значения Partition актуальными (по списку в таблице Partitions).

1. Если какое-то значение не существует, то эту запись надо удалить
2. Если все значения рабочие, то необходимо в условие отбора Where добавить указание на конкретное значение Partition кроме значения DataAreaId. Хотя, теоретически, это должно выполняться автоматически
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: iglu (1).
Старый 01.06.2016, 14:31   #7  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Да, помогло, убрал лишний Partition и дубли из вьюхи пропали.
Спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxhints: How to restrict view datasource fields Blog bot DAX Blogs 0 22.03.2016 09:11
emeadaxsupport: AX Content: Using Power View with Dynamics AX Blog bot DAX Blogs 0 17.09.2013 01:12
dynamicsaxbi: Better together: Microsoft Dynamics AX 2012 R2 and SQL Server Power View Blog bot DAX Blogs 0 12.12.2012 13:11
Начальная компания при входе в систему lev DAX: Администрирование 5 28.12.2011 12:50
Виртуальная компания и InventDim kashperuk DAX: Администрирование 7 26.10.2006 00:53

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

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

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