Microsoft DynamicsFree templatePDF, Excel, Word exportMicrosoft Dynamics 365 Business Central

Business Central Functional Design Document Template

Every Business Central customisation should start with a short, shared document. This template walks from requirement to standard behaviour, gap, options, solution, objects and tests so consultant, developer and business owner agree before any AL is written.

Fill in

Live preview
Download:

Business Central Functional Design Document Template

Functional Design Document FDD-014: Production order scrap reason code

Area: Manufacturing Author: A. Consultant Date: 2026-11-09 Priority: Should have Estimated effort: 6 days

1. Business requirement

Operators must record a reason code whenever scrap is reported on a production order output line, so quality can analyse scrap by cause.

2. Standard Business Central behaviour

Standard BC records scrap quantity and scrap percent on routing lines but has no reason code on posted output journal lines.

3. Gap and options

Option A: configure standard functionality only. Option B: personalise pages without code. Option C: build an AL extension.

Recommended: see proposed solution below.

4. Proposed solution

Add a Scrap Reason Code table and a field on the output journal line that is required when scrap quantity is greater than zero. Carry the value to the capacity ledger entry.

5. Objects affected

Object typeName or IDChangeNotes
TableNew / extend
PageNew / extend
CodeunitEvent subscriber
ReportNew / modify
Permission setAdd objects

6. Data, migration and permissions

Describe new setup data, migration of existing records and which roles need access. Include upgrade impact for future BC versions.

7. Test cases

TestStepsExpected resultPass/Fail
1
2
3

Approvals

Business owner / Date
Functional consultant / Date
Developer / Date
Project manager / Date

Replace the placeholder rows with your real objects and tests. Object ranges must come from your assigned ID range in app.json. Check event availability in your BC version before committing to a design.

Design review

Get an expert read of a BC design document before development begins. Optional.

Optional. The tool and every export work without this. No spam.

How to use it

Fill the fields for one change at a time. State the requirement in business terms, not as a technical solution. Describe what standard BC does today, which is the evidence for the gap. Choose the proposed solution and estimate effort. Export the document, complete the objects and test tables, then collect sign-off from the business owner and the developer.

Configure, personalise or extend

Business Central favours extensions over modifying base code. Always consider configuration first, then page personalisation or Power Platform options, and only then an AL extension. Extensions use events and extend existing objects, which keeps upgrades manageable. Documenting the options considered shows reviewers why code was needed and protects against scope creep.

  • Prefer event subscribers over copying standard logic
  • Keep each extension focused on one capability
  • Record permission set changes in the same document

Writing good test cases

Write tests the business can run in the sandbox: starting data, steps, expected result. Include a negative test, such as trying to post without the new required value, and a permission test with a limited user. Link the test IDs to your user acceptance test script so nothing built is left untested.

Common mistakes

Skipping the standard behaviour section leads to rebuilding what BC already does. Another mistake is omitting upgrade impact: changes to posting routines, tables used by Microsoft apps and obsolete features cause trouble when BC releases a new wave. Finally, forgetting permission sets means a feature works for the developer and fails for every user.

Frequently Asked Questions

Do I need a separate FDD for every change?

For anything beyond configuration, yes, but keep each short. One to three pages per capability is typical. Small related changes can share a document if they ship together and have the same owner and tests.

What is the difference between functional and technical design?

The functional design explains what the system should do and why, in business language. The technical design explains how objects, events and data structures will implement it. This template combines both at a light level; split them for larger solutions.

How do I estimate effort reliably?

Count affected objects, integration points, test effort and documentation. Add time for permissions, upgrade checks and review. Compare against similar past changes. Give a range when uncertainty is high and refine after the solution is validated in a sandbox.

Does the template cover Power Automate or API integrations?

Use the Integration functional area and list the endpoints, flows or web services in the objects table. Add authentication, error handling and volume notes in the data and permissions section, since those drive most integration defects.

Netray can accelerate specification and AL drafting with private AI assistants that stay under developer review. Ask how that would fit your partner team.