Отображение контактов, связанных с возможностью, в поле настраиваемого объекта

У меня следующий выпуск. У меня есть настраиваемый объект под названием «Приложение», и у меня есть следующее требование:

«Показать все контакты, относящиеся к приложению. Создать поле в объекте приложения, должно быть доступно только для чтения».

Я решаю это с помощью кода апекса. «Приложение» ищет возможности, возможность для учетной записи, и все мои контакты имеют AccountId, поэтому таким образом я получаю все контакты, используя код вершины в триггере.

Но меня попросили изменить это на поле формулы в объекте Application. Итак, моя проблема следующая. Я не могу получить все контакты с помощью расширенного редактора формул, потому что они не являются частью какого-либо объекта. У меня нет отношений "хозяин-деталь".

Кто-нибудь знает, как я могу добиться этого с помощью конфигурации? Я не должен использовать код вершины для этого требования. Заранее благодарим ребят.


person d_u_mex    schedule 20.04.2013    source источник


Ответы (1)


Я не думаю, что ты сможешь это сделать.

В синтаксисе полей формул / слияния нет возможности перейти «вверх, вверх, затем вниз» (Приложение -> Возможность -> Учетная запись -> вниз к списку контактов). Также нет ничего, что позволило бы вам просматривать контакты (и отображать какие? Идентификаторы? Имена? Электронные письма?). Грубо говоря, можно пройти только через точки.

Возможно, вы захотите изучить путь правил «кросс-объектного рабочего процесса», но я полагаю, что когда я добавляю новый контакт в учетную запись, он должен каким-то образом «распространяться» на все связанные приложения? Нет прямого способа запустить рабочий процесс и при удалении - так что в конечном итоге вы получите неточный список.

Я бы сказал, что триггер был хорошим решением. Может быть, он не оптимизирован, но если он должен быть в поле - сложно.


Это может быть довольно простой способ добиться этого путем встраивания страницы visualforce в макет страницы приложения.

Это должно быть выполнено с помощью чистого Visualforce (так что технически кода Apex не будет;)) Что-то простое, как

<apex:relatedList list="Contacts" subject="Application__c.Opportunity__r.AccountId" />

было бы хорошим началом (если вам нужен собственный макет, а не список относительных величин - вы все равно сможете выполнить его с помощью <apex:repeat> или <apex:pageBlockTable>.

Здесь есть одно НО: это не поле, а трюк с отображением. Забудьте об использовании его в отчетах, мобильных приложениях и т. Д.

Другой способ - приемлемо ли находиться на расстоянии 1 клика от этих контактов? Вы можете создать отчет «Учетная запись с контактами», отфильтровать его по идентификатору одной учетной записи, а затем использовать «Взлом URL-адресов», чтобы изменить фильтр в зависимости от того, из какого приложения вы щелкнете по нему. Эта ссылка может быть либо полем формулы, либо настоящей настраиваемой кнопкой / ссылкой. Технически - это чистый конфиг, без апекса и VF.

Вы можете узнать больше о взломе URL-адресов на Превосходный пост Рэя Деллера и конкретно о динамических отчетах здесь или здесь.

person eyescream    schedule 21.04.2013
comment
Привет, Eyescream, Спасибо за ваш комментарий и помощь. Мое триггерное решение использует страницу VF для отображения списка контактов. Отображаемое поле контактов все еще не определено клиентом, я имею в виду, две недели назад они спрашивали меня Имя и телефон, на прошлой неделе имя, телефон, адрес, электронная почта ... В прошлый четверг добавили несколько настраиваемых полей ... Итак, я ' м просто готовы добавить все поля контактов, которые им нужны. Для добавления контактов у нас есть встроенный VF в Opportunity. Насколько мне известно, в этом VF создается контакт, который связывается с учетной записью возможности, а затем вставляется. - person d_u_mex; 21.04.2013
comment
Я попробую ваш подход VF, чтобы избежать кода вершины, а также отчет, возможно, это решение на расстоянии одного клика не будет принято клиентом, но на данный момент я думаю, что это лучший подход для достижения этого только с конфигурацией. Большое спасибо за вашу помощь, и просто для записи я дам вам знать, как это закончилось. Наилучшие пожелания. - person d_u_mex; 21.04.2013
comment
Круто, всего доброго :) Помните, что на свой вопрос можно ответить и даже принять его! Но да, беспорядок ... Вы можете поместить все поля контактов в большое поле textarea (потому что я полагаю, что 255 символов будет недостаточно), но это действительно беспорядочно и малоценно. Вы тратите хранилище на дублирующуюся информацию (1 учетная запись, сотни приложений?). Подумайте о том, чтобы действительно бросить вызов вашему клиенту, зачем ему это нужно :) - person eyescream; 22.04.2013