setup:
Opportunities are related in a MDR to children__c object. When my opp reaches a stage, an email alert (via workflow) gets sent out with the opp info. I want to include a list of urls for the children record related to that master opp. I did some reading- and it looks like custom components do the trick.
questions:
- is this the right approach?
- how do i pass params to the custom compoenent from the email template?
UPDATED WITH CODE:
From email template
<c.ChecklistEmailTemplateHelperVF opportunityIDFromEmail="{!relatedTo.Id}"/>
From Custom Component
<apex:component controller=ChecklistEmailTemplateHelper" access="global">
<apex:attribute id="oppId" assignTo="{!oppId}" name="opportunityIDFromEmail" type="ID" description="The Opporunity's SF ID"/>
<apex:repeat var="c" value="{!Checklists}">
<tr>
<td><a href="https://na1.salesforce.com/{!c.id}">View</a> |
<a href="https://na1.salesforce.com/{!c.id}/e">Edit</a></td>
<td class="sub_section_label">Checklist Name</td><td class="sub_section_data">: {!c.name}</td></tr>
<td class="sub_section_label">Any Changes</td><td class="sub_section_data">: {!c.Any_changes__c}</td></tr>
</tr>
</apex:repeat>
</apex:component>
From Apex public with sharing class ChecklistEmailTemplateHelper { public list <Checklist__c> checklists; public String oppId {get; set;}
public ChecklistEmailTemplateHelper(){
system.debug('oppid :' +oppId);
this.checklists = [select id, name, anychanges__c from Checklist__c where Opportunity__c = :oppId];
}
public list<Checklist__c> getChecklists(){
return checklists;
}
}