---
id: video/Ug_uM59DRRE
type: video
title: Demo or Disaster? How to build better Business Central demos?
summary: Building Business Central demo data with Microsoft's Contoso Coffee framework and an open source Demo Data Generator that creates AL modules from existing data. Evidence for the module codeunit pattern, what the generator automates (about 80 percent) and what stays manual.
tier: community
language: en
tags:
  - demo data
  - contoso coffee framework
  - demo data generator
  - initialization logic
  - rapid start packages
  - configuration packages
  - codeunit pattern
  - module architecture
  - master data setup
  - boilerplate automation
  - al code generation
  - open source
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:18:49.369Z"
  flags: []
generated:
  at: "2026-10-07T23:18:49.444Z"
  pipeline: 0.2.0
  prompts:
    extract-video: 1
    summarize-video: 2
  input_hash: 63bcbb8d18fa5034c2fade1339bb517700b4cad1d7d2fe485b33039f4dda3774
evidence:
  - kind: video
    url: https://www.youtube.com/watch?v=Ug_uM59DRRE&t=358s
    title: Demo or Disaster? How to build better Business Central demos?
    date: "2026-09-21T09:26:39.000Z"
    commit: null
    t: 358
    quote: I am probably not the only one who has more spent more than a day or even more preparing demo data for presentations
  - kind: video
    url: https://www.youtube.com/watch?v=Ug_uM59DRRE&t=374s
    title: Demo or Disaster? How to build better Business Central demos?
    date: "2026-09-21T09:26:39.000Z"
    commit: null
    t: 374
    quote: good demo data or good demo preparation takes a lot of time not because it's very complex work but because it's tedious mechanical
  - kind: video
    url: https://www.youtube.com/watch?v=Ug_uM59DRRE&t=420s
    title: Demo or Disaster? How to build better Business Central demos?
    date: "2026-09-21T09:26:39.000Z"
    commit: null
    t: 420
    quote: Production data and demos, real customer names, real amounts in a screen share on a projector. We've seen it
  - kind: video
    url: https://www.youtube.com/watch?v=Ug_uM59DRRE&t=625s
    title: Demo or Disaster? How to build better Business Central demos?
    date: "2026-09-21T09:26:39.000Z"
    commit: null
    t: 625
    quote: in 2022 they started building something better. Uh back then Microsoft shipped something quietly as part of wave 1 and 2022 a new tool
  - kind: video
    url: https://www.youtube.com/watch?v=Ug_uM59DRRE&t=711s
    title: Demo or Disaster? How to build better Business Central demos?
    date: "2026-09-21T09:26:39.000Z"
    commit: null
    t: 711
    quote: at the center is a module code unit it implements a standard interface that
links:
  learn: []
  objects:
    - object/table/270
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
video_id: Ug_uM59DRRE
channel: yt-areopa
source_name: Areopa webinars
url: https://www.youtube.com/watch?v=Ug_uM59DRRE
published_at: "2026-09-21T09:26:39.000Z"
duration_s: 2862
captions: derived
audience:
  - developer
  - functional consultant
  - partner
chapters:
  - t: 0
    title: Introduction and webinar logistics
  - t: 243
    title: Session overview and agenda
  - t: 353
    title: The pain - challenges with demo data preparation
  - t: 455
    title: Demo environment fragmentation and implementation data connection
  - t: 549
    title: Historical context - limitations of rapid start configuration packages
  - t: 625
    title: Microsoft's Contoso Coffee demo data framework evolution
  - t: 699
    title: Contoso Coffee framework architecture and design pattern
  - t: 978
    title: Kontoso Framework Limitations and the Demo Data Generator Tool
  - t: 1121
    title: Demo Data Generator configuration and code generation
  - t: 1670
    title: The 20% manual work after generation
  - t: 1772
    title: Developer and consultant collaboration workflow with AI prompts
  - t: 2047
    title: Managing manual edits, regeneration and configuration package import
  - t: 2388
    title: Key takeaways and open source strategy
  - t: 2484
    title: Q&A, AI role in demo data, and closing remarks
features:
  - name: Contoso Coffee demo data framework
    status: unclear
    t: 625
    verified: false
    status_source: video
  - name: Demo data module codeunit pattern
    status: unclear
    t: 699
    verified: false
    status_source: video
  - name: Helper codeunit pattern for safe data insertion
    status: unclear
    t: 733
    verified: false
    status_source: video
  - name: Data codeunit pattern with literal values
    status: unclear
    t: 743
    verified: false
    status_source: video
  - name: Enum extension for module registration
    status: unclear
    t: 757
    verified: false
    status_source: video
  - name: Contoso Coffee manufacturing module
    status: unclear
    t: 644
    verified: false
    status_source: video
  - name: Contoso Coffee 2024 wave 2 expansion
    status: unclear
    t: 656
    verified: false
    status_source: video
  - name: Rapid start configuration packages
    status: unclear
    t: 555
    verified: false
    status_source: video
  - name: Demo Data Generator Tool
    status: unclear
    t: 1025
    verified: false
    status_source: video
  - name: AI prompts for code readability
    status: unclear
    t: 1908
    verified: false
    status_source: video
  - name: Transactional data placeholder generation
    status: unclear
    t: 1948
    verified: false
    status_source: video
  - name: Manual edit preservation across regeneration
    status: unclear
    t: 2093
    verified: false
    status_source: video
  - name: Configuration package import
    status: unclear
    t: 2315
    verified: false
    status_source: video
objects_mentioned:
  - interface controls demo data module
  - codeunit Contoso bank helper code unit
  - codeunit Contoso Bank Helper
  - table Bank Account
  - table Bank Account Posting Groups
  - table Table 270
  - codeunit helper code unit
  - table bank card posting groups
  - table bank export input setup
  - table GL entries
  - other demo data generator
quotes:
  - t: 358
    text: I am probably not the only one who has more spent more than a day or even more preparing demo data for presentations
    check: exact
  - t: 374
    text: good demo data or good demo preparation takes a lot of time not because it's very complex work but because it's tedious mechanical
    check: exact
  - t: 420
    text: Production data and demos, real customer names, real amounts in a screen share on a projector. We've seen it
    check: exact
  - t: 625
    text: in 2022 they started building something better. Uh back then Microsoft shipped something quietly as part of wave 1 and 2022 a new tool
    check: exact
  - t: 711
    text: at the center is a module code unit it implements a standard interface that
    check: fuzzy
---

# Demo or Disaster? How to build better Business Central demos?

> Building Business Central demo data with Microsoft's Contoso Coffee framework and an open source Demo Data Generator that creates AL modules from existing data. Evidence for the module codeunit pattern, what the generator automates (about 80 percent) and what stays manual.

[Watch on YouTube](https://www.youtube.com/watch?v=Ug_uM59DRRE) · Areopa webinars · 2026-09-21 · 47:42 · tier community · reviewed (checked by Opus)

## Overview

The webinar covers why demo data preparation is slow and tedious, and why Rapid Start configuration packages fall short: limited validation, a static approach, poor version control, and breakage on schema changes. It then walks through Microsoft's Contoso Coffee framework, which began with a manufacturing module in 2022 wave 1 and grew in 2024 wave 2 to foundation, finance, CRM, bank, purchasing and sales modules.

The speaker then presents an open source Demo Data Generator that runs inside Business Central. It reads existing data and generates AL modules that follow the Contoso pattern. The session shows the generation, the AI prompts for readable code, preservation of manual edits on regeneration, and import of configuration packages. It also lists the roughly 20 percent of work that stays manual.

## Key points

- Contoso Coffee modules are built around a module codeunit that implements the controls demo data module interface. Its four entry points create setup, master, transactional and historical data.
- Helper codeunits handle safe insertion (existence check, override, validation, modification). Data codeunits hold literal values and label constants for primary keys. An enum extension registers each module.
- Rapid Start configuration packages are limited by weak validation, a static approach, poor version control and breakage on schema changes.
- The Demo Data Generator creates module, helper and data codeunits and enum extensions from existing data. It removes about 80 percent of the boilerplate effort.
- Manual work remains for dynamic fields, transactional data (which needs domain knowledge), data cleanup and checking cross-entity references.
- Transactional data comes out as placeholder codeunits with to-do comments plus JSON exports of historical records. These can be used with AI prompts to recreate posted documents.
- Regeneration preserves manual edits and shows modified versus unchanged segment counts. Single segments can be reverted, and force regeneration overwrites all manual edits.

## Chapters

- [0:00](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=0s) Introduction and webinar logistics
- [4:03](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=243s) Session overview and agenda
- [5:53](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=353s) The pain - challenges with demo data preparation
- [7:35](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=455s) Demo environment fragmentation and implementation data connection
- [9:09](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=549s) Historical context - limitations of rapid start configuration packages
- [10:25](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=625s) Microsoft's Contoso Coffee demo data framework evolution
- [11:39](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=699s) Contoso Coffee framework architecture and design pattern
- [16:18](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=978s) Kontoso Framework Limitations and the Demo Data Generator Tool
- [18:41](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1121s) Demo Data Generator configuration and code generation
- [27:50](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1670s) The 20% manual work after generation
- [29:32](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1772s) Developer and consultant collaboration workflow with AI prompts
- [34:07](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2047s) Managing manual edits, regeneration and configuration package import
- [39:48](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2388s) Key takeaways and open source strategy
- [41:24](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2484s) Q&A, AI role in demo data, and closing remarks

## Features

| Feature | Status | At |
|---|---|---|
| Contoso Coffee demo data framework | status not stated, demoed | [10:25](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=625s) |
| Demo data module codeunit pattern | status not stated, demoed | [11:39](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=699s) |
| Helper codeunit pattern for safe data insertion | status not stated, demoed | [12:13](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=733s) |
| Data codeunit pattern with literal values | status not stated | [12:23](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=743s) |
| Enum extension for module registration | status not stated | [12:37](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=757s) |
| Contoso Coffee manufacturing module | status not stated | [10:44](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=644s) |
| Contoso Coffee 2024 wave 2 expansion | status not stated | [10:56](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=656s) |
| Rapid start configuration packages | status not stated | [9:15](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=555s) |
| Demo Data Generator Tool | status not stated, demoed | [17:05](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1025s) |
| AI prompts for code readability | status not stated, demoed | [31:48](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1908s) |
| Transactional data placeholder generation | status not stated, demoed | [32:28](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1948s) |
| Manual edit preservation across regeneration | status not stated, demoed | [34:53](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2093s) |
| Configuration package import | status not stated, demoed | [38:35](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2315s) |

## AL objects mentioned

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

- interface "controls demo data module" at [13:20](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=800s)
- codeunit "Contoso bank helper code unit" at [14:12](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=852s)
- codeunit "Contoso Bank Helper" at [14:12](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=852s)
- [table 270 "Bank Account"](../objects/table/270.md) at [13:52](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=832s)
- table "Bank Account Posting Groups" at [15:09](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=909s)
- table "Table 270" at [22:17](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1337s)
- codeunit "helper code unit" at [26:52](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1612s)
- table "bank card posting groups" at [26:42](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1602s)
- table "bank export input setup" at [26:06](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1566s)
- table "GL entries" at [32:28](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1948s)
- other "demo data generator" at [41:13](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2473s)

Not found in BC28-30: interface "controls demo data module", codeunit "Contoso bank helper code unit", codeunit "Contoso Bank Helper", table "Bank Account Posting Groups", table "Table 270", codeunit "helper code unit", table "bank card posting groups", table "bank export input setup", table "GL entries".

## Quotes

- [5:58](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=358s) "I am probably not the only one who has more spent more than a day or even more preparing demo data for presentations"
- [6:14](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=374s) "good demo data or good demo preparation takes a lot of time not because it's very complex work but because it's tedious mechanical"
- [7:00](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=420s) "Production data and demos, real customer names, real amounts in a screen share on a projector. We've seen it"
- [10:25](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=625s) "in 2022 they started building something better. Uh back then Microsoft shipped something quietly as part of wave 1 and 2022 a new tool"
- [11:51](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=711s) "at the center is a module code unit it implements a standard interface that"

## Disclaimers in the video

- [11:09](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=669s) other: 2025 wave 1 continued the trend
- [17:05](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=1025s) other: The demo data generator is an open source tool
- [41:46](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2506s) other: I don't know of anything any fancy new uh news that Microsoft is planning for the Contoso coffee framework
- [42:25](https://www.youtube.com/watch?v=Ug_uM59DRRE&t=2545s) other: in the German uh demo data sets, there are some some things that are not really up to best practice

Presenters (as heard): Simon Fischer, Simon, Natalie Kavak, Fencer.
