Skip to main content
3 of 7
added 1320 characters in body
PartOfTheOhana
  • 10.6k
  • 15
  • 95
  • 182

How to pass paramaters from an email template into a custom component?

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:

  1. is this the right approach?
  2. 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;
        }
    }                   
PartOfTheOhana
  • 10.6k
  • 15
  • 95
  • 182