02.04.2008, 12:54 | #1 |
Заноза в заднице
|
Задачка на построение кода
Прошу помощи прежде всего в осознании сути связей сущностей посредством отношений. Но для наглядности предложу пример задачи, которую требуется решить...
Итак, имеем сущность "Прайс-лист", которую мы догадались использовать как сущность группировки продуктов - создания продуктовых групп. А так как у нас все менеджеры по продажам отвечают за продажи какой-либо одной продуктовой группы, то логично, что было создано отношение: один Прайс-лист - множество Пользователей. Мы успешно распределили всех менеджеров по прайс-листам - тут всё в порядке, но перед нами встала весьма элементарная задача казалось бы - при создании нового действия, подставлять в поле "В отношении", тот прайс-лист, который закреплен за ответсвенным менеджером. То есть, другими словами: известен менеджер (значение в поле Ответственный) - а исходя из этого нужно получить прайс-лист, в список менеджеров которого данный менеджер входит. По сути вроде бы ничего сложного - получаем из сущности Пользователь заданную запись, и в поле "Прайс-лист" имеем ссылку на искомую сущность(типа связь 1:N). Но вот ведь незадача: в связи с присутсвием возможности создания отношения N:N нам стало просто колоссально необходимо, чтобы пользователь мог входить в список менеджеров одновременно двух и более прайс-листов, а как строить запрос и к какой сущности в случае связи N:N - непонятно вообще. И непонятно же, как сей вопрос просветить из хэлпа к SDK? Уважаемые коллеги! Полагаюсь на Ваш опыт и знания в помощи при решении данной задачи!
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
02.04.2008, 16:32 | #2 |
Участник
|
А если связь делать со стороны прайс-листа?
|
|
02.04.2008, 16:43 | #3 |
Заноза в заднице
|
Хм... Весьма многозначительный ответ. Хотелось бы понять: как именно, если в прайс-листе связанная сущность - это в принципе таблица. То есть, нужно сначала получить атрибут, а потом из этого атрибута делать Retrieve, или с атрибутом делать Retrieve? Что делать-то собственно? Понятно, что откуда-то надо тянуть эту ниточку, но со стороны прайс-листа не понятно как это сделать...
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
02.04.2008, 16:55 | #4 |
Участник
|
Я имел ввиду попробовать развить тему со стороны прайс листа, (сделать с него связь 1:N)
|
|
02.04.2008, 16:57 | #5 |
Участник
|
В конце концов можно организовать фрэймик на пользователе, на нем грид с прайслистами. А на прайслисте лукап к пользователю.
|
|
02.04.2008, 17:03 | #6 |
Moderator
|
Опять занимаетесь извращениями, Likefire? Не совсем понял, как вы собираетесь связывать пользователей и прайс листы - создавать дополнительные связи между системными объектами невозможно. Для связи возможно использовать пользовательскую сущность "Менеджеры прайс листа". Она через многие к одному связана с сущностями "Прайс лист" и "Пользователь". Вот вам и связь многие ко многим. Запросы к ней стройте как обычно никаких проблем... Другое дело, что CRM позволит вам создать не все связи - есть запрет на создание отношений "многие ко многим" при некотором сочетании типов объектов.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
02.04.2008, 17:15 | #7 |
Участник
|
А что мешает создать связь многие ко многим между вашей сущьностью и прайс-листами, когда манагер будет создавать новую сущность, то все прайс-листы в отношении с которыми находится узер, будут добавлены к этому объекту! Как писать код я не знаю, но задача действительно интересная в плане кодинга! Нет пока опыта с 4-кой, но подозреваю что там промежуточные таблицы, а вот какими методами SDK к ним стучаться не знаю!
|
|
02.04.2008, 18:15 | #8 |
Заноза в заднице
|
Ээээ... Речь идет о четверке. Там можно создавать связь многие ко многим явно. Меня интересует именно то, что сказал SeregaK: я хочу понять, какими методами и как стучаться к таким сущностям. Кажется я понимаю, почему в тройке возможности создания отношений были ограничены - чтобы не создавать путаницу при необходимости получить выборку.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
03.04.2008, 14:01 | #9 |
Участник
|
Likefire по этой ссылке http://blogs.javista.com/2008/02/17/...-many-to-many/ вы найдёте ответ на ваш вопрос! =))
|
|
|
За это сообщение автора поблагодарили: Likefire (1). |
03.04.2008, 16:22 | #10 |
Заноза в заднице
|
Цитата:
Сообщение от SeregaK
Likefire по этой ссылке http://blogs.javista.com/2008/02/17/...-many-to-many/ вы найдёте ответ на ваш вопрос! =))
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
03.04.2008, 16:31 | #11 |
Участник
|
Не за что! ;-) Главное чтобы ограниения упомянутые Enot Poloskun позволили вам создать требуемые связи. Тогда решение задачи почти готово, а если нет, то тут пока вопрос!
Последний раз редактировалось SeregaK; 03.04.2008 в 16:34. |
|
03.04.2008, 16:42 | #12 |
Заноза в заднице
|
Все указанные ограничения справедливы для версии 3.0. В четверке я проверял все свои требования.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
03.04.2008, 17:00 | #13 |
Участник
|
В четвёрке их значительно меньше, но они есть!
|
|