Expressions Syntax [AX 2012]
Updated: February 1, 2012
Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012
An expression in X++ is used in either a mathematical or logical way. Expressions are built on the data types of the language; that is, an expression returns a value of some type. This value can be used in calculations, assignments, conditional statements, and so on.
|
Expression |
= |
Simple-expression [RelationalOperator Simple-expression ] |
|
RelationalOperator |
= |
= | != | < | > | <= | >= | like |
|
Simple-expression |
= |
Simple-expression [ + | - | | ] Term | Term |
|
Term |
= |
Compfactor { Mult-operator CompFactor } |
|
Mult-operator |
= |
* | / | div | mod | << | >> | & | ^ | | |
|
CompFactor |
= |
[ ! ] [ - | ~ ] Factor |
|
Factor |
= |
Literal | Enum | Variable | FunctionCall | ( If-expression ) | Select-expression |
|
Enum |
= |
EnumName :: Literal |
|
Variable |
= |
Identifier [ [ Expression ] ] [ . Expression ] |
|
FunctionCall |
= |
[ Expression (. | ::) | this . ] FunctionName ( argumentlist ) |
|
If-expression |
= |
Expression ? Expression : Expression |
Semantic restrictions apply on the preceding syntax. You cannot call any method using the :: operator. Similarly, you cannot use the this keyword without an active object; that is, if you are not within a method and so on.
|
Example of expression |
Description |
|---|---|
|
1 |
An integer literal. |
|
NoYes::No |
An enum-reference. |
|
A |
A variable-reference. |
|
Debtor::Find("1") |
A static method-call (returns a customer variable). |
|
(A > 3 ? true : false) |
An if-expression that returns true or false. |
|
(select CustTable where CustTable.Account == "100").NameRef |
A select-expression. Returns the nameref field in the customer table. This is a string. |
|
A >= B |
A logical expression. Returns true or false. |
|
A + B |
An arithmetic expression. Sums A and B. |
|
A + B / C |
Calculates B/C, and then adds this to A. |
|
~A + this.Value() |
Sums binary not A and the result of the method-call Value on the object in scope (this). |
|
Debtor::Find("1").NameRef |
Returns the NameRef field of the found customer record. |
|
Debtor::Find("1").Balance() |
A method call to Balance in the customer table (Debtor::Find returns a customer). Returns the balance of the customer with account number 1. |
Announcements: New book: "Inside Microsoft Dynamics AX 2012 R3" now available. Get your copy at the MS Press Store.