Mindscript with Mind Expression

MindScript Container

We provide support for rendering code within a container environment.

To indicate code to be rendered, it should be enclosed within {{$ and }}. For instance, if the response-template field in a subject definition contains the following content:

A new format of it is {{$ sel dateFormat: 'MM/DD/YYYY'}}

If the sel is applied to the most recent input from the user, which is the query '2022-09-09', it would result in the displayed text.

A new format of it is 09/09/2022

That means, we interpret sel dateFormat: 'MM/DD/YYYY' as a MindScript code.

You can find the available MindScript classes and methods documentation for a container through the engine API at /public/v1/talk/documentation.

In addition to the engine API, this handbook provides documentation for all MindScript classes and methods.

Cheat sheet reference for SQL functions

SQL FunctionMindScript methodDescriptionExample

ABS

abs

returns the absolute value of a number

ab := -243.2 abs.

CAST

asInteger

to change the data type of a value into the other type.

'123' asIntger.

asNumber

'12.2' asNumber.

asString

12 asString.

REPLACE

replaceAll: with:

replace all occurrences of a string

ch := 'This is a string' replaceAll: 'is' with: 'was'. "ch = Thwas was a string"

CHARINDEX

findString:

locate the beginning position of a substring in a string

position := 'This is a string' findString: 'is'

findString: startingAt:

position := 'This is a string' findString: 'is' startingAt: 2.

FORMAT

asCustomNumber:

formats a value with the specified format

123456789 asCustomNumber: '##-##-#####'. "12-34-56789"

LEFT

left:

extracts a number of characters from a string (from left)

str := 'abcdefg' left: 5. "str = abcde"

RIGHT

right:

extracts a number of characters from a string (from right)

ri := 'abcdefg' right: 5. "ri = cdefg"

LEN

size

returns the length of a string

length := 'W3Schools.com' size. "length = 13"

LOWER

asLowercase

Convert the text to lower-case

lw := 'A string' asLowercase. "lw = a string"

UPPER

asUppercase

Convert the text to upper-case

up := 'A string' asUppercase. "up = A STRING"

LTRIM

trimLeft

Remove leading spaces from a string

tl := ' A string' trimLeft. "tl = A string"

RTRIM

trimRight

Remove trailing spaces from a string

tr := 'A string' trimRight. "tr = A string"

SUBSTRING

copyFrom: to:

extracts some characters from a string

substr := 'abcdefg' copyFrom: 1 to 5. "substr = abcde"

FLOOR

floor

the largest integer value of a number

fl := 25.75 floor. "fl = 25"

RAND

Random

a random number between 0 (inclusive) and 1 (exclusive)

ran := Random between: 0 and: 6. "ran >= 0 and: rand < 6"

ROUND

asCustomNumber:

rounds a number to a specified number of decimal places

(234.414 asCustomNumber: '0.00') asNumber. "234.41"

DATEDIFF

dateDiff: as:

find the difference between two dates

dy := '2017/08/25' dateDiff: '2019/08/25' as: #year. "dy = 2"

DATEADD

dateAdd: as: format:

adds a time/date interval to a date and then returns the date

date := '2017/08/25' dateAdd: 2 as: #month format: 'YYYY/MM/DD'. "date = 2017/10/25"

DATEPART

dateFormat:

a specified part of a date

yyyy := ('2017/08/25' dateFormat: 'YYYY') asInteger. "yyyy = 2017"

DAY

dateFormat:

the day of the month (from 1 to 31) for a specified date

dd := ('2017/08/25' dateFormat: 'DD') asInteger. "dd = 25"

MONTH

dateFormat:

the month part for a specified date (a number from 1 to 12)

mm := ('2017/08/25' dateFormat: 'MM') asInteger. "mm = 8"

YEAR

dateFormat:

the year part for a specified date

yyyy := ('2017/08/25' dateFormat: 'YYYY') asInteger. "yyyy = 2017"

GETDATE

dateFormat:

the current database system date and time

now := 'now' dateFormat: 'YYYY-MM-DD'. "now is a date string of now"

Last updated