You need to sign in to do that
Don't have an account?
b.gonzalez
VisualForce Email Template:Error: Unknown property
I created the following VF email template. However I am recieving the following Error: Unknown property 'core.email.template.EmailTemplateComponentController.Opportunity'
See VF email template below:
<messaging:emailTemplate subject="Channel Special Pricing Approval Request:{!relatedTo.name}" recipientType="User" relatedToType="Opportunity"> <messaging:plainTextEmailBody > <html> <body> <p> A new Channel Special Pricing Request has been submitted for your review and is pending your approval. The link provided will take you to the opportunity in Salesforce.com. If you are receiving this on your mobile devise, a summary of the opportunity details follows below the link. </p> <p> You can approve or deny this request from your mobile devise by replying to this message and typing approved or rejected in the first line of the email body. You may add any additional comments in the second and subsequent lines. The additional comments will be added to your approval or denial record. </p> <STYLE type="text/css"> TH {font-size: 11px; font-face: arial;background: #CCCCCC; border-width: 1; text-align: center } TD {font-size: 11px; font-face: verdana } TABLE {border: solid #CCCCCC; border-width: 1} TR {border: solid #CCCCCC; border-width: 1} </STYLE> <font face="arial" size="2"> <table border="0" > <tr > <th>Action</th><th>Product Name</th><th>Quantity</th><th>Disti Price</th><th>Discount%</th><th>Discount $</th><th>Discount Price</th> </tr> <apex:repeat var="opp" value="{!relatedTo.OpportunityLineItems}"> <tr> <td><a href="https://na1-blitz01.soma.salesforce.com/{!opp.id}">View</a> | <a href="https://na1-blitz01.soma.salesforce.com/{!opp.id}/e">Edit</a></td> <td>{!opp.PriceBookEntry.name}</td> <td>{!ROUND(opp.Quantity,0)}</td> <td>{!ROUND(opp.ListPrice,0)}</td> <td>{!ROUND(opp.Discount__c,0)}</td> <td>{!ROUND(opp.Discount,0)}</td> <td>{!ROUND(opp.Requested_Price__c,0)}</td> </tr> </apex:repeat> </table> <p /> </font> <h4>Opportunity Detials:</h4> <table border="1"> <tr> <th>Opportunity Name: {!Opportunity.Name}</th> <th>Channel Request Authorization: {!Opportunity.ChannelRequestAuthorization__c}</th> </tr> <tr> <td>QLogic Sales Person (Opportunity Owner):</td> <td>{!Opportunity.OwnerFullName}</td> </tr> <tr> <td>Distributor:</td> <td>{!Opportunity.Distributor__c}</td> </tr> <tr> <td>Reseller:</td> <td>{!Opportunity.Reseller__c}</td> </tr> <tr> <td>End User:</td> <td>{!Opportunity.Account}</td> </tr> <tr> <td>End User Website:</td> <td>{!Account.Website}</td> </tr> <tr> <td>Competitor:</td> <td>{!Opportunity.Competitor1__c}</td> </tr> <tr> <td>Partner Status:</td> <td>{!Opportunity.Partner_Status__c}</td> </tr> <tr> <td>Opportunity Comments:</td> <td>{!Opportunity.OpportunityComments__c}</td> </tr> <tr> <td>Opportunity Amount:</td> <td>{!Opportunity.Amount}</td> </tr> <tr> <td>Approved Opportunity Value:</td> <td>{!Opportunity.Approved_Opportunity_Value__c}</td> </tr> <tr> <td>POS Value Claimed:</td> <td>{!Opportunity.POS_Value_Claimed__c}</td> </tr> <tr> <td>Net Opportunity POS:</td> <td>{!Opportunity.Net_Opportunity_POS__c}</td> </tr> <tr> <td>Total Credit Claimed:</td> <td>{!Opportunity.Total_Credit_Claimed__c}</td> </tr> <tr> <td>Max Discount %:</td> <td>{!Opportunity.Max_Discount__c}</td> </tr> </table> </body> </html> </messaging:plainTextEmailBody> </messaging:emailTemplate>
Hi,
Because the three fields Distributor,reseller and end User are Lookup fields. They contains ID values .you need to access the name with relationship like:
<td>Distributor:</td>
<td>{!relatedTo.Distributor__r.name}</td> <!--__r for relationship -->
<td>Reseller:</td>
<td>{!relatedTo.Reseller__r.name}</td>
<td>End User:</td>
<td>{!relatedTo.Account.Name}</td>
Please let me know if u have any problem on same and if this post helps u please throw KUDOS by click on star at left.
All Answers
HI,
In Vf template you put "relatedToType="Opportunity" " , So if you want to access the fields of opportunity u need to access as :
{!relatedTo.name} Not {!opportunity.name}
So u need to replace {!opportunity.name} to {!relatedTo.name} etc.. for all fields.
Please let me know if u have any problem on same and if this post helps u please through KUDOS by click on star at left.
Hi Puja,
Thank you! That seemed resolve my error. I used the "send test and verify merge fields" button to verify the fields are merging properly. In the test email, I returned what appeard is the ID number for the Reseller, Distributor, and End User field and not the acutal data in these fields. Not sure what this is happening.
I attached my update VF page code:
Hi,
Because the three fields Distributor,reseller and end User are Lookup fields. They contains ID values .you need to access the name with relationship like:
<td>Distributor:</td>
<td>{!relatedTo.Distributor__r.name}</td> <!--__r for relationship -->
<td>Reseller:</td>
<td>{!relatedTo.Reseller__r.name}</td>
<td>End User:</td>
<td>{!relatedTo.Account.Name}</td>
Please let me know if u have any problem on same and if this post helps u please throw KUDOS by click on star at left.
I have created a Visualforce Template and unable to execute. I have 3 objects involved in this.
Account
Asset and
ProAct Alarm(custom obj)
Please let me know how I can include the rest 2 objects in the relatedtotype, so I can add field mapping of those objects too.
Here is my code:
<messaging:emailTemplate recipientType="Contact"
relatedToType="Account"
subject="ProAct Alarm Report: {!relatedTo.name}"
replyTo="test.test@emerson.com">
<messaging:htmlEmailBody >
<html>
<body>
<STYLE type="text/css">
td
{border-left:1px solid black;
border-top:1px solid black; font-size: 11px; font-face: arial;}
table
{border-right:1px solid black;
border-bottom:1px solid black;}
.firstTr {
border:1px solid black;
}
</STYLE>
<font face="arial" size="2">
<p>Dear {!recipient.name},</p>
<table width="70%">
<tr><th colspan="10" style="background-color: gray;">Site Information</th></tr>
<tr>
<td colspan="2"><strong>Customer</strong></td>
<td colspan="3">{!relatedTo.Parent}</td>
<td colspan="2"><strong>Store Phone</strong></td>
<td colspan="3">{!relatedTo.Phone}
</td>
</tr>
<tr>
<td colspan="2"><strong>Site</strong></td>
<td colspan="3">{!relatedTo.Name}</td>
<td colspan="2"><strong>Ctrl. Manufacturer</strong></td>
<td colspan="3">CPC</td>
</tr>
<tr>
<td colspan="2"><strong>Site Alias</strong>
</td>
<td colspan="3">N/A</td>
<td colspan="2"><strong>City</strong>
</td>
<td colspan="3">{!relatedTo.BillingCity}
</td>
</tr>
<tr>
<td colspan="2"><strong>State-Zip-Country</strong>
</td>
<td colspan="3">{!relatedTo.BillingState}
</td>
<td colspan="2"><strong>Address</strong>
</td>
<td colspan="3">
</td>
</tr>
<tr><th colspan="10" style="background-color: gray;">Alarms</th></tr>
<tr>
<td>Alarm ID</td>
<td>Time Occurred</td>
<td>Time Received</td>
<td>Raw Source</td>
<td>Raw Desc</td>
<td>Property Name</td>
<td>Property Value</td>
<td>Controller Type</td>
<td>Controller Name</td>
<td>RTN</td>
</tr>
<tr>
<td>314442230</td>
<td>11/20/2018 6:23:00 AM</td>
<td>11/20/2018 11:35:36 AM</td>
<td>COMP A2 ALARM</td>
<td>COMMAND OUT</td>
<td>ON</td>
<td>E2</td>
<td>UNIT A</td>
<td>FALSE</td>
</tr>
</table><br></br>
<p>Regards.<br></br>
</font>
</body>
</html>
</messaging:htmlEmailBody>
</messaging:emailTemplate>