I have a global picklist with different translations (Translation Workbench). I am changing the language in an email template so that the picklist value gets translated. As far as I know, the only way to dynamically translate the picklist value in an email template is by using the tag apex:outputField, something like:

<apex:outputField value="{!recipient.EmailGreeting__c}"/>

This is working correctly, meaning that I am getting the translation of the pick-list value. In addition, I need to uppercase the EmailGreeting__c value. It needs to change from dear to DEAR. I am doing the following:

{!UPPER(<apex:outputField value="{!recipient.EmailGreeting__c}"/>)}

But I am getting an error message:

Error: Syntax error. Found '<'  

The way I am following to get/capture the content of <apex:outputField value="{!recipient.EmailGreeting__c}"/ does not seem to be supported in salesforce. Is there any other way to dor it?


You need to put your formula function inside the merge field for your <apex:outputText>.


<apex:outputField value="{!UPPER(...)}" />

No Joy:

{!UPPER(<apex:outputField value="{!...}" />)}
  • I am coding it as follows: <apex:outputField value="{!UPPER(recipient.EmailGreeting__c)}" />. However, I get an error message: Error: Syntax error. Missing ')' – Cuban coffee Nov 3 '17 at 14:07
  • I do not think it will work. Because the apex:outputField does the translation. So the field EmailGreeting__c content can be manipulated after it outputs it. I hope that makes sense. – Cuban coffee Nov 3 '17 at 14:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.