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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.07.2019, 11:49   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
Смотрю я в код и думку гадаю...
Либо я чего-то не понимаю, либо одно из двух.

Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?

Я понимаю, что так программистам ядра удобнее. Но Dynalink существует давно, еще с домайкрософтовских времен. Тогда вроде старались делать для разработчиков бизнес-логики.

Зачем создатели Аксапты сделали два набора методов для работы с линками и с диналинками?
__________________
полезное на axForum, github, vk, coub.
Старый 12.07.2019, 12:33   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,860 / 3109 (111) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Легко.

Сам такое использовал.
Был пример, кажется с адресами.
Формочка
DS1 inner join DS2

При открытии формы анализировался args.Record() и вешался dynalink между args.Record() и DS2.
Link был изначально между DS2 и DS1 из-за inner join
Старый 12.07.2019, 12:56   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Господи...
обратите внимание, в вопросе нет "можно ли сделать?", в вопросе нет "как сделать". В вопросе нет даже "делали ли вы сами".

Можно я повторю вопрос?
Цитата:
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
__________________
полезное на axForum, github, vk, coub.
Старый 12.07.2019, 13:13   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,860 / 3109 (111) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
А вы с какой целью интересуетесь ?
Я думаю можно много разных задачек напридумать.
Это же просто инструмент.
Старый 12.07.2019, 14:22   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение

Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
Чтобы динамически связать форму с формой в которой квери содержит джоин. Например открываешь форму номенклатуры из нее видишь спецформу где сроки инвойсов вместе с информацией из самих инвойсов. Перемещаясь по номенклатуре меняем фильтр по ней по строкам. У строк линк на инвойсы и дайналинк на буфер айтема номенклатуры.

Почему два набора методов? Тут два ответа, во-первых линк и дайналинк это разные сущности - линк связывает два источника данных внутри запроса, дайналинк, связывает источник данных с буфером записи не обязательно входящим в запрос. Во-вторых, наверное, было проще приделать методов к существу классу на C++ чем сделать коллекции links и dynalinks с одинаковым набором методом кроме добавления - там все так.
Старый 13.07.2019, 07:13   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
А вы с какой целью интересуетесь ?
Чтобы понять. Как всегда.

Цитата:
Сообщение от Logger Посмотреть сообщение
Я думаю можно много разных задачек напридумать.
ну, хоть одну?

Цитата:
Сообщение от belugin Посмотреть сообщение
Чтобы динамически связать форму с формой в которой квери содержит джоин. Например открываешь форму номенклатуры из нее видишь спецформу где сроки инвойсов вместе с информацией из самих инвойсов. Перемещаясь по номенклатуре меняем фильтр по ней по строкам. У строк линк на инвойсы и дайналинк на буфер айтема номенклатуры.
связь датасорса с внешним датасорсом - dynalink
связь датасорса с датасорсом на этой форме с типом Delay - dynalink
связь датасорса с датасорсом на этой форме с остальными типами - link

одновременно на одном датасорсе то когда они требуются?
__________________
полезное на axForum, github, vk, coub.
Старый 13.07.2019, 08:25   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение

одновременно на одном датасорсе то когда они требуются?

Как раз в том сообщении, на которое ты отвечаешь, я привел пример.
Старый 13.07.2019, 08:38   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Как раз в том сообщении, на которое ты отвечаешь, я привел пример.
Нет там примера где dynalink и link требуются ОДНОВРЕМЕННО на одном датасорсе.

Цитата:
Сообщение от belugin Посмотреть сообщение
Чтобы динамически связать форму с формой в которой квери содержит джоин. Например открываешь форму номенклатуры из нее видишь спецформу где сроки инвойсов вместе с информацией из самих инвойсов.
Код:
внешняя форма
└датасорс: номенклатура

спецформа
└датасорс: строки инвойсов (dynalink: номенклатура)
 └датасорс: шапки инвойсов (link: строки инвойсов)
Легко видеть, что dynalink и link на разных датасорсах.

Если я чего не понимаю, раскрой свою мысль подробнее.
или просто приведи скриншот с запросом

напомню свой вопрос полностью:
Цитата:
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
__________________
полезное на axForum, github, vk, coub.
Старый 13.07.2019, 09:02   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Код:
спецформа
└датасорс: строки инвойсов (dynalink: номенклатура)
 └датасорс: шапки инвойсов (link: строки инвойсов)
> Легко видеть, что dynalink и link на разных датасорсах.

Ок. Пусть так.

Теперь нам надо использовать эту удобную форму но вызывать ее из формы поставщиков. Мы в init добавляем addDynalink на шапки инвойсов и шапки линкуются к строкам через линк а к поставщикам через дайналинк.
Старый 13.07.2019, 09:19   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
но вызывать ее из формы поставщиков.
в этом случае запрос будет выглядеть так:
Код:
внешняя форма
└датасорс: поставщики

спецформа
└датасорс: шапки инвойсов (dynalink: поставщики)
 └датасорс: строки инвойсов (link: шапки инвойсов)
наверное, я плохо выделил слово ОДНОВРЕМЕННО.
повторяю исходный вопрос:
Цитата:
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 13.07.2019 в 09:26.
Старый 13.07.2019, 09:35   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
в этом случае запрос будет выглядеть так:
Код:
спецформа
└датасорс: шапки инвойсов (dynalink: строки поставщики)
 └датасорс: строки инвойсов (link: шапки инвойсов)
За счёт чего в в той же самой форме поменяется порядок источников данных для вызова из другого места?

Цитата:
и я плохо выделил слово ОДНОВРЕМЕННО?
Нет ты просто сначала поменял порядок источников данных в моем примере а потом поменял их обратно. Я, кстати, не знаю, заработает ли дайналинк на неглавный источник данных, но потенциальная возможность есть.
Старый 13.07.2019, 10:22   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
За счёт чего в в той же самой форме поменяется порядок источников данных для вызова из другого места?
по-нормальному, тот же программист-орел, что добавляет dynalink на внутренние датасорсы.

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

Я накидал макетик на ax2012 и ax2009.

получается, что диналинк можно добавить вручную в коде на внутреннюю таблицу. и он даже будет работать. см. приложенный проект и скриншоты с одновременным существованием ветки dynalink и relation.

получается, что одновременно эти линки нужны только для решения технических задач в ходе расширения функционала? когда вместо рисования нормальной формы нужно подлезть в существующую?

но такой способ решения, насколько я понимаю, совершенно не подходит в современных условиях закрытого кода. акс8 даже открывать не хочу, потому что слишком долго открывается и слишком медленно работает. И тоже не знаю как это будет работать.

ок, согласен, что исходный вопрос нужно уточнить: Для решения каких бизнес-задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
Миниатюры
Нажмите на изображение для увеличения
Название: screenshot.PNG
Просмотров: 105
Размер:	49.0 Кб
ID:	12342   Нажмите на изображение для увеличения
Название: init.PNG
Просмотров: 260
Размер:	64.6 Кб
ID:	12344  

Вложения
Тип файла: xpo __TestDynaLink.xpo (13.8 Кб, 104 просмотров)
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 13.07.2019 в 10:25.
Старый 13.07.2019, 10:46   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mazzy Посмотреть сообщение
Я накидал макетик на ax2012 и ax2009.
Уточнил макетик.

Раньше я лихо использовал innnerJoin между датасорсами спец-формы.
Одумался и сделал вариант с DelayedJoin.

Конечно же в варианте в delayed join нет одновременного dynalink и link.
Конечно же в варианте в delayed join работает совсем не так как ожидает пользователь - фильтрует только внутреннюю таблицу, а шапки оставляет нетронутыми.

В общем, очень спорный прием разработки.
Мне кажется, что на проекте такой способ приведет к большим проблемам, нежели сделать еще одну форму.
Миниатюры
Нажмите на изображение для увеличения
Название: screenshot.PNG
Просмотров: 109
Размер:	56.4 Кб
ID:	12345   Нажмите на изображение для увеличения
Название: init.PNG
Просмотров: 52
Размер:	66.6 Кб
ID:	12346  

Вложения
Тип файла: xpo __TestDynaLink.xpo (20.9 Кб, 250 просмотров)
__________________
полезное на axForum, github, vk, coub.
Старый 13.07.2019, 11:27   #14  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение

Раньше я лихо использовал innnerJoin между датасорсами спец-формы.
Одумался и сделал вариант с DelayedJoin.
Могут быть разные задачи. Например, если мы хотим видеть данные строк и шапок в одном гриде, то нужен иннер.

Кстати, интересно, что получится если сделать exists join и на второй датасурс навесить дайналинк. ( Мы хотим например увидеть не в одном гриде а в двух, но чтобы шапки фильтровались но наличию строк с текущей номенклатурой)

Цитата:

В общем, очень спорный прием разработки.
Мне кажется, что на проекте такой способ приведет к большим проблемам, нежели сделать еще одну форму.
Я думаю это зависит от сложности формы. Если там много всего, возможно, проще поддерживать одну сложную форму чем две сложных формы. Причем продублировать форму просто в сравнении с тем, чтобы объединить две формы в одну.

Кстати, не факт что кто-то вообще думал о таких сценариях -просто есть две концептуально ортогональных возможности и их одновременное применение не запретили. Как в paint можно залить холст черным и рисовать по нему черным карандашом.
Старый 13.07.2019, 11:52   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mazzy Посмотреть сообщение
Для решения каких бизнес-задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
Цитата:
Сообщение от belugin Посмотреть сообщение
Могут быть разные задачи. Например, если мы хотим видеть данные строк и шапок в одном гриде, то нужен иннер.
пока выявляются только технические задачи, связанные с программированием.
ни разу не видал пользователя, который ставил бы задачу именно так "в одном гриде".

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



Цитата:
Сообщение от belugin Посмотреть сообщение
Я думаю это зависит от сложности формы. Если там много всего, возможно, проще поддерживать одну сложную форму чем две сложных формы. Причем продублировать форму просто в сравнении с тем, чтобы объединить две формы в одну.
надо подумать.

Цитата:
Сообщение от belugin Посмотреть сообщение
Кстати, не факт что кто-то вообще думал о таких сценариях -просто есть две концептуально ортогональных возможности и их одновременное применение не запретили.
А вот с этим готов согласиться.
Собственно вопрос то отсюда и сформулировался - есть ли какие-нибудь признаки у хотелок пользователя, которые однозначно указывают что необходим и dynalink, и link.

из этих признаков наверное можно получить понимание что такое dynalink и link. и чем они отличаются. из этого понимания наверное можно получить понимание чем аксапта отличается от других систем. выйти на приемы применения аксапты. и на понимание как решают задачу другие системы.

пока не вижу ничего, кроме технического - dynalink это delayed link.
но такое проще было бы реализовать параметрами линка, а не отдельным механизмом.
возможно еще что-то есть, чего я в упор не понимаю.

поэтому вопрос:
Для решения каких бизнес-задач могут потребоваться ОДНОВРЕМЕННО и dynalink (=delayed link), и обычный link на одном датасорсе?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 13.07.2019 в 11:54.
Старый 13.07.2019, 12:39   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
ни разу не видал пользователя, который ставил бы задачу именно так "в одном гриде".
Я какие-то такие формы делал. Наверное пользователи говорят что-то типа "мы хотим видеть тут вот это и вот это и мы не хотим каждый раз тыкать чтобы увидеть поля связанные с другой строкой, а ещё мы хотим Эксель и фильтр по тому, что видим".
Старый 13.07.2019, 14:56   #17  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,158 / 1286 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Не думаю, что тут какая-то серьёзная задумка архитекторов.
Понятно, что связь между датасорсами разных форм (dynalink) и inner (и аналогичными) связями между датасорсами одной формы несколько разные и тут различие между dynalink и link есть. Но внутри формы со связями типа delayed (и аналогичными) большой разницы между двумя линками не особенно важна.
На мой взгляд, внутренности для этих случаев внутри формы одинаковые, поэтому реализовано одним кодом, соответственно и программный интерфейс общий и использование того или иного способа просто разделяется концептуально, а не как-то жестко по правилам.
Старый 13.07.2019, 15:13   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Я какие-то такие формы делал.
думаю, что все делали какие-то такие формы.
могу даже предположить что это формы, связанные с DirParty или с сопоставлением (custVendSettlement).
это не ответ и не критерий.

поэтому вопрос сформулирован так как сформулирован
Цитата:
Сообщение от mazzy Посмотреть сообщение
обратите внимание, в вопросе нет "можно ли сделать?", в вопросе нет "как сделать". В вопросе нет даже "делали ли вы сами".

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Не думаю, что тут какая-то серьёзная задумка архитекторов.
возможно.

можно зайти с другой стороны - есть ли аналог Dynalink в других системах/фреймворках? Если нет, то как обходятся без него?
__________________
полезное на axForum, github, vk, coub.
Старый 13.07.2019, 22:10   #19  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,271 / 3465 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Dynalink в том виде, в котором он был задуман в ещё домикрософтовской Аксапте - по определению не может работать в D365FO, т.к. в D365FO нельзя в одном окне браузера открыть две формы.
Но (!!!) Механизм Dynalink преобразовался в механизм автообновления Form Part, которых на форме может быть много.

Поэтому отвечая на вопрос - есть ли аналог механизма Dynalink, который остался в D365FO в других системах / фреймворках - можно ответить - да, конечно есть. Как минимум в тех случаях, когда есть что-то аналогичное Form Part.

К примеру, если включить в Word-е область навигации, то перемещаясь по страницам - можно увидеть, как перемещается выделение по области навигации. В некотором смысле - это аналог Form Part-ов в D365FO
__________________
Возможно сделать все. Вопрос времени
Старый 14.07.2019, 13:22   #20  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение

можно зайти с другой стороны - есть ли аналог Dynalink в других системах/фреймворках? Если нет, то как обходятся без него?
Надо искать master detail <название фреймворка> вот, например wpf + ef https://dotnetstories.wordpress.com/...ity-framework/ - мы связываем контрол с подчинённым путем в контексте данных

В Дельфи тоже можно было так делать ближе к тому как источники данных в аксапте связаны - у дитейла (насколько я могу помню, там как раз линков не было, одни дайналинки. Хочешь сложный квери - пиши sql ) http://delphiru.ru/databese/312-master-detail-tquery
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
How to link two tables on the form via DynaLink Blog bot DAX Blogs 0 15.12.2017 18:11
dynamicsax-fico: Link multiple Management Reporter reports Blog bot DAX Blogs 0 20.01.2017 09:11
Khue Trinh: Setting up a link between a financial dimension and the site inventory dimension Blog bot DAX Blogs 0 27.09.2010 13:05
axaptapedia: Tutorial Form Dynalink Blog bot DAX Blogs 0 22.08.2007 23:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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