Option Data Type

Version: Available or changed with runtime version 1.0.

Denotes an option value. In the code snippet below, you can see how the Option data type is declared.

Syntax example

procedure HelloWithOptions(OptionParameter : Option Alpha, "Bra-vo")
    var 
        OptionVariable : Option C, "or D";
    begin
        Message('%1',OptionParameter::Alpha);
        Message('%1',OptionVariable::C);
    end;

Note

It is not possible to reference the members of the OptionParameter from outside the body of the procedure.

Remarks

In the OptionString Property of the field or variable, you can enter the option values as a comma-separated list. The Option type is a zero-based enumerator type, which means that the option values are assigned to sequential numbers, starting with 0. You can convert option data types to integers.

Example 1

The following code sample shows how to define an option field in a table.

field(0; PreferredContactMethodCode; Option)
{
    Caption = 'Preferred Method of Contact';
    // The OptionMembers property must be defined on an option field. It specifies which values can the field take.
    OptionMembers = Any,Email,Phone,Fax,Mail;
}

Example 2

This example shows how you can use the value of an option field as a constant in your AL code.

PurchHeaderRec."Document Type" := PurchHeaderRec."Document Type"::Invoice;   

See Also

Get Started with AL
Developing Extensions