Evaluates a string representation of a value into its typical representation. The result is assigned to a variable.
[Ok :=] EVALUATE(Variable, String[, Number]) |
Parameters
- Variable
- Type: Any type of variable The value of the string is assigned to the variable.
- String
- Type: Text constant or code A string that contains a value of any simple C/AL data type.
- Number
- Type: Integer This optional value can be used when exporting data with an XMLport. The only valid value is 9, which indicates that the data must be converted from XML format to C/SIDE format.
Property Value/Return Value
Type: Boolean
Specifies whether an error occurred during the evaluation of the string.
If the return value is true, then no errors occurred during the evaluation of the string and the value was assigned to Variable.
If the return value is false, then errors occurred during the evaluation of the string and the original value of Variable was not modified.
Example
This example shows how to use the EVALUATE function when it is called with four different types of variables.
This example requires that you create the following variables and text constants in the C/AL Globals window.
Variable name | DataType |
---|---|
VarInteger | Integer |
VarDate | Date |
VarYesNo | Boolean |
VarDuration | Duration |
Value | Text |
Ok1 | Boolean |
Ok1 | Boolean |
Ok3 | Boolean |
Ok4 | Boolean |
Text constant | ENU value |
---|---|
Text000 | VarInteger = #1######. The return code is: %2.\ |
Text001 | VarDate = #3######. The return code is: %4.\ |
Text002 | VarYesNo = #5######. The return code is: %6.\ |
Text003 | VarDuration = %7. The return code is: %8. |
Copy Code | |
---|---|
Value := '010196'; Ok1 := EVALUATE(VarInteger, Value); Ok2 := EVALUATE(VarDate, Value); Ok3 := EVALUATE(VarYesNo, Value); Value := '2days 4hours 3.7 seconds 17.3 milliseconds'; Ok4 := EVALUATE(VarDuration, Value); MESSAGE(Text000 + Text001 + Text002 + Text003, VarInteger, Ok1, VarDate, Ok2, VarYesNo, Ok3, VarDuration, Ok4); |
The message window displays the following:
VarInteger = 10196 . The return code is: Yes.
VarDate = 01/01/96. The return code is: Yes.
VarYesNo = No . The return code is: No.
VarDuration = 2 days 4 hours 3 seconds 717 milliseconds. The return code is: Yes.
This example shows that although Value ('010196') can be interpreted as both an integer and a date expression, it cannot be interpreted as a Boolean expression. This causes an error, shown in the return code Ok3 (=FALSE).
This example also shows that when you evaluate a string as a duration data type, you can use certain words in the string to describe the duration. The following words or abbreviations are supported:
-
day, days, d
-
hour, hours, h
-
minute, minutes, min, m
-
second, seconds, sec, s
-
millisecond, milliseconds, milli, millis
You can include decimal values in the string that you evaluate as a duration. Decimal values for milliseconds are ignored; only the whole number is evaluated.