web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :

Dynamic Business Central 365: ExtendedDatatype – Part 1: Contact-Related Types (PhoneNo, URL, EMail)

Khushbu Rajvi. Profile Picture Khushbu Rajvi. 20,133 Super User 2025 Season 2

In Microsoft Dynamics 365 Business Central (AL language), the ExtendedDatatype is an AL property that tells the Business Central client to treat the value in a field in a special way—for example as a clickable phone number, an email address, a URL, a masked (hidden) text, a barcode input, a rich text editor, etc. It doesn’t change the stored data type in SQL; it changes how the client renders and interacts with the value.    

Extended Data Types 

Value

 Runtime Version

Description / Behavior

⚪ None

v1.0

Default value — no special handling or conversion is applied.

📞 PhoneNo

v1.0

Treated as a phone number. Displayed as a clickable hyperlink when not editable. Clicking launches the default dialing app on your device.

🌐 URL

v1.0

Treated as a web address. Displayed as a clickable hyperlink when not editable. Clicking opens the default browser.

✉️ EMail

v1.0

Treated as an email address. Displayed as a clickable mail link when not editable. Clicking launches the default mail app.

📊 Ratio

v1.0

Displayed as a progress bar (values between 0.0–1.0). Not supported on the Web client.

🔒 Masked

v1.0

Displays the value as dots (••••) for privacy or security — useful for passwords or sensitive input.

👤 Person

v1.0

Handles media as a profile image, shown in rounded “signature” styling. Displays a silhouette when empty.

📄 Document

v16.0

Handles media as a document, optimizing layout for portrait-oriented content (like PDFs).

🧾 Barcode

v12.0

Treated as a barcode field. On mobile/tablet clients, users can set values using a barcode scanner (camera).

📝 RichContent

v12.0

Enables rich text editing (bold, italic, lists). Requires MultiLine = true and must be alone in its FastTab group.



In this part, we’ll look at how these three (📞 PhoneNo, 🌐 URL, and ✉️ EMail) datatypes transform ordinary text fields into interactive hyperlinks — allowing users to open a browser, dial a number, or compose an email with a single click.

These fields work beautifully on both web and mobile clients, making Business Central pages more intuitive and reducing manual steps for end users.

PhoneNo — Make Fields Click-to-Call 

When a field has ExtendedDatatype = PhoneNo, Business Central renders it as a clickable phone number whenever the page is not editable.


Clicking the phone number launches the dialer on your device with the number prefilled.

URL — Open Web Links

When ExtendedDatatype = URL, the text is recognized as a web address and automatically becomes clickable when not editable.


Clicking on the URL field opens the link directly in your default web browser.
In new tab:

EMail — Click to Compose ✉️

When ExtendedDatatype = EMail, Business Central recognizes it as an email address. When the page is read-only, it becomes a mail hyperlink that opens your default mail client (like Outlook) with the address pre-filled in the “To” field.

Clicking the email field launches your default mail client with the address ready in the “To” field.



Example Code: 

table 50110 "KR Contact Demo"
{
    Caption = 'KR Contact Demo';
    DataClassification = CustomerContent;

    fields
    {
        field(1; "Entry No."; Integer)
        {
            Caption = 'Entry No.';
            // Typically PK is populated by No. Series or manual input
        }
        field(2; "Phone No."; Text[30])
        {
            Caption = 'Phone No.';
            DataClassification = CustomerContent;
            ExtendedDatatype = PhoneNo;
        }
        field(3; "Website"; Text[250])
        {
            Caption = 'Website';
            DataClassification = CustomerContent;
            ExtendedDatatype = URL;
        }
        field(4; "Email"; Text[100])
        {
            Caption = 'Email';
            DataClassification = CustomerContent;
            ExtendedDatatype = EMail;
        }
    }

    keys
    {
        key(PK; "Entry No.")
        {
            Clustered = true;
        }
    }
}

page 50111 "KR Contact Demo Card"
{
    PageType = Card;
    SourceTable = "KR Contact Demo";
    ApplicationArea = All;
    Caption = 'KR Contact Demo Card';
    UsageCategory = Administration;

    layout
    {
        area(Content)
        {
            group(General)
            {
                field("Entry No."; Rec."Entry No.")
                {
                    ApplicationArea = All;
                    // Editable = false; // keep PK read-only on card
                }
            }
            group(Contact)
            {
                field("Phone No."; Rec."Phone No.")
                {
                    ApplicationArea = All;
                    // Set Editable = false to show as hyperlink in view mode
                    // Editable = false;
                }
                field("Website"; Rec."Website")
                {
                    ApplicationArea = All;
                    // Editable = false; // becomes clickable link
                }
                field("Email"; Rec."Email")
                {
                    ApplicationArea = All;
                    // Editable = false; // becomes mailto link
                }
            }
        }
    }
}

page 50112 "KR Contact Demo List"
{
    PageType = List;
    SourceTable = "KR Contact Demo";
    ApplicationArea = All;
    Caption = 'KR Contact Demo List';
    UsageCategory = Lists;
    CardPageId = "KR Contact Demo Card";
    SourceTableView = sorting("Entry No.") order(Ascending);

    layout
    {
        area(Content)
        {
            repeater(General)
            {
                field("Entry No."; Rec."Entry No.")
                {
                    ApplicationArea = All;
                }
                field("Phone No."; Rec."Phone No.")
                {
                    ApplicationArea = All;
                }
                field("Website"; Rec."Website")
                {
                    ApplicationArea = All;
                }
                field("Email"; Rec."Email")
                {
                    ApplicationArea = All;
                }
            }
        }
    }
}


OutPut:



Thanks For Reading...!!

Regards,
Khushbu Rajvi 



This was originally posted here.

Comments

*This post is locked for comments