INTERPOLATE
| Specification | Value |
|---|---|
| Description | Performs a string interpolation, according to the context of the input or explicitly passed object. |
| Parameter 1 Name | InterpolatedString |
| Parameter 1 Type | string |
| Parameter 2 Name | InterpolationContext (optional) |
| Parameter 2 Type | object (DomainObject) |
| Parameter 3 Name | - |
| Parameter 3 Type | - |
| Return value | Returns a string, result from the string interpolation. |
Warning
The interpolate operator fully depends on the ERP.net string interpolation functionality.
All expressions in Parameter 1 must conform to the specification.
Examples:
Note
The repository of the calculated attribute is Crm.Customers.
Let's try with something simple. We'll get the country name of the enterprise company for each customer. In English.
10: INTERPOLATE CONST: Customer's enterprise company country of origin: {EnterpriseCompany.Company.Country.Name:en}
OUTPUT:
Enterprise company country of origin: Bulgaria
EXPLAINED:
The essential part of the CONST parameter is enclosed in curly braces {}. It means the following:
{- start of a single interpolated string expression.EnterpriseCompany- follow the enterprise company reference of the customer..Company- follow the company reference of the enterprise company..Country- follow the country reference..Name- get the Name attribute.:en- because it's a multilanguage string - show it in English.}- end of the interpolated string expression.
Now let's involve a system variable.
10: INTERPOLATE CONST: What year is it? {$datetime:yyyy}; Who am I? {$user.Name:en}.
OUTPUT:
What year is it? 2023; Who am I? John Doe
EXPLAINED:
$datetimeis the system variable for the current date and time.- It's followed by the
:yyyyformat specifier, "extracting" just the year part. $useris the currently logged in user.- And with
.Namewe're getting its Name attribute. :enin English.
This example wasn't very practical, but it demonstrates a powerful feature- the system variables.
The next example is something quite useful. We'll define a calculated attribute, returning its data in JSON format. Just with a single line.
10: INTERPOLATE CONST: {{"Timestamp": "{$datetimeutc}", "Id": "{Id}", "Number": "{Number}", "Active": {Active}, "Name": "{Party.PartyName:en}", "SalesPerson": "{SalesPerson.Person.PartyName:en}"}}
OUTPUT:
{
"Timestamp":"2023-01-18 12:46:37",
"Id":"901d254b-7ad9-44e4-ab96-0668e9258311",
"Number":"ab30162",
"Active":true,
"Name":"Test PK 1",
"SalesPerson":""
}