Platzhalter - Mergefields
- Anne Krieg
Allgemein
Mit Platzhaltern oder sog. "Mergefields" werden Feldwerte aus Salesforce dynamisch zur Laufzeit in Angeboten ausgelesen. Diese Funktion steht für die folgenden Objekte zur Verfügung:
- Opportunity
- Account
- Contact
- Quote
- User
- Produkt
Einige Mergefields sind pro Objekt bereits vordefiniert; Sie finden Sie im Folgenden aufgelistet. Sie können jedoch auch Platzhalter für benutzerdefinierte Felder definieren und diese ebenso in Angeboten verwenden.
Anlage benutzerdefinierter Mergefields
Admin Einstellung | entsprechender Setup-Text |
---|---|
Zusätzliche Felder für Angebot | quoteFields |
Zusätzliche Felder für Opportunity | opportunityFields |
Zusätzliche Felder für Account | accountFields |
Zusätzliche Felder für Kontakt | contactFields |
Zusätzliche Felder für Benutzer | userFields |
Hinweis zu benutzerdefinierten Variablen mit dem Prefix sf42_quotefx__SF42_
- In den Setup-Text tragen Sie den korrekten API-Namen ein
- In der Variable ersetzen Sie die Zeichenfolge 'sf42_quotefx__' durch 'quote__'. Die restliche Konfiguration bleibt gleich wie im folgenden beschrieben.
Mergefields können auch in bestimmten Setup-Texten verwendet werden. An dieser Stelle werden allerdings gleich die vollständigen Platzhalter in geschweiften Klammern eingetragen:
Admin Einstellung | entsprechender Setup-Text | Beispiel |
---|---|---|
Formatierung des Namens des Angebots in Salesforce | quotesavename | {QuoteNumber} - {AccountOpp_Name} {QuoteDate} |
Formatierungs des Namens für das Angebots PDF | quoteattachementname | Angebot {QuoteName} |
Formatierung der QuoteMatchID | quoteMatchID | Quo-{QuoteNumber}-{QuoteDate} |
Konfiguration
Mergefields bezogen auf das Angebot
Standard Quote Mergefields
Mergefield | referenzierter Wert / Salesforce Feld | Besonderheit |
---|---|---|
{QuoteSumNet} | SF42_QuoteSum_Netto__c | Wird nur im PDF ausgelesen. |
{QuoteName} | Name | |
{QuoteNumber} | SF42_QuoNumber__c | |
{QuoteDate} | SF42_QuoDate__c | |
{OrderDate} | SF42_QuoDate__c | |
{ValidDate} | SF42_QuoValidThruDate__c | |
{QuoteVersion} | SF42_QuoVersion__c | |
{VAT} | SF42_Tax_Quote__c | |
{QuoteSumVat} | SF42_QuoSum_Vat__c | Wird nur im PDF ausgelesen. |
{QuoteSumGross} | SF42_QuoSum_Brutto__c | Wird nur im PDF ausgelesen. |
{RelatedQuoteNumber} | SF42_relatedQuote__r.SF42_QuoNumber__c | |
{RelatedQuoteName} | SF42_relatedQuote__r.Name | |
{AcceptedQuoteNumber} | s. Auftragsbestätigung | |
{AcceptedQuoteName} | s. Auftragsbestätigung |
Custom Quote Mergefields
Für Custom Mergefields kann einfach der API-Name des gewünschten Angebots-Feldes in geschweiften Klammern verwendet werden, sofern er im zugehörigen Setup-Text quoteFields hinterlegt ist.Mergefields bezogen auf den Account
Bei Mergefields zum Account gilt es zunächst, zwischen den verschiedenen am Angebot beteiligten Accounts zu unterscheiden (s. Abschnitt "Mehrstufiger Vertrieb")Opportunity Account | Primärer Account | Account 2 | Account 3 | Account 4 | |
---|---|---|---|---|---|
Objekt/Feld in Salesforce | SF42_QuoAccount__c | SF42_QuoActiveAccount__c | SF42_QuoAccount2__c | SF42_QuoAccount3__c | SF42_QuoAccount4__c |
Definition | Standard | Primärer Account für das jeweilige Angebot | Das Label für den Account 2 wird im Setup Parameter Account2 festgelegt, z.B. Reseller. | Das Label für den Account 3 wird im Setup Parameter Account3 festgelegt, z.B. Distributor. | Das Label für den Account 4 wird im Setup Parameter Account4 festgelegt, z.B. Enduser. |
Prefix für Standard Mergefields | AccountOpp_ | active. | (setup-text account2)_ | (setup-text account3)_ | (setup-text account4)_ |
Standard Account Mergefields
Die Standard Account Mergefields werden mit Unterstrich (Ausnahme 'Primärer Account: mit Punkt) an das jeweilige Account-Prefix angefügt. Folgende Mergefields stehen zur Verfügung:Mergefield | referenzierter Wert / Salesforce Feld | Beispiel Opportunity Account | Beispiel Primärer Account | Beispiel Account 2 | Beispiel Account 3 | Beispiel Account 4 |
---|---|---|---|---|---|---|
_Name | Account.Name | {AccountOpp_Name} | {active.Name}{Account} | {reseller_Name} | {distributor_Name} | {enduser_Name} |
_Street | Account.BillingStreet | {Street} | ||||
_Zip | Account.BillingPostalCode | {Zip} | ||||
_City | Account.BillingCity | {City} | ||||
_State | Account.BillingState | {State} | ||||
_Country | Account.BillingCountry | {Country} | ||||
_Payment | Account.SF42_Zahlungsbedingungen__c | {active.payment} | ||||
_Website | Account.Website | |||||
_Type | Account.Type | |||||
_Owner | Account.Owner.Name | |||||
_ShippingStreet | Account.ShippingStreet | |||||
_ShippingZip | Account.ShippingPostalCode | |||||
_ShippingCity | Account.ShippingCity | |||||
_ShippingCountry | Account.ShippingCountry | |||||
_ShippingState | Account.ShippingState |
Custom Account Mergefields
Opportunity Account | Primärer Account für das jeweilige Angebot | Account 2 | Account 3 | Account 4 | |
---|---|---|---|---|---|
Objekt /Feld in Salesforce | SF42_QuoAccount__c | SF42_QuoActiveAccount__c | SF42_QuoAccount2__c | SF42_QuoAccount3__c | SF42_QuoAccount4__c |
Prefix für Custom Mergefield | AccountOpp. | active. | (setup-text account2). | (setup-text account3). | (setup-text account4). |
Systematik | AccountOpp.ApiFieldname | active.ApiFieldname | setup-text account2.ApiFieldname | setup-text account3.ApiFieldname | setup-text account4.ApiFieldname |
Beispiel Custom Mergefield am Beispiel des Feldes "Industry" | {AccountOpp.Industry} | {active.Industry} | {reseller.Industry} | {distributor.Industry} | {enduser.Industry} |
Mergefields bezogen auf den Kontakt
Bei Mergefields zum Kontakt gilt es ebenso, zwischen den verschiedenen am Angebot beteiligten Accounts und ihren Kontakten zu unterscheiden (s. Abschnitt "Mehrstufiger Vertrieb").Kontakt Opportunity Account | Kontakt am primären Account | Kontakt Account 2 | Kontakt Account 3 | Kontakt Account 4 | |
---|---|---|---|---|---|
Objekt/Feld in Salesforce | SF42_QuoContact__c | - | SF42_QuoContact2__c | SF42_QuoContact3__c | SF42_QuoContact4__c |
Definition | Standard | Zugehöriger Kontakt des primären Accounts für das jeweilige Angebot. | Das Label wird im Setup Parameter Account2 festgelegt, z.B. Reseller. | Das Label wird im Setup Parameter Account3 festgelegt, z.B. Distributor. | Das Label wird im Setup Parameter Account4 festgelegt, z.B. Enduser. |
Prefix für Standard Mergefields | AccountOpp_Contact_ Opp_Contact_ | active.Contact. | (setup-text account2)_Contact_ | (setup-text account3)_Contact_ | (setup-text account4)_Contact_ |
Standard Contact Mergefields
Die Standard Contact Mergefields werden mit Unterstrich (Ausnahme 'Primärer Account: mit Punkt) an das jeweilige Contact-Prefix angefügt. Folgende Platzhalter stehen zur Verfügung:Mergefield | zugehöriger Feldname am Objekt | Beispiel Kontakt Opportunity Account | Beispiel Kontakt am primären Account | Beispiel Kontakt Account 2 | Beispiel Kontakt Account 3 | Beispiel Kontakt Account 4 |
---|---|---|---|---|---|---|
_Contact_Name | Name | {AccountOpp_Contact_Name} {Opp_Contact_Name} | {active.Contact.Name} | {reseller_Contact_Name} | {distributor_Contact_Name} | {enduser_Contact_Name} |
_Contact_FirstName | FirstName | {FirstName} | ||||
_Contact_LastName | LastName | {LastName} | ||||
_Contact_Salutation | Salutation | |||||
_Contact_LetterSalutation | SF42_Letter_Salutation__c | |||||
_Contact_Email | ||||||
_Contact_Phone | Phone | |||||
_Contact_Fax | Fax | |||||
_Contact_Mobile | MobilePhone | |||||
_Contact_Street | Street | |||||
_Contact_Zip | PostalCode | |||||
_Contact_City | City | |||||
_Contact_Additional1 | SF42_Additional_Info_1__c | |||||
_Contact_Additional2 | SF42_Additional_Info_2__c | |||||
_Contact_Additional3 | SF42_Additional_Info_3__c | |||||
_Contact_Owner | Owner.Name |
Custom Contact Mergefields
Für Custom Contact Mergefields wird zunächst der API-Name des referenzierten Feldes im zugehörigen Setup-Text contactFields hinterlegt. Anschließend wird er mit Punkt getrennt an das jeweilige Contact-Prefix angefügt:Kontakt am Opportunity Account | Kontakt am aktiven Account | Kontakt Account 2 | Kontakt Account 3 | Kontakt Account 4 | |
---|---|---|---|---|---|
Objekt/Feld in Salesforce | SF42_QuoContact__c | <-> | SF42_QuoContact2__c | SF42_QuoContact3__c | SF42_QuoContact4__c |
Prefix für Custom Mergefield | AccountOpp.Contact.Opp.Contact. | active.Contact. | (setup-text account2).Contact. | (setup-text account2).Contact. | (setup-text account4)Contact. |
Systematik | AccountOpp.Contact.ApiFieldnameOpp.Contact.ApiFieldName | Active.Contact.ApiFieldname | (setup-text account2).Contact.ApiFieldname | (setup-text account3).Contact.ApiFieldname | (setup-text account4).Contact.ApiFieldname |
Beispiel Custom Mergefield am Beispiel "Department" | {AccountOpp.Contact.Department}{Opp.Contact.Department} | {Active.Contact.Department} | {reseller.Contact.Department} | {distributor.Contact.Department} | {enduser.Contact.Department} |
Mergefields bezogen auf den User
Ähnlich wie beim Account gibt es auch bei Platzhalter, die sich auf Salesforce Benutzer beziehen, verschiedene Referenzmöglichkeiten und dementsprechend Prefixe für die Mergefields.User | Account Owner | Opportunity Owner | Manager Opp Owner | Quote Owner | Manager Quote Owner | |
---|---|---|---|---|---|---|
Objekt/Feld in Salesforce | User | SF42_QuoAccount__r.Owner | SF42_QuoOpportunity__r.Owner | SF42_QuoOpportunity__r.Owner.Manager | .Owner | .Owner.Manager |
Definition | Standard | Inhaber des Accounts der Opportunity | Inhaber der Opportunity | Manager des Opportunity-Inhabers | Inhaber des Angebots | Manger des Inhaber des Angebots |
Prefix für Standard Mergefields | User_ | AccountOpp_Owner_ | Opp_Owner_ | Opp_Manager_ | Quote_Owner_ | Quote_Manager_ |
Standard User Mergefields
Die Standard User Mergefields werden mit Unterstrich an das jeweilige Contact-Prefix angefügt. Folgende Platzhalter stehen zur Verfügung:Mergefield | zugehöriger Feldname am Objekt | Beispiel User | Beispiel Account Owner | Beispiel Opportunity Owner | Beispiel Opportunity Owner Manager | Beispiel Quote Owner | Beispiel Quote Owner Manager |
---|---|---|---|---|---|---|---|
_Name | Name | {User_Name} | {AccountOpp_Owner_Name} | {Opp_Owner_Name} | {Opp_Manager_Name} | {Quote_Owner_Name} | {Quote_Manager_Name} |
_FirstName | FirstName | ||||||
_LastName | LastName | ||||||
_Alias | Alias | ||||||
_Title | Title | ||||||
_JobTitle | Title | ||||||
_Email | |||||||
_Phone | Phone | ||||||
_Fax | Fax | ||||||
_MobilePhone | MobilePhone | ||||||
_Mobile | MobilePhone | ||||||
_CompanyName | CompanyName | ||||||
_Company | CompanyName | ||||||
_Street | Street | ||||||
_PostalCode | PostalCode | ||||||
_Zip | PostalCode | ||||||
_City | City | ||||||
_Department | Department | ||||||
_Division | Division |
Custom User Mergefields
User | Opportunity Inhaber | |
---|---|---|
Objekt/Feld in Salesforce | User | SF42_QuoOpportunity__r.Owner |
Prefix für Custom Mergefield | - | OppOwner. |
Systematik | API Feldname ohne Prefix | OppOwner.ApiFieldname |
Beispiel Custom Mergefield | {SF42_UserDegree__c} | {OppOwner.SF42_UserDegree__c} |
Mergefields bezogen auf die Opportunity
Standard Opportunity Mergefields
Es gibt nur ein einziges Standard Mergefields für Opportunity-Felder:Mergefield | zugehöriger Feldname an der Opportunity |
---|---|
{Opp_Name} | Name |
Custom Opportunity Mergefields
Für Custom Mergefields kann einfach der API-Name des referenzierten Feldes verwendet werden, sofern er im zugehörigen Setup-Text opportunityFields hinterlegt ist. Anschließend kann der Platzhalter in geschweiften Klammern im Angebot verwendet werden.Mergefields bezogen auf das Produkt
Eine Besonderheit sind Mergefields auf Produktebene. Sie lesen Spaltenwerte einer Angebotsposition aus und können in der Produktbeschreibung eingesetzt werden. Verständlicherweise greifen Produkt-Variablen nur innerhalb eines Datensatzes
Spaltenname | Name der Variable | Feldtyp |
---|---|---|
BuyPriceDist | {BuyPriceDist} | Währung |
BuyPricePartner | {BuyPricePartner} | Währung |
Description | {Description} | Text |
Discount | {Discount} | Prozent |
Discount2 | {Discount2} | Prozent |
Discount3 | {Discount3} | Prozent |
Discount4 | {Discount4} | Prozent |
DiscountDist | {DiscountDist} | Prozent |
DiscountPartner | {DiscountPartner} | Prozent |
Endprice | {Endprice, Unitprice} | Währung |
Listprice | {Listprice} | Währung |
Lowsellprice | {Lowsellprice} | Währung |
Position | {Position} | Text |
Productcode | {Productcode} | Text |
Quantity | {Quantity} | Zahl |
QuantityMultiplier | {QuantityMultiplier} | Zahl |
QuantityUnitOfMeasure | {QuantityUnitOfMeasure} | Text |
ServiceDate | {ServiceDate} | Datum |
SpecialDiscount | {SpecialDiscount} | Prozent |
SpecialDiscountDist | {SpecialDiscountDist} | Prozent |
SpecialDiscountPartner | {SpecialDiscountPartner} | Prozent |
SumListprice | {SumListprice} | Währung |
Sumprice | {Sumprice}, {Sum} | Währung |
SumPriceDist | {SumPriceDist}, {SumDist} | Währung |
SumPricePartner | {SumPricePartner}, {SumPartner} | Währung |
Tax | {Tax} | Prozent |
VE | {VE}, {PU}, {Unit} | Zahl |
xcolumn1 | {xcolumn1} | s. Einstellung |
xcolumn2 | {xcolumn2} | s. Einstellung |
Besonderheit: Variablen aus Formelfeldern
Im Normalfall können aus Formelfeldern nur begrenzt Mergefields generiert werden, da deren Inhalte, z.B. wenn es sich um Felder auf dem Angebot selbst handelt, erst mit Speichern des Angebots generiert werden.Alternativ können Sie sich manuell den Setup-Text saveTwiceForFormulaMergefields vom Typ Parameter einrichten und das Feld "Textbaustein" sf42_quotefx__SF42_QuoSetup_Longtext__c mit Wert true belegen. Das korrekte Verhalten ist dann folgendes: Beim initialen Öffnen des Editors bleiben Variablen, die keine Werte haben auf dem Template haben, zunächst leer; Felder, die einen Wert aus dem Template haben, werden mit diesem übernommen. Das erste Speichern eines neuen Angebots im Editor wird dann doppelt ausgelöst. Mergefields, die auf Formelfeldern aus dem Angebot beruhen, werden danach im Editor und PDF korrekt aufgelöst.
Mergefields und Übersetzungen
Sofern im Salesforce Setup die einheitlichen Auswahllisten für Bundesstaat und Land aktiviert sind (→ 'Enable Country & State Picklists') und Übersetzungen für diese Werte vorhanden sind, werden für die entsprechenden Merge-Fields je nach Spracheinstellung die Übersetzungen ausgegeben. Dies gilt auch für die weiteren standardmäßig eingerichteten Mergefields.Benutzerdefinierte Merge-Fields, die sich auf Auswahllisten-Felder beziehen, zeigen vorhandene Übersetzungen an, sofern im zugehörigen Setup-Text das entsprechende Feld mit 'toLabel' gekennzeichnet ist, z.B.accountFields → Textbaustein: toLabel(Industry)
Sofern es sich bei dem Feld nicht um eine Auswahlliste handelt, erzeugt die Verwendung von toLabel eine Fehlermeldung.