---
id: post/mohana-blog/tag-blogger-com-1999-blog-1492436440038408053-post-3210455512131359826--dd131816e4
type: post
title: "Record.IsDirty in Business Central 29: a worked example"
summary: Record.IsDirty() is a new API in Business Central 29 that lets AL code check whether a record instance has changed since it was loaded, eliminating the need to manually track change state. It returns true when in-memory values differ from the database and false when they match.
tier: community
language: en
tags:
  - al development
  - record api
  - business central 29
  - change detection
  - runtime requirements
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:46:07.422Z"
  flags: []
generated:
  at: "2026-10-07T22:42:12.892Z"
  pipeline: 0.2.0
  prompts:
    extract-post: 1
  input_hash: a86c99c52b37f01af2f5e108ef422e460c18301fa3d3ce089e7eadf094dac60f
evidence:
  - kind: blog
    url: http://mohana-dynamicsnav.blogspot.com/2026/10/recordisdirty-in-business-central-29.html
    title: "Record.IsDirty in Business Central 29: a worked example"
    date: "2026-10-02"
    commit: null
    t: null
    quote: null
  - kind: blog
    url: http://mohana-dynamicsnav.blogspot.com/2026/10/recordisdirty-in-business-central-29.html
    title: "Record.IsDirty in Business Central 29: a worked example"
    date: "2026-10-02"
    commit: null
    t: null
    quote: Record.IsDirty() tells you whether a record instance has changed since it was loaded.
  - kind: blog
    url: http://mohana-dynamicsnav.blogspot.com/2026/10/recordisdirty-in-business-central-29.html
    title: "Record.IsDirty in Business Central 29: a worked example"
    date: "2026-10-02"
    commit: null
    t: null
    quote: Set runtime to 18.0 or later in app.json before you build it.
links:
  learn: []
  objects:
    - object/table/18
    - object/page/21
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
post_id: tag:blogger.com,1999:blog-1492436440038408053.post-3210455512131359826
source_id: mohana-blog
source_name: Mohana's Dynamics NAV & BC blog
url: http://mohana-dynamicsnav.blogspot.com/2026/10/recordisdirty-in-business-central-29.html
published_at: "2026-10-02T06:07:43.000Z"
author: Mohana Yadav
full_text: false
words: 371
quotes:
  - text: Record.IsDirty() tells you whether a record instance has changed since it was loaded.
    why_it_matters: This is the core capability that solves the problem of detecting changes without manual state tracking
  - text: Set runtime to 18.0 or later in app.json before you build it.
    why_it_matters: Critical technical requirement; failure to follow this prevents the feature from working
code_objects_mentioned:
  - table Customer
  - page Customer Card
systems:
  - development
versions_mentioned:
  - "29"
  - 2026 release wave 2
preview:
  embeddable: true
  frame_url: null
  image: https://blogger.googleusercontent.com/img/a/AVvXsEhgXIrNvXgOl9mgQVHHIZ07LfH1ccvAus6RwWRqLEL6wp8BMBHCt_Um4KIO6sw2qIcXIYjuqtdUoSIQksYPnbWvvrgdmRur2hixb9umxnBEoVWRm2OmeFh99ajFgzFWUq7LA_dh_aEyOXAbH488r0XZNZk-NuDVP1RWzcytb6uYpp46mejj9d0HUc1URQ72=w1200-h630-p-k-no-nu
  image_alt: null
  image_w: null
  image_h: null
  site_name: null
  favicon: https://mohana-dynamicsnav.blogspot.com/favicon.ico
  probed_at: "2026-10-07T11:49:42.897Z"
---

# Record.IsDirty in Business Central 29: a worked example

[Read the post](http://mohana-dynamicsnav.blogspot.com/2026/10/recordisdirty-in-business-central-29.html) · Mohana's Dynamics NAV & BC blog (Mohana Yadav) · 2026-10-02 · 371 words · tier community · reviewed (checked by Opus)

> Record.IsDirty() is a new API in Business Central 29 that lets AL code check whether a record instance has changed since it was loaded, eliminating the need to manually track change state. It returns true when in-memory values differ from the database and false when they match.

## Key points

- Record.IsDirty() returns true when in-memory values differ from what came back from the database, false when they still match
- This capability existed for RecordRef since runtime 5.0 but is now available directly on the Record data type in version 29
- Developers can use it to decide whether a record needs validating, saving, or user prompts without manual state tracking
- Requires runtime 18.0 or later; compiling against runtime 17.0 produces diagnostic AL0666

## Quotes

- "Record.IsDirty() tells you whether a record instance has changed since it was loaded." (This is the core capability that solves the problem of detecting changes without manual state tracking)
- "Set runtime to 18.0 or later in app.json before you build it." (Critical technical requirement; failure to follow this prevents the feature from working)

## AL objects mentioned

As named in the post. A name that matches one object page by exact type and name links to it; the others stay as named.

- [table 18 "Customer"](../../objects/table/18.md)
- [page 21 "Customer Card"](../../objects/page/21.md)

## Context

- Features: Record.IsDirty(), change state detection, record validation, runtime 18.0 support
- Versions: 29, 2026 release wave 2

Source: Mohana's Dynamics NAV & BC blog, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.
