+ Start a Discussion
Eric_SantiagoEric_Santiago 

Rendering merge fields in a String

Is there a way to render the merge fields in a string in Apex. As an example, I want to use email templates for a task. I've
written a VF page to override new task creation. It has a function that retrieves the body of the template but when its displayed
in the inputField it show the merge field syntax; i.e. Dear {!Contact.FirstName}.

 

public PageReference changeTemplate() {
EmailTemplate template = [Select TemplateType, Subject,
Name, Id, HtmlValue, Body, Description From EmailTemplate where id =:ApexPages.currentPage().getParameters().get('templateId')];

msg.Subject__c = template.Subject;
msg.Description__c = template.Body; //includes {!merge fields} as literal
}
return null ;
}

 

 I'm not sending an email as part of this process, so I need some way to render the merge fields in the string. What complicates this is that while the whoId can only be a Lead or Contact, the whatId on the task can any object. So a simple find and replace on the string gets very complex. Any suggestions?
ThomasTTThomasTT

Wow, Deja Vu... you shouldn't post your same question in 2 places... can I earn 2 Authorized Solutions? :)

 

http://community.salesforce.com/sforce/board/message?board.id=Visualforce&thread.id=17259

Message Edited by ThomasTT on 09-30-2009 09:56 PM