The variables in a template's logic have various different kinds of values, each with their own features. In many cases it is not necessary to do anything particular with the values themselves - it can be enough that you just give values of proper types to commands' attributes - but many of the value types actually have methods that can provide useful information, or possibly transform the value itself.
To use a method in an expression, place a dot after the variable's name and then the name of the method followed by parenthesis, eg. ${sampleCollection.size()}
. If the method requires parameters, place the variables or values to act as parameters separated by commas inside the parenthesis, eg. ${someMap.containsKey("Id")}
or ${someMap.containsKey(idKey)}
. Many of these methods can also be written in a shorthand form; typically methods starting with "get" or "is" without parameters can be written without that word and the parenthesis, so ${loopStatus.getCount()}
for example is equivalent to ${loopStatus.count}
.
However, do note that an expression using a method is guaranteed to fail should the value of the variable be null
. As null represents an undefined value, it cannot execute a method and therefore causes an expression error. Try to only use methods with variables that are certain to not be null, or use them inside conditional blocks that specifically check that the method-performing variables are not null.
A Boolean value can have two possible states - true or false. It is the value type that expressions acting as conditions resolve into. Booleans also commonly appear in Salesforce query results representing values of checkbox fields.
A Collection is an ordered sequence of other values. Its worth lies in certain commands' ability to loop through all the items of a Collection, doing something to, or with, each item individually. Collections typically appear in the logic generated by Salesforce queries, as the data-retrieval operations that find more than one record produce a Collection of Data items.
Note that while the values within a Collection do not have to be of the same type, it is highly recommended as all commands within loops are generally expecting to handle values of a certain type. Therefore be careful with addItem commands - be sure to add values of the same type as those already in the Collection!
Instead of looping through all items with specific commands, it is also possible to access items individually by their index. The indexes start with 0, so an expression like ${collection[0]}
would get the Collection's first item. Specifying an index that's greater than the Collection's length results in an error though, so any logic using this feature should also use the size() method to find out the maximum index.
Methods
contains(value) | Resolves into a Boolean telling whether the Collection contains the specified value (true) or not (false). For example, to check if a Collection of Strings called 'wordsCollection' contains a String "Test", the expression ${wordsCollection.contains("Test")} could be used. |
isEmpty() | Resolves into a Boolean telling whether the Collection has no items (true) or not (false). For example, the expression ${!faultyProducts.isEmpty()} would resolve into true if 'faultyProducts' contains at least one item.Using the shorthand form the expression becomes ${!faultyProducts.empty} . Additionally, the EL-operator empty also works in a similar manner to this method, so the expression could be also written as ${not empty faultyProducts} . |
size() | Resolves into a Number representing the number of items in the Collection. For example, if 'queryResults' was a Collection produced by a Salesforce query, ${queryResults.size()} would resolve into the number of result records. |
A DAP content item represents one of the files with a Part of the currently running Online template. A DAP content item can tell the name of the file it represents but not do much else. These values can only be found through DAP Part values.
Methods
getName() | Resolves into a String that is the name of the file this value represents. For example, the expression ${partItem.getName()} might resolve into something like "composeFlow.xml".Using the shorthand form the expression becomes ${partItem.name} . |
A DAP part represents one of the Parts of the currently running Online template. A DAP part value doesn't have much other use besides being able to tell its name and the names of its contents, but in some cases that information may come useful. These values can only be found through the Document properties doc
variable.
Methods
getItems() | Resolves into a Collection containing DAP Content Item values representing the files inside this Part. For example, the expression ${doc['Main'].getItems()} resolves into a Collection containing the items of the Part "Main". |
getName() | Resolves into a String that is the name of this Part. For example, the expression ${part.getName() == 'Footer'} resolves into true if the Part is called "Footer".Using the shorthand form the expression becomes ${part.name == 'Footer'} . |
Data items are the result units of database queries. Currently they are only produced by a set of Salesforce commands that retrieve record data, and in that context each data item represents one record of a query result.
The features of Data items are mostly the same as those of Map values - a Data item is basically an extension of a Map. Each queried field appears as a map entry, with the field's API name as the entry's key and the field's value as the entry's value. Therefore any value in a Data item can be accessed with expressions of the kind "${record.field}", eg. "${Opportunity.Amount}". As the Salesforce fields can be of various types, so do the values of these fields inside the Data items represent various types as well. Below is a table describing the relations between the fields and Dynamo's value types.
Salesforce field type | Dynamo value type |
---|---|
Checkbox |
Boolean |
Number | Number |
Currency | Currency |
Date | Date |
Date/Time | DateTime |
Percent | Percentage |
Picklist | Picklist Value |
Picklist (Multi-Select) | Multipicklist Value |
HTML-formatted value / Rich text | HTML Value |
Other field types | String |
Should the query generating the Data item contain fields of referenced records, eg. "Opportunity.Account.Name", the Data items of those referenced records actually appear inside the base Data item. So in the case of "Opportunity.Account.Name", the resulting base Data item would be for Opportunity, but it would contain another Data item for the Account as the value for the key "Account", and so the expression "${Opportunity.Account.Name}" will access the Account Data item from which it retrieves the Name value.
If a record has an undefined/blank value for a field, that field's value will appear in a Data item as null
, regardless of the field's type.
Methods
Being an extension of the Map value type, Data item has all the methods of Map in addition to the ones listed here.
getObjectType() | Resolves into a String that is the API name of the object the record represents. For example, if 'resultRecord' is a Data item produced by a Dynamo clause query, ${resultRecord.getObjectType()} might return "Dynamo_Clause__c".Using the shorthand form the expression becomes ${resultRecord.objectType} . |
A Date value represents a specific date. It contains the year, month and day, any of which can be accessed separately if needed. Its methods also allow creation of new Date values derived from the base value, such as using ${today.plusDays(30)}
to create a Date that is 30 days in the future of the Date called "today".
Methods
getDayOfYear() / getDayOfMonth() / getDayOfWeek() | These three methods resolve into a Number telling the day of this Date in different contexts. For example, the expression ${today.getDayOfMonth() == 1} resolves into true if 'today 'represents the first day of its month.Using the shorthand form the expression becomes ${today.dayOfMonth == 1} . |
getYear() / getMonthOfYear() | These two methods resolve into a Number representing the year / month of the Date. For example, the expression ${today.getYear() >= 2000} resolves into true if 'today' is on year 2000 or later.Using the shorthand form the expression becomes ${today.year >= 2000} . |
minusYears(value) / minusMonths(value) / minusWeeks(value) / minusDays(value) | A set of methods that resolve into a new Date that is this Date but with the specified number of years/months/weeks/days earlier in time. For example, the expression ${anniversary.minusDays(30)} resolves into a Date that is about one month earlier than 'anniversary'. |
plusYears(value) / plusMonths(value) / plusWeeks(value) / plusDays(value) |
A set of methods that resolve into a new Date that is this Date but with the specified number of years/months/weeks/days later in time. For example, the expression ${startDate.plusMonths(2)} resolves into a Date that is two months later than 'startDate'. |
withYear(value) / withMonth(value) / withDay(value) | A set of methods that resolve into a new Date that is this Date but with the year/month/day set to the specified number. For example, the expression ${closeDate.withMonth(7)} resolves into a Date that has the same year and day as 'closeDate', but has its month set to 7 (July). |
A DateTime value represents a specific point of time. It has all the same features of Date but with the time components hour, minute and second added.
Methods
Being an extension of the Date value type, DateTime has all the methods of Date in addition to the ones listed here.
getHourOfDay() | Resolves into a Number telling the hour of this DateTime. For example, the expression ${today.getHourOfDay() == 0} resolves into true if 'today' represents the hour following midnight.Using the shorthand form the expression becomes ${today.hourOfDay == 0} . |
getMinuteOfDay() / getMinuteOfHour() | These two methods resolve into a Number representing the minute of the DateTime in different contexts. For example, the expression ${today.getMinuteOfHour() >= 30} resolves into true if 'today' is on latter half of its current hour.Using the shorthand form the expression becomes ${today.minuteOfHour >= 30} . |
getSecondOfDay() / getSecondOfMinute() | These two methods resolve into a Number representing the second of the DateTime in different contexts. For example, the expression ${today.getSecondOfMinute() == 33} would resolve into true only if 'today' represents the 33rd second of its current minute.Using the shorthand form the expression becomes ${today.secondOfMinute == 33} . |
minusHours(value) / minusMinutes(value) / minusSeconds(value) | A set of methods that resolve into a new DateTime that is this DateTime but with the specified number of hours/minutes/seconds earlier in time. For example, the expression ${meeting.minusMinutes(30)} resolves into a DateTime that is half an hour earlier than 'meeting'. |
plusHours(value) / plusMinutes(value) / plusSeconds(value) |
A set of methods that resolve into a new DateTime that is this DateTime but with the specified number of hours/minutes/seconds later in time. For example, the expression ${moment.plusSeconds(3)} resolves into a DateTime that is three seconds later than 'moment'. |
withHour(value) / withMinute(value) / withSecond(value) | A set of methods that resolve into a new DateTime that is this DateTime but with the hour/minute/second set to the specified number. For example, the expression ${timestamp.withMinute(0)} resolves into a DateTime that is set to the start of its hour, but is otherwise the same as 'timestamp'. |
A Document package is a set of document files. By placing documents into a Document package, an operation may be performed on the package as a whole instead of each document individually.
Methods
getName() | Resolves into a String that is the name given to the Document package. For example, the expression ${docPack.getName() == 'Recipes'} could be used to identify the Document package called "Recipes". Using the shorthand form the expression becomes ${docPack.name == 'Recipes'} . |
A Document properties value contains metadata of the currently running template. There's only one of these in an evaluation process, which is always the value of the variable doc
.
The Document properties of an Online template also acts as a Map containing all the Parts of the template. The key of each Part is its name and the value is the corresponding DAP Part. So, for example, an expression ${doc['Main']}
resolves into the DAP Part "Main".
Methods
getContentType() | Resolves into a String that is the content type of the currently running template. This will resolve into null if content type has not been with the document tag.For example, the expression ${doc.getContentType()} could resolve into "Dynamo template" if the template's content type has been set as such. Using the shorthand form the expression becomes ${doc.contentType} . |
getDocumentMIME() | Resolves into a String that is the MIME type of the currently running template. For example, the expression ${doc.getDocumentMIME()} would resolve into "application/vnd.documill.dynamo.dap" in an Online template.Using the shorthand form the expression becomes ${doc.documentMIME} . |
getFileName() | Resolves into a String that is the file name of the currently running template. This is the same as the name of the template but with file suffix included. For example, the expression ${doc.getFileName()} might resolve into "Offer.dap" in an Online template named "Offer".Using the shorthand form the expression becomes ${doc.fileName} . |
getName() | Resolves into a String that is the name of the currently running template. For example, the expression ${doc.getName()} would resolve into "Offer" if the template is named like that.Using the shorthand form the expression becomes ${doc.name} . |
A File is a binary data value containing data of a document, an image or some other kind of file. Alongside the binary data is metadata, such as file name, that can be accessed if needed.
Methods
getContentType() | Resolves into a String telling File's MIME type. If the MIME type cannot be defined, a generic "application/octet-stream" type is the result. For example, if 'logo' was an image file, the expression ${logo.getContentType()} might resolve into "image/png".Using the shorthand form the expression becomes ${logo.contentType} . |
getFileName() | Resolves into a String of the file name of the File. This should include the suffix appropriate to the File's type. In some cases the file name might be undefined, in which case the result is an empty String. For example, if "composedDoc" is the File produced by a composeContent tag, the expression ${composedDoc.getFileName()} might resolve "Test template.html" if the document's title was "Test template".Using the shorthand form the expression becomes ${composedDoc.fileName} . |
getTitle() | Resolves into a String of the title of the File. If the file's title is undefined, the result is an empty String. For example, with 'sfFile' being a File produced by the SFDC "load" tag, the expression ${sfFile.getTitle()} would resolve into the value of the Title field of the record whose file data the tag loaded.Using the shorthand form the expression becomes ${sfFile.title} . |
A Locale value specifies some country and/or language. Generally a Locale value can only appear in the logic when acquired through the system-generated UserInfo value, which provides a Locale representing the logic-running user's country and language.
Methods
getCountry() | Resolves into a String that is a country or region code of two possible formats. Either it is a ISO 3166 2-letter code, or a UN M.49 3-digit code. For example, the expression ${UserInfo.locale.getCountry() == 'FI'} could check if the active user's country is Finland.Using the shorthand form the expression becomes ${UserInfo.locale.country == 'FI'} . |
getLanguage() | Resolves into a String that is a ISO 639 language code. For example, the expression ${UserInfo.locale.getLanguage() == 'fi'} would resolve into "true" for users presumably in a Finnish-speaking region.Using the shorthand form the expression becomes ${UserInfo.locale.language == 'fi'} . |
A Loop status value can provide information of a loop in progress. Its primary, and basically only, use is in condition expressions within a loop.
Methods
getCount() | Resolves into a Number telling the number of the current iteration within this loop. During the first iteration the value is 1. For example, the expression ${loopStatus.getCount() == 1} resolves into true only on the loop's first round.Using the shorthand form the expression becomes ${loopStatus.count == 1} . |
getIndex() | Resolves into a Number telling the index of the current iteration within this loop. During the first iteration the value is 0. For example, the expression ${loopStatus.getIndex() == 0} resolves into true only on the loop's first round.Using the shorthand form the expression becomes ${loopStatus.index == 0} . |
isFirst() | Resolves into a Boolean telling whether the current iteration is the first iteration (true) of the loop or not (false). For example, the expression ${!loopStatus.isFirst()} resolves into true on all iterations except the first.Using the shorthand form the expression becomes ${!loopStatus.first} . |
isLast() | Resolves into a Boolean telling whether the current iteration is the last iteration (true) of the loop or not (false). For example, the expression ${loopStatus.isLast()} resolves into true on the loop's last round.Using the shorthand form the expression becomes ${loopStatus.last} . |
A HTML value is a fragment of HTML that, when brought into a HTML document, becomes part of that document's structure instead of being rendered as text containing HTML tags. One of the primary sources of HTML values are Salesforce queries containing HTML-formatted, or rich-text, fields.
A Map contains values associated with keys. Each value in the Map can be accessed by its key and a typical example of Map use in Dynamo is Salesforce query results, which, while actually Data item values, behave like Maps with the record field names as keys and the field values as the values. All the keys of a Map are always String-type values, but the a value can be of any type - even another Map, adding another data structure layer - regardless of the types of other values in the Map. It is generally up to the logic using Maps to know what kind of values are hidden behind the keys.
Methods
containsKey(value) | Resolves into a Boolean telling whether the Map contains the specified key (true) or not (false). For example, the expression ${userProperties.containsKey("Address")} can be used to check if 'userProperties' contains a key called "Address". |
isEmpty() | Resolves into a Boolean telling whether the Map contains no entries (true) or has one or more entries (false). For example, the expression ${users.isEmpty()} resolves into true if the 'users' Map contains no entries.Using the shorthand form the expression becomes ${users.empty} . Additionally, the EL-operator empty also works in a similar manner to this method, so the expression could be also written as ${empty users} . |
keySet() | Resolves into a Collection that contains all the keys of the Map. Useful if you'd like to loop through all the entries of a Map, as with the key you can also easily get the matching value. For example, the expression ${data.keySet()} could be used with the forEach tag to inspect the contents of the 'data' Map. |
size() | Resolves into a Number representing the amount of key-value pairs in the Map. For example, the expression ${editorConfig.size()} resolves into the number of entries in the 'editorConfig' Map. |
values() | Resolves into a Collection that contains all the values of the Map. Do note that getting the matching key for any of the values in the Collection is not possible. This method should be used with care, as Maps often contain different kinds of values behind their keys. It is highly recommended to only use this method on Maps constructed within the logic, all containing similar kinds of values. For example, the expression ${aMapOfMaps.values()} could be used with the forEach tag to inspect all the values of the 'aMapOfMaps' Map. |
A Multipicklist value is the representation of a value of a Salesforce picklist field allowing multiple selections. It carries all the selected values, their labels, as well as the values and labels of all the other options the picklist offers.
Methods
allEntries() |
Resolves into a Collection containing Maps representing all of the entries, or options, of the picklist field this value is from. Each entry Map value contains the following keys and String values:
${opp.MultitestValue__c.allEntries()} and entry being the variable of the currently iterated item, ${entry.default} could be used to check if the entry is the field's default value. |
allLabels() | Resolves into a Collection containing Strings that are the labels of all of the picklist entries. If the setLabelTranslations command has been used to activate a translation, this method will return the translated labels (if the translation contains them).For example, the expression ${opp.MultitestValue__c.allLabels()} would allow one to loop through the labels of all of the picklist field's options. |
allValues() | Resolves into a Collection containing Strings that are the API values of all of the picklist entries. For example, the expression ${opp.MultitestValue__c.allValues()} would allow one to loop through the API values of all of the picklist field's options. |
asList() | Resolves into a Collection of Strings containing the API values of the selected picklist values. If there are no selected values, the Collection will be empty. For example, the expression ${opp.MultitestValue__c.asList()} would allow one to loop through the API values of the selections. |
contains(String) | Resolves into a Boolean telling whether the given String parameter is one of the selected entries' API values. For example, the expression ${opp.MultitestValue__c.contains('testValue')} would check if 'testValue' is one of the selected entries. |
containsLabel(String) | Resolves into a Boolean telling whether the given String parameter is one of the selected entries' labels. For example, the expression ${opp.MultitestValue__c.containsLabel('Test Value')} would check if an entry with the label "Test Value" is selected. |
getEntries() |
Resolves into a Collection containing Maps representing the selected entries, or options, of the picklist field this value is from. Each entry Map value contains the following keys and String values:
${opp.MultitestValue__c.getEntries()} and entry being the variable of the currently iterated item, ${entry.label} would resolve into the label of the entry.Using the shorthand form the expression becomes ${opp.MultitestValue__c.entries} . |
getLabels() |
Resolves into a String that contains the labels of the selected picklist values, separated with commas. If the setLabelTranslations command has been used to activate a translation, this method will return the translated labels (if the translation contains them).For example, the expression ${opp.MultitestValue__c.getLabels()} could return "Test value, Test value 2", or "Testiarvo, Testiarvo 2" if a Finnish translation has been set .Using the shorthand form the expression becomes ${opp.MultitestValue__c.labels} . |
rawValue() |
Resolves into a String that is the picklist field value as provided by the Salesforce API, which is all the selected entries' API values separated by semicolons. For example, the expression ${opp.MultitestValue__c.rawValue()} could return "testValue;testValue2". |
A Number is basic numerical value. Numbers and the types extended from it are the only variable values that can be used in mathematical EL-expressions.
A Percentage is an extension of the Number type for representing fractions of 100. Percentage values behave exactly as Number values, but are affected by different formats and therefore tend to appear on documents in different ways.
A Picklist value is the representation of a value of a Salesforce picklist field. Besides carrying the selected value, its methods allow the selected value's label to accessed, along with the values and labels of all of the picklist's options.
Methods
getEntries() |
Resolves into a Collection containing values representing all the entries, or options, of the picklist field this value is from. Each entry value has two properties, value and label , which resolve into Strings telling the entry's API value and label.For example, if looping through the Collection accessed with ${testValue.getEntries()} and entry being the variable of the currently iterated item, ${entry.value} would resolve into the API value of the picklist entry.Using the shorthand form the expression becomes ${testValue.entries} . |
getLabel() | Resolves into a String that is the label of the selected picklist value. The label is how this picklist value appears to users in the Salesforce UI. If the setLabelTranslations command has been used to activate a translation, this method will return the translated label (if the translation contains it).For example, the expression ${testValue.getLabel()} could return "Test value", or "Testiarvo" if a Finnish translation has been set .Using the shorthand form the expression becomes ${testValue.label} . |
getValue() | Resolves into a String that is the API value of the selected picklist value. If the value appears numeric and you wish to use it as a Number rather than a String, make use of the set command's parser attribute to convert its type.For example, the expression ${testValue.getValue()} could return "testValue".Using the shorthand form the expression becomes ${testValue.value} . This method is also the default output of the picklist value, so if being printed onto a document, just ${testValue} would produce "testValue" as well. |
A Report data value contains data of a single run of a specific Salesforce report. These values are only produced by the loadReport command.
Methods
containsDetails() | Resolves into a Boolean telling whether this Report data includes details rows (true) or not (false). For example, the expression ${!reportData.containsDetails()} resolves into true if the report data doesn't contain detail row information. |
getReportType() | Resolves into a String telling report's type, so either "TABULAR" or "SUMMARY" (as Matrix type data cannot be generated). For example, to check if the Report data was for a tabular report, the expression ${reportData.getReportType() == 'TABULAR'} would work.Using the shorthand form the expression becomes ${reportData.reportType == 'TABULAR'} . |
A String is a text value, or a sequence of characters. It is the only value type that is displayed on a document as is - all other value types are first converted into Strings before ending up as part of document content.
Methods
contains(string) | Resolves into Boolean true or false depending on whether the String contains the specified parameter String.For example, an expression ${documentName.contains("Addendum")} would resolve into true if 'documentName' is "Price Addendum" or "Addendum 2". |
length() | Resolves into a Number telling how many characters the String contains. For example, an expression ${userDescription.length() > 200} would function as a condition resolving into true if 'userDescription' is longer than 200 characters. |
replace(target,replacement) | Resolves into a String that has all occurrences of the specified 'target' text replaced with 'replacement' text. For example, if variable 'name' has value "Important template", expression ${name.replace('template','document')} would resolve into "Important document". The 'replacement' may also be set as an empty String to remove parts of the base String, so using the previous 'name' with expression ${name.replace('Important ','')} would result in "template". |
startsWith(string) | Resolves into Boolean true or false depending on whether the String starts with the specified parameter String. For example, an expression ${productType.startsWith('Cat')} would resolve into true if 'productType' is "Cat Robot", but into false if it is "Robot Cat" instead. |
substring(beginIndex) / substring(beginIndex,endIndex) | Resolves into a String that is a portion of the base String. The portion starts from the character at index specified with 'beginIndex' (0 being the first character) and extends to the character at index specified with 'endIndex', or to the end of the String if 'endIndex' is not defined. For example, if 'documentName' is "C288 Introduction Letter", expression ${documentName.substring(5)} would resolve into "Introduction Letter". |
toLowerCase() / toUpperCase() | Resolves into a String that is the same String except with all the characters converted into lower or upper case. For example, if 'favoriteColor' is "green" or "Green", expression ${favoriteColor.toLowerCase()} would resolve into "green" in both cases. |
A UserInfo value is a package of information of the Salesforce user that is currently running the logic. It has a set of methods providing access to various kinds of data of the user.
Every evaluation process has a single UserInfo value available to the logic, accessed through the system-provided variable "UserInfo".
Methods
getDefaultCurrencyIsoCode() |
Resolves into a String that is the ISO code of the user's default currency. This value is defined only if the user's organization uses multiple currencies - in single-currency organizations the resolved value will always be null .For example, the expression ${UserInfo.getDefaultCurrencyIsoCode() == 'EUR'} will check if the user's default currency is euro.Using the shorthand form the expression becomes ${UserInfo.defaultCurrencyIsoCode == 'EUR'} . |
getEmail() | Resolves into a String that is the user's email address. For example, the expression ${UserInfo.getEmail()} might resolve into "dynamo.support@documill.com".Using the shorthand form the expression becomes ${UserInfo.email} . |
getFullName() |
Resolves into a String that is the user's full name. For example, the expression Hello ${UserInfo.getFullName()} would resolve into "Hello Millie Dynamoweaver" for the user whose full name is "Millie Dynamoweaver".Using the shorthand form the expression becomes ${UserInfo.fullName} . |
getLocale() | Resolves into a Locale value representing the user's language and country. For example, the expression ${UserInfo.getLocale().country} would resolve into "FI" for users that are considered to be in Finland.Using the shorthand form the expression becomes ${UserInfo.locale.country} . |
getOrgDefaultCurrencyIsoCode() |
Resolves into a String that is the ISO code of the user's organization's default currency. This value is defined only if the organization uses a single currency - in multi-currency organizations the resolved value will always be null .For example, the expression ${UserInfo.getDefaultCurrencyIsoCode()} would resolve into "EUR" for users of an organization whose default currency is euro.Using the shorthand form the expression becomes ${UserInfo.defaultCurrencyIsoCode} . |
getOrganizationId() |
Resolves into a String that is the ID of the Organization record representing the user's organization. For example, the expression ${UserInfo.getOrganizationId()} will resolve into an 18-character String fairly certainly starting with "00D".Using the shorthand form the expression becomes ${UserInfo.organizationId} . |
getOrganizationName() |
Resolves into a String that is the name of the user's organization. For example, the expression ${UserInfo.getOrganizationName()} will resolve into "dynamo.userinfo.example" for all users whose organization name is "dynamo.userinfo.example".Using the shorthand form the expression becomes ${UserInfo.organizationName} . |
getProfileId() |
Resolves into a String that is the ID of the Profile record representing the user's profile in the organization. For example, the expression ${UserInfo.getProfileId()} could be used with one of the record-querying commands to retrieve information of the user's profile.Using the shorthand form the expression becomes ${UserInfo.profileId} . |
getRoleId() |
Resolves into a String that is the ID of the UserRole record representing the user's role in the organization. If the user doesn't have a role, the resolved value will be null .For example, the expression ${UserInfo.getRoleId() == '00ED00000081m0DyNA'} would check if the user represents a specific role.Using the shorthand form the expression becomes ${UserInfo.roleId == '00ED00000081m0DyNA'} . |
getTimeZone() |
Resolves into a String representing the user's time zone. For example, the expression ${UserInfo.getTimeZone()} might resolve into "Europe/Helsinki" for users in the UTC +02:00 time zone.Using the shorthand form the expression becomes ${UserInfo.timeZone} . |
getUserId() |
Resolves into a String that is the ID of the User record representing the user. For example, the expression ${UserInfo.getUserId() == testerId} would check whether the user is the one that the "testerId" variable specifies.Using the shorthand form the expression becomes ${UserInfo.userId == testerId} . |
getUserName() |
Resolves into a String that is the user's username, or login name. For example, the expression ${UserInfo.getUserName()} would resolve into "millie.dynamoweaver@dynamo.userinfo.example" for a user logging in with that name.Using the shorthand form the expression becomes ${UserInfo.userName} . |
isOrgMultiCurrency() |
Resolves into a Boolean "true" if the user's organization uses multiple currencies, or "false" if the organization uses a single currency. For example, the expression ${!UserInfo.isOrgMultiCurrency()} would resolve into "true" for users of a single-currency organization.Using the shorthand form the expression becomes ${!UserInfo.orgMultiCurrency} . |
Comments
0 comments