Statements and Expressions

A C/AL statement is a code instruction that when it is executed, causes operations to occur, which can change one or more variables or initiate read and write transactions to the database.

A C/AL statement is built from expressions.

A C/AL expression is a group of characters (data values, variables, arrays, operators, and functions) that can be evaluated, with the result having an associated data type. An expression is a fundamental C/AL concept. All expressions in C/AL are built from the following:

  • Constants

  • Variables

  • Operators

  • Functions

  • Keywords

    For more information about constants, variables, operators, functions, and keywords, see Elements of C/AL Expressions.

Example 1

For this example, consider the following C/AL code.

Amount := 34 + Total;  

This line of code is also called a statement. The following table illustrates how the statement can be broken into smaller elements.

Element Description
34 + Total An expression.

This expression consists of an arithmetic operator (+) and two arguments (34 and Total), which could also be called sub-expressions.

Every valid C/AL expression can be evaluated to a specific value.
:= The assignment operator.

When the expression on the right side has been evaluated, this operator is used to assign or store the value in the variable on the left side.
Amount A variable.

Used to reference a memory location where data is stored.

Example 2

An expression can be used as an argument for a C/AL function. Consider the following C/AL statement.

Date := DMY2DATE(31, 12, 2001);  

This function takes three simple expressions as arguments: 31, 12, and 2001.

Typical Expressions

Depending on the elements in the expression, the evaluation gives you a value with a C/AL data type. The following table shows some typical expressions.

Expression Evaluates to Description
'Welcome to Hawaii' The string 'Welcome to Hawaii' Evaluates to itself.
'Welcome ' + 'to Hawaii' The string 'Welcome to Hawaii' Evaluates to a concatenation of the two strings.
43.234 The number 43.234 Evaluates to itself, a decimal number.
ABS(-7234) The number 7234 A function that evaluates to a number.
len1 < 618 TRUE or FALSE, depending on the value of len1 A comparison between a variable and a numeric constant, which evaluates to a Boolean value.

These examples show that when C/AL expressions are evaluated, the results have a specific data type. For more information about data types, see C/AL Data Types.