You need to sign in to do that
Don't have an account?
maltesr
Replace merge fields in EmailTemplate-body (string) manually in apex?
I have a visualforce page with a controller.
Two parameters are passed: the ID of a custom-object and the ID of an EmailTemplate-Object.
I query the EmailTemplate and want to output the template in a textarea. That works fine.
Unfortunately the merge fields in the EmailTemplate are as they are in the template (e.g. "{!Custom_Object__c.Field1}").
Is there are simple way to replace those placeholders with the values of the custom-object I get from the passed ID?
I tried this: http://salesforce.stackexchange.com/questions/13/using-apex-to-assemble-html-letterhead-emails/8745#8745
But unfortunately it does not work because I cannot run Database.setSavepoint() at that point. I get the error "DML currently not allowed".
Is there another way to accomplish what I want to do without doing a simple string-replace for all possible Fields of Custom_Object__c?
Two parameters are passed: the ID of a custom-object and the ID of an EmailTemplate-Object.
I query the EmailTemplate and want to output the template in a textarea. That works fine.
Unfortunately the merge fields in the EmailTemplate are as they are in the template (e.g. "{!Custom_Object__c.Field1}").
Is there are simple way to replace those placeholders with the values of the custom-object I get from the passed ID?
I tried this: http://salesforce.stackexchange.com/questions/13/using-apex-to-assemble-html-letterhead-emails/8745#8745
But unfortunately it does not work because I cannot run Database.setSavepoint() at that point. I get the error "DML currently not allowed".
Is there another way to accomplish what I want to do without doing a simple string-replace for all possible Fields of Custom_Object__c?
I was looking for a solution to the same thing but coulnd't find it, so I made an apex class to do the search/replace like the templates do:
https://gist.github.com/jsullivanlive/7e82bffc99a220026578