22.06.2010, 11:46 | #1 |
Участник
|
Создание группы записей
Доброго времени суток! Была поставлена следующая задача:
Имеется пользовательская сущность new_web, в которой несколько десятков/сотен записей. Необходимо, чтобы какой либо пользователь мог выделить несколько записей этой сущности, нажать на кнопку на тулбаре в CRM и тем самым сформировать группу записей обозвав ее как захочет. Данная группа должна быть доступна затем для редактирования, то есть чтобы можно было добавлять или удалять записи группы. То есть как я думаю эти группы должны появляться в другой пользовательской сущности. Но как именно это реализовать в рамках CRM? |
|
22.06.2010, 12:03 | #2 |
Участник
|
Ну а в чем проблема-то?
Создаете новую сущность new_webgroup. Между сущностями new_web и new_webgroup создаете связь N:1. Таким образом у Вас в сущности new_web появится лукап new_webgroupid. А дальше по кнопке "Сформировать группу" создаете новую запись new_webgroup и записываете ее GUID во все выбранные new_web в поле new_webgroupid. Можно одними скриптами обойтись, а можно и свой веб-сервис для этого написать.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
22.06.2010, 12:08 | #3 |
Участник
|
Но в таком случае один объект new_web будет использоваться только в одной группе new_webgroupid. То есть при желании другого пользователя добавить в свою группу запись, которая уже используется в какой-то другой группе, значение поля лукап на этой записи изменится на последнее по нажатию на кнопку "Сформировать группу". Или я не прав?
|
|
22.06.2010, 12:18 | #4 |
Участник
|
Цитата:
Сообщение от Tarasov E
Но в таком случае один объект new_web будет использоваться только в одной группе new_webgroupid. То есть при желании другого пользователя добавить в свою группу запись, которая уже используется в какой-то другой группе, значение поля лукап на этой записи изменится на последнее по нажатию на кнопку "Сформировать группу". Или я не прав?
Ну если Вам надо, чтобы один new_web мог добавляться в несколько групп, тогда используйте связь N:N. Правда, связывать new_web и new_webgroup надо будет уже не через лукап, а через AssociateEntitiesRequest.
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
|
За это сообщение автора поблагодарили: Tarasov E (1). |
22.06.2010, 12:46 | #5 |
Moderator
|
Технически реализовать это не сложно. По нажатию кнопки в гриде, скрипт может получить идентификаторы отмеченных записей и передать их вашему диалогу создания новой группы. Пример, хотя и очень туманный, есть в SDK: Capturing the GUID Values of Records Selected in a Grid. Далее создаем новую группу и в цикле ассоциируем записи, как сказал Денис. При желании можно только скриптами формы обойтись.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional Последний раз редактировалось Артем Enot Грунин; 22.06.2010 в 12:56. |
|
|
За это сообщение автора поблагодарили: Tarasov E (1). |
23.06.2010, 10:38 | #6 |
Участник
|
Пока решил создать новую сущность new_webgroup и связать с ней new_web как N:N. Так же в "Сведения" поместил пункт "Субъекты", куда и добавил интересующие меня записи, тем самым сформировал группу. Тоесть теперь с записью "Центральный регион" у меня есть группа связанных субъектов, с которых мне нужно выдрать значения определенных полей по нажатию на кнопку. Не подскажете как их получить?
|
|
23.06.2010, 10:45 | #7 |
Чайный пьяница
|
Цитата:
Сообщение от Tarasov E
Пока решил создать новую сущность new_webgroup и связать с ней new_web как N:N. Так же в "Сведения" поместил пункт "Субъекты", куда и добавил интересующие меня записи, тем самым сформировал группу. Тоесть теперь с записью "Центральный регион" у меня есть группа связанных субъектов, с которых мне нужно выдрать значения определенных полей по нажатию на кнопку. Не подскажете как их получить?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
23.06.2010, 10:57 | #8 |
Moderator
|
Как бы я это реализовывал... Создал новый тип записей: "Группа фильтров". По нажатию на кнопку:
1. Проверял есть ли выбранные записи. Для этого не обязательно открывать новый диалог, можно использовать ансаппорт: Код: var grid = document.all["crmGrid"]; var gridBody = grid.InnerGrid; var selected = gridBody.SelectedRecords; if (selected.length> 0) { //... } Код: var lookupItems = LookupObjects(lookupField, lookupStyle, lookupClass, lookupTypes, lookupBrowse, bindingColumns, additionalParams, showNew, showProp, bPopulateLookup, defaultType, searchString); if ( lookupItems ) { if ( lookupItems.items.length > 0 ) { itemObjectId = lookupItems.items[0].id; } } Код: AssociateObjects(crmForm.ObjectTypeCode, crmForm.ObjectId, oTypeAssociated, oNewItemsIds, false, "", oAssociationName); p.s Как асоциировать записи из кода формы: http://www.axforum.info/forums/blog.php?b=46
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
23.06.2010, 11:19 | #9 |
Участник
|
Цитата:
Сообщение от Tarasov E
Пока решил создать новую сущность new_webgroup и связать с ней new_web как N:N. Так же в "Сведения" поместил пункт "Субъекты", куда и добавил интересующие меня записи, тем самым сформировал группу. Тоесть теперь с записью "Центральный регион" у меня есть группа связанных субъектов, с которых мне нужно выдрать значения определенных полей по нажатию на кнопку. Не подскажете как их получить?
__________________
Опыт позволяет ошибаться гораздо увереннее. |
|
|
|