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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.02.2014, 15:22   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
? AX 2012 R2: как лучше ссылаться на договор в своих модификациях?
В локализованной AX 2012 R2 имеется следующее:
  • стандартная таблица AgreementHeader и связанный с ней функционал. Первичный ключ на таблице - суррогатный, альтернативного ключа нет;
  • стандартные таблицы SalesAgreementHeader и PurchAgreementHeader, являющиеся наследниками AgreementHeader. Первичный ключ на них - суррогатный, но на каждой таблице есть еще альтернативный ключ - SalesNumberSequence + SellingLegalEntity и PurchNumberSequence + BuyingLegalEntity, соответственно; иными словами, в стандартном приложении предполагается, что SalesAgreementId/PurchAgreementId уникальны лишь для того или иного контрагента;
  • локализаторская таблица AgreementHeaderExt_RU, не являющаяся наследником AgreementHeader и ссылающаяся на нее по RecId. Первичный ключ - суррогатный, но есть альтернативный ключ - AgreementId. Еще есть производные от нее таблицы SalesAgreementHeaderExt_RU и PurchAgreementHeaderExt_RU, но с точки зрения хранения ссылок на договор их наличие ничего особо не меняет. NB! индекс по ссылке на AgreementHeader.RecId в локализаторской таблице зачем-то сделан неуникальный, хотя по всем признакам кардинальность связи двух таблиц при включенной локализации должна быть 1:1;
  • локализаторские же таблички вроде SalesTable_RU/PurchTable_RU, которые ссылаются на AgreementHeaderExt_RU.RecId;
  • куча локализаторского функционала, которая также использует ссылку на AgreementHeaderExt_RU.RecId;
  • некий общий подход к использованию суррогатных ключей в качестве первичных и, как следствие, ссылок на сущности по суррогатному ключу (RecId);
  • строки журналов ГК, в которых - единственных, кажется - ссылки на договора для счета/кор.счета реализованы локализаторами через строковый AgreementId, а не через суррогатный ключ.
Чего хочется:
  1. использовать в своих модификациях унифицированный подход для ссылок на договоры
  2. использовать в своих модификациях как стандартный, так и локализаторский функционал, работающий с договорами, с минимумом дополнительных телодвижений
  3. нормально пользоваться стандартным функционалом просмотра подробных сведений там, где есть ссылка на договор
  4. нормально пользоваться стандартным функционалом reference group для выбора договоров и отображения дополнительных полей из них на формах, где в источниках данных есть ссылка на договор
  5. обязательно отображать на формах и в отчетах текстовый идентификатор как минимум клиентских договоров
  6. при ручном выборе договора дать возможность пользователям сужать выборку по группам договоров (AgreementClassification)
  7. уметь нормально вводить ссылку на договор в диалогах, т.е. через unbound-контролы
  8. на некоторых формах - фильтровать записи по названию групп договоров (AgreementClassification.Name)
  9. при всем при этом не плодить шибко много join'ов и не утяжелять запросы, а если и плодить join'ы, то опять же максимально за счет стандартных средств и возможностей (reference data sources, navigation methods, etc)
Какой подход к реализации ссылок на договоры в "своих" таблицах , по-вашему, лучше выбрать с учетом описанных хотелок и имеющихся в стандарте особенностей реализации? AgreementHeaderExtRecId_RU вроде всем хорош, но не вполне удовлетворяет требованиям 3, 4, 8, 9. AgreementHeaderRecId более симпатичен, но не вполне удовлетворяет требованиям 2, 5 (если неизвестно, клиентский у нас договор или поставщический), 7. Как вы дорабатываете (если дорабатываете) стандартную схему данных договоров с учетом локализации? Возможно, в хотелках не указано явно что-то важное с учетом особенностей реализации договоров в стандартном приложении, если так, то что именно?
За это сообщение автора поблагодарили: Logger (3), S.Kuskov (10), Yrich (1).
Старый 07.02.2014, 10:31   #2  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
иными словами, в стандартном приложении предполагается, что SalesAgreementId/PurchAgreementId уникальны лишь для того или иного контрагента;
можно уточню: по этим полям уникальность в рамках компании, в моем понимании
__________________
С уважением, Вячеслав.
Старый 07.02.2014, 11:51   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Нет, договора хранятся в 2012 R2 без разделения по компаниям, т.е. они общие для всего partition'а, равно как и DirPartyTable. Таким образом, значения SalesAgreementId/PurchAgreementId уникальны в разрезе контрагентов для всех компаний partition'а.
Старый 07.02.2014, 13:54   #4  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
наверное мы одно и то же имели ввиду
Миниатюры
Нажмите на изображение для увеличения
Название: contract.JPG
Просмотров: 423
Размер:	31.3 Кб
ID:	8718  
__________________
С уважением, Вячеслав.
Старый 13.01.2018, 10:21   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Подскажите, пожалуйста, на каком варианте вы остановились в итоге. Что оказалось удобнее на практике?
За это сообщение автора поблагодарили: rumpleteazer (1), Logger (1).
Старый 20.09.2018, 11:32   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Всем привет.
В данной тебе это возможно оффтопик, но спрошу.

Есть много старого самописного функционала обращающегося на чтение к договорам.
Есть идея сделать в 2012-й вьюху RContractTable. Старый функционал и не заметит, что что-то поменялось.

Кто-нибудь так пробовал делать ?
Старый 12.09.2019, 17:28   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Ну и, через год тоже попробую спросить:
Цитата:
Подскажите, пожалуйста, на каком варианте вы остановились в итоге. Что оказалось удобнее на практике?
Теги
ax2012r2, ax2012r3, договор, как правильно, локализация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Sustained Engineering: Announcing Compatibility Certification: Lync 2013 with AX 2012 R2 and AX 2012 ; BizTalk 2013 with AX 2009 SP1 Blog bot DAX Blogs 0 15.12.2013 02:18
mfp: AX 2012 R2 CU7 has been released! Blog bot DAX Blogs 14 26.11.2013 12:12
Dynamics AX Sustained Engineering: Announcing Compatibility Certification: Lync 2013 with AX 2012 R2 and AX 2012 ; BizTalk 2013 with AX 2009 SP1 Blog bot DAX Blogs 0 17.09.2013 07:13
DAX: Enabling Power View on Multidimensional Models for Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 0 27.06.2013 06:16
dynamics-ax: Interview with Microsoft's Lachlan Cash on his new role, AX 2012 and more Blog bot DAX Blogs 6 22.04.2011 14:55

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

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

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