Доступ к EmailMessages relatedList на странице Visualforce для Case - PullRequest
4 голосов
/ 12 апреля 2011

Я пытаюсь создать страницу Visualforce с рядом связанных списков. Я пытаюсь отобразить те же связанные списки, что и на стандартной странице макета. OpenActivities, ActivityHistories, Attachments и CaseSolutions все работают нормально.

Однако, когда я пытаюсь добавить EmailMessages, я получаю следующую ошибку.

Ошибка Visualforce

'EmailMessages' не является допустимым именем дочернего отношения для сущности. Case

Я могу обойти это, получив EmailMessages с использованием некоторого soql, но мне бы очень хотелось, чтобы это был простой связанный список.

Кто-нибудь может подсказать, что я могу делать не так?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

К сожалению, нет, это одна из тех вещей, которую население никогда не одобряет в достаточной мере для реализации.В настоящее время EmailMessages связанный список не поддерживается в <apex:relatedlist> Хотя вам не обязательно использовать SOQL для генерации нефильтрованного списка, вы можете указать значение элемента итерации для получения данных непосредственно из отношения:

<apex:dataTable value="{!Case.EmailMessages}" var="email">
    <apex:column value="{!email.Subject}" />
    ...
</apex:dataTable>
1 голос
/ 11 июня 2011

Вот более полный пример, который использует apex: повторите с таблицей HTML.Такой подход позволяет регулировать расстояние между рядами.Он также включает в себя действие ReplyToAll.Я планирую расширить этот пример дополнительными действиями и разместить больше информации в столбце информации электронной почты.

<apex:tab label="Email" name="Email2" id="tabEmail2">
    <apex:form >
        <apex:pageBlock id="emailPageBlock">
            <table border="0"  class="emailable">       
            <tr>
                <th class="emailActionColumn">Action</th>
                <th class="emailInfoClass">Information</th>
                <th class="emailBodyClass">Body</th>
            </tr>
            <!-- get the case comments from the controller -->
            <apex:repeat value="{!case.EmailMessages}" var="emsg">
                <tr>
                <td class="emailActionColumn">
                <!-- Rely to all -->
                <!-- 
                _ui/core/email/author/EmailAuthor?email_id=02s7000000Bi6uv&replyToAll=1&retURL=%2F02s7000000Bi6uv
                 -->
                <apex:outputLink title="" value="../_ui/core/email/author/EmailAuthor?email_id={!emsg.id}&&replyToAll=1&retURL=/apex/{!$CurrentPage.Name}%3Fid={!case.id}" style="font-weight:bold">Reply To All</apex:outputLink> 
                </td>
                <td>
                <!-- display the email information  -->
                <div class="emailInfoClass">
                <apex:outputField value="{!emsg.FromName}"></apex:outputField>
                </div>
                </td>
                <td>
                <!-- display the email body formatted using the apex outputField -->
                <div class="emailBodyClass">
                <apex:outputField value="{!emsg.TextBody}"></apex:outputField>
                </div>
                </td>
                </tr>
            </apex:repeat>
            </table>
        </apex:pageBlock>
    </apex:form>
</apex:tab>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...