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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.08.2008, 17:01   #1  
vadimiron is offline
vadimiron
Участник
 
24 / 10 (1) +
Регистрация: 16.12.2007
Связь VendInvoiceTrans и PurchLine
Как связать VendInvoiceTrans и PurchLine? По какому полю (полям)??
Задача: в репорте есть текущий vendInvoiceTrans - нужно вытащить его PurchLine, так как там дополнительная информация (ещё пара таблиц подключается).
Старый 28.08.2008, 17:05   #2  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
по полю InventTransId
За это сообщение автора поблагодарили: vadimiron (1).
Старый 28.08.2008, 17:15   #3  
vadimiron is offline
vadimiron
Участник
 
24 / 10 (1) +
Регистрация: 16.12.2007
А связь n:1 (то есть много VendInvoiceTrans к одному PurchLine)?
Старый 28.08.2008, 17:21   #4  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
он у вас найдет те строчки в которых есть этот лот, наверное, для надежности можно и еще и по ItemId добавить
__________________
Axapta book for developer
Старый 28.08.2008, 17:27   #5  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
По-моему, гораздо проще в вашем случае не тащить из VendInvoiceTrans PurchLine, а в методе VendInvoiceTrans.initFromPurchLine() скопировать в VendInvoiceTrans всю необходимую для построения будущих отчетов информацию и потом не париться связывая эти две таблицы.

Как они связаны ice уже ответил.
Старый 28.08.2008, 17:28   #6  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от petr Посмотреть сообщение
а в методе VendInvoiceTrans.initFromPurchLine() скопировать в VendInvoiceTrans всю необходимую для построения будущих отчетов информацию

Как они связаны ice уже ответил.
Денормализация
__________________
Axapta book for developer
Старый 28.08.2008, 17:30   #7  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
С учетом удаления закупок - денормализации нет.
__________________
Ivanhoe as is..
Старый 28.08.2008, 17:35   #8  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Просто работал в одной конторе где весь модуль состял из четырех одинаковых по архитектуре таблиц. И для составления отчета или добаавления фукционала надо было писать жобики, обновляя все эти таблицы. Соответственно для постоения отчета нужна была только одна из них на выбор
__________________
Axapta book for developer
Старый 28.08.2008, 17:41   #9  
vadimiron is offline
vadimiron
Участник
 
24 / 10 (1) +
Регистрация: 16.12.2007
У меня данная связь не проходит при создании View.
Создал datasource VendInvoiceTrans, в нём датасоурс PurchLine - соединил с помощью InventTransId - смотрю с помощью TableBrowser - нет ни одной записи, хотя таблицы по отдельности содержат много записей и многих InventTransId совпадает....не могу понять, почему View пустой
Старый 28.08.2008, 17:51   #10  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
Сообщение от MikeR Посмотреть сообщение
Денормализация
А это по-вашему всегда минус?

Цитата:
Сообщение от MikeR Посмотреть сообщение
Просто работал в одной конторе где весь модуль состял из четырех одинаковых по архитектуре таблиц. И для составления отчета или добаавления фукционала надо было писать жобики, обновляя все эти таблицы. Соответственно для постоения отчета нужна была только одна из них на выбор
Я отвечал не вообще, а в контексте двух конкретных таблиц, ваш же пример далек от изначальной темы.

Последний раз редактировалось petr; 28.08.2008 в 17:54.
Старый 28.08.2008, 17:52   #11  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Axapta 3.0 SP4 все работает
__________________
Axapta book for developer
Старый 28.08.2008, 17:54   #12  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от petr Посмотреть сообщение
А это по-вашему всегда минус?
отчего же ?
Да и по моему как то вы агресино начинаете...
Цитата:
Сообщение от petr Посмотреть сообщение
Я отвечал не вообще, а в контексте двух конкретных таблиц, ващ же пример далек от изначальной темы.
отчего же далек то?
__________________
Axapta book for developer
Старый 28.08.2008, 17:59   #13  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Цитата:
Сообщение от vadimiron Посмотреть сообщение
У меня данная связь не проходит при создании View.
Создал datasource VendInvoiceTrans, в нём датасоурс PurchLine - соединил с помощью InventTransId - смотрю с помощью TableBrowser - нет ни одной записи, хотя таблицы по отдельности содержат много записей и многих InventTransId совпадает....не могу понять, почему View пустой
А какую связь строки накладной со строкой закупки Вы хотели бы видеть, если провести строку закупки, например не полностью, а частично? Правильно сказал petr протаскивайте в транзакционные таблицы нужные Вам данные из первоисточника. Связывать в отчетах "чистовики"(строки накладных, проводки) с "черновиками" (строки закупок, журналов etc) противоречит архитектуре системы

update:

Впрочем, если уж очень нужна подобная связь, то похоже: VendInvoiceTrans->InventTrans->PurchLine

Последний раз редактировалось Lemming; 28.08.2008 в 18:04. Причина: ...
Старый 28.08.2008, 18:13   #14  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
Сообщение от MikeR Посмотреть сообщение
отчего же ?
Да и по моему как то вы агресино начинаете...
...
отчего же далек то?
Если оказалось агресивно, извиняйте, не хотел.

Вообщем, вы привели пример действительно излишней денормализации, и в этом действительно нет ничего хорошего. Но ветка про две конкретные таблицы VendInvoiceTrans и PurchLine, в контексте которых некоторая денормализация вполне логична и совершенно некритична.
Старый 28.08.2008, 18:16   #15  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
Сообщение от Lemming Посмотреть сообщение
update:

Впрочем, если уж очень нужна подобная связь, то похоже: VendInvoiceTrans->InventTrans->PurchLine
А вот так, по-моему, опасно. В InventTrans для одной VendInvoiceTrans может быть много проводок, если к каждой из них подцепится PurchLine, то будет ошибка, так как реально связь VendInvoiceTrans PurchLine n:1
За это сообщение автора поблагодарили: vadimiron (1).
Старый 28.08.2008, 18:24   #16  
vadimiron is offline
vadimiron
Участник
 
24 / 10 (1) +
Регистрация: 16.12.2007
Я нашёл проблему: во View есть опция Relations (YES | NO). Я ставил на YES и думал, что так будет использоваться связь, которая прописана во View, а оказалась, что берётся связь, определённая на таблице (там связь построена по другому, но там одни нули и я не соединишь там никак), а связь во View просто игнорируется!
Маразм!

Когда поставил NO и прописал связь через InventTransId - всё заработало как и ожидалось
Старый 28.08.2008, 18:27   #17  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Цитата:
Сообщение от petr Посмотреть сообщение
В InventTrans для одной VendInvoiceTrans может быть много проводок, если к каждой из них подцепится PurchLine, то будет ошибка, так как реально связь VendInvoiceTrans PurchLine n:1
Хмм...согласен, просто обычно связи в первую очередь проверяю создавая Query, в общем поторопился. В любом случае я противник смешивать данные из проводок и их источника. Не говоря о том, что в случае Аксапты, т.н. денормализация иногда неплохо выруливает производительность.
Старый 29.08.2008, 08:59   #18  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от petr Посмотреть сообщение
Но ветка про две конкретные таблицы VendInvoiceTrans и PurchLine, в контексте которых некоторая денормализация вполне логична и совершенно некритична.
Я просто убеждаюсь, что во всем хорошем надо знать меру. А пример я привет для vadimiron, чтоб не увлекался, бо и нормализация и денормализация это не панацея. Просто в одном случае имеем одну та табцицу на все случаи жизни, а в другом сложно строить всякие отчеты. Правда находится посередине.
Цитата:
Сообщение от vadimiron
Маразм!
Не совсем . Установка значения в Yes принуждает систему использовать те Relations, которые уже заранее определены на таблицах или расширенных типах. Но никто не мешаем вам использовать свои связи.
__________________
Axapta book for developer

Последний раз редактировалось MikeR; 29.08.2008 в 09:03.
За это сообщение автора поблагодарили: vadimiron (1).
Теги
join, нормализация бд

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Импорт строк PurchLine (через функционал) kaw DAX: Функционал 8 20.03.2008 14:49
Связь таблиц InventTrans и PurchLine Pustik DAX: Программирование 2 25.11.2004 12:23
Создние PurchLine с ед. измерения типа 'Склад' NJD DAX: Программирование 0 30.06.2004 10:53
Создние PurchLine NJD DAX: Программирование 4 22.06.2004 11:14
Связь двух таблиц daemon DAX: Программирование 10 20.11.2003 16:32
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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