+++
title = "Initialized Variables"
weight = 660
+++
Variables should always be set to a specific value, before they are used.

Bad code

    PROCEDURE SetPurchLine@22(VAR CurrentPurchLine@1000 : Record 39);
    VAR
    Pegging@1001 : Boolean;
    BEGIN
    IF Pegging THEN
    CurrQuantity := CurrentPurchLine."Quantity (Base)"
    ELSE
    CurrQuantity := CurrentPurchLine."Outstanding Qty. (Base)";
    END;

Good code

    PROCEDURE SetPurchLine@22(VAR CurrentPurchLine@1000 : Record 39);
    VAR
    Pegging@1001 : Boolean;
    BEGIN
    Pegging := IsPegging(CurrentPurchLine);
    IF Pegging THEN
    CurrQuantity := CurrentPurchLine."Quantity (Base)"
    ELSE
    CurrQuantity := CurrentPurchLine."Outstanding Qty. (Base)";
    END;

Bad code

    // In the example below, the function will always return FALSE.
    PROCEDURE GetItemsToPlan@22() : Boolean;
    BEGIN
    SETRANGE("Document Type","Document Type"::Order);
    ...
    FINDSET
    END;

Good code

    PROCEDURE GetItemsToPlan@22() : Boolean;
    BEGIN
    SETRANGE("Document Type","Document Type"::Order);
    ...
    EXIT(FINDSET)
    END;
