Domain 5 β€” Module 4 of 4 100%
20 of 28 overall
Domain 5: Implement Reporting Free ⏱ ~16 min read

Excel Integration & Electronic Reporting

Master Edit in Excel via OData, Excel templates, and the Electronic Reporting framework for generating regulatory documents like tax filings and e-invoices.

Two different tools, two different jobs

Simple explanation

Excel integration is like a two-way window between F&O and a spreadsheet. Users open data in Excel, edit it, and push changes back β€” perfect for bulk updates like adjusting 500 item prices.

Electronic Reporting (ER) is like a document factory. You design a template, feed it data from F&O, and it stamps out documents β€” tax returns, payment files, e-invoices β€” in exactly the format the government or bank requires. No X++ coding needed.

Excel = interactive editing. ER = automated document generation.


Part 1: Excel integration

Edit in Excel

The β€œEdit in Excel” button appears on most list pages in F&O. It opens the current entity’s data in Excel via an OData connection.

ConceptDetail
OData entityThe data entity must have IsPublic = Yes to be available
Data connectorThe Excel Add-in for Dynamics 365 manages the OData connection
BidirectionalUsers can read data AND push changes back (if they have write permissions)
FilteringFilters applied in F&O carry over to the Excel view
Batch editUsers can modify hundreds of rows and publish all changes at once
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    OData     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    Publish    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  F&O Entity  │◀───────────▢│  Excel        │──────────────▢│  F&O Entity  β”‚
β”‚  (read)      β”‚  GET         β”‚  (edit cells) β”‚   POST/PATCH  β”‚  (updated)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Scenario: Warehouse bulk update

PacificForge’s warehouse team needs to update safety stock levels for 800 items:

  1. Navigate to Released products list
  2. Click Edit in Excel β†’ opens the entity in Excel
  3. Filter to the relevant warehouse
  4. Update the safety stock column for all 800 rows
  5. Click Publish β†’ all changes pushed back via OData

β€œWhat used to take a full day now takes 30 minutes,” Elena tells Gregor.

Excel templates

Excel templates are pre-formatted workbooks with embedded data bindings β€” a designed experience with headers, formatting, and specific field layouts.

Edit in Excel = ad-hoc. Templates = standardised and branded.
FeatureEdit in ExcelExcel Template
SetupZero β€” built-in buttonTemplate must be created and uploaded
LayoutGeneric tabular gridPre-formatted with headers, formulas, branding
FieldsAll entity fields availableOnly specified fields in the template
Use caseAd-hoc bulk editingStandardised data entry or export format
ReusableOpens fresh each timeTemplate saved in Document Templates gallery
Creating an Excel template

To create a custom Excel template:

  1. Navigate to Common β†’ Document templates
  2. Click New β†’ select the data entity
  3. Download the generated Excel file
  4. In Excel, arrange fields, add formatting, add formulas
  5. Upload the customised template back to F&O
  6. Users can now select this template from the Edit in Excel dropdown

Templates support multiple entities in one workbook β€” useful for header/line scenarios like sales orders.

OData entity requirements for Excel

RequirementWhy
IsPublic = YesOnly public entities are exposed via OData
Data management enabledEntity must be registered in the Data Management framework
Key fields definedOData needs a unique key to identify records for updates
Appropriate securityUser must have the privilege to read/write the entity
Change tracking enabledRecommended for publish-back β€” tracks which records changed

Part 2: Electronic Reporting (ER)

Why ER exists

Every country has its own format for tax returns, payment files, and regulatory reports. Before ER, developers wrote custom X++ for each format. ER replaces that with a configuration-driven approach β€” business users and consultants can modify formats without code.

ER architecture: three layers

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 ER Configuration                 β”‚
β”‚                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  Data Model   β”‚    β”‚  Model Mapping        β”‚   β”‚
β”‚  β”‚  (abstract    │◀──▢│  (maps model to       β”‚   β”‚
β”‚  β”‚   structure)  β”‚    β”‚   F&O tables/entities) β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚         β”‚                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”                                β”‚
β”‚  β”‚  Format       β”‚                                β”‚
β”‚  β”‚  (output      β”‚                                β”‚
β”‚  β”‚   template)   β”‚                                β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Three layers β€” separation enables reuse and localisation
LayerPurposeWho manages itExample
Data ModelDefines abstract data structure β€” what fields are availableMicrosoft (standard) or developer (custom)InvoiceModel: InvoiceNumber, Date, Lines[], TaxAmount
Model MappingMaps abstract fields to actual F&O tables and entitiesDeveloper or consultantInvoiceModel.InvoiceNumber β†’ CustInvoiceJour.InvoiceId
FormatDefines output structure and layout (XML, Excel, text)Consultant or business userNZ GST Return XML with specific element names
Why three separate layers?

The three-layer separation is the key design principle of ER:

  • One data model can serve multiple formats β€” same invoice model generates NZ XML, AU XML, and US text
  • Format changes don’t require code β€” tax authority changes XML schema? Update format only
  • Model mappings can be swapped β€” same format, different data source
  • Versioning β€” each layer versioned independently

This is heavily tested on the exam.

ER Global Repository

Microsoft provides hundreds of pre-built ER configurations via the Global Repository.

ConceptDetail
Global RepositoryCloud-hosted library of ER configurations by Microsoft
ImportDownload configurations to your F&O environment
DeriveCreate a custom version based on a Microsoft config (preserves upgradeability)
VersioningEach configuration has versions β€” import specific ones
ProviderEach config has a provider (Microsoft or your custom provider)
Scenario: Elena implements NZ e-invoicing

New Zealand is rolling out mandatory e-invoicing. Elena’s approach:

  1. Opens Electronic Reporting workspace β†’ Repository β†’ Global
  2. Searches for β€œNew Zealand” β†’ finds the NZ e-invoice format
  3. Imports the format and its dependent data model + mapping
  4. Derives a custom version (so PacificForge can add custom fields)
  5. Opens the Format Designer β†’ adds PacificForge’s β€œProduction Batch” field
  6. Configures the format to run from Accounts Receivable invoicing

β€œWhen Microsoft updates the base format, our derived version inherits changes automatically,” Elena explains to Kenji.

Format Designer

The visual tool for building ER output templates:

Element typePurposeExample
FileRoot element β€” defines the output fileNZGSTReturn.xml
XML elementStructural grouping<TaxReturn>, <Header>, <Lines>
AttributeXML attributes or cell referencesversion="2.0"
ContentData values from the modelInvoiceNumber, TaxAmount
SequenceOrdered list of repeating elementsInvoice lines, payment transactions
ConditionConditional inclusionOnly include <Discount> if discount > 0

Data Model Designer

Defines the abstract data structure:

ConceptDetail
RootEntry point β€” a model can have multiple roots
RecordA data element (like a table row)
Record listA repeating collection (like invoice lines)
FieldsIndividual data points (string, integer, date, real, enum, boolean)
Calculated fieldsFormulas using ER expression language
ReferencesLinks between records

ER expression language

FunctionPurposeExample
FORMATString formattingFORMAT("INV-%1", model.InvoiceNumber)
NUMBERFORMATNumber to textNUMBERFORMAT(model.Amount, "N2")
DATEFORMATDate to textDATEFORMAT(model.InvoiceDate, "yyyy-MM-dd")
IFConditional logicIF(model.TaxAmount > 0, "Taxable", "Exempt")
SUMIFConditional sumSUMIF(model.Lines, Lines.Category = "Tax", Lines.Amount)
FILTERFilter a record listFILTER(model.Lines, Lines.Amount > 100)
Exam tip: ER expressions vs X++ code

The exam tests when ER expressions are sufficient vs when X++ is needed:

  • ER expression β€” string formatting, date conversion, simple math, filtering, conditional output
  • X++ code needed β€” complex business logic, external API calls, database operations not exposed in the data model

ER is designed so most regulatory reporting needs are met without code.

ER vs SSRS: when to use which

SSRS = printed documents with layout. ER = structured electronic documents.
ScenarioSSRSElectronic Reporting
Customer invoice (printed PDF)βœ… Best fit β€” pixel-perfect layoutPossible but overkill
Tax return in government XML❌ Not designed for structured data filesβœ… Purpose-built for this
Bank payment file (ISO 20022)❌ Wrong toolβœ… Standard config in Global Repo
Warehouse picking listβœ… Operational doc with layout control❌ Over-engineered
E-invoice (Peppol/UBL format)❌ Can't generate structured XMLβœ… Standard configs available
Internal management reportβœ… Tabular/summary report❌ Not designed for ad-hoc reporting

Question

What are the three layers of an Electronic Reporting configuration?

Click or press Enter to reveal answer

Answer

1) Data Model β€” abstract data structure (fields, records, lists). 2) Model Mapping β€” maps model fields to F&O tables/entities. 3) Format β€” defines output template (XML, Excel, text). This separation lets one model serve multiple formats and enables format changes without code.

Click to flip back

Question

What is the ER Global Repository?

Click or press Enter to reveal answer

Answer

A cloud-hosted library of pre-built ER configurations maintained by Microsoft. Contains hundreds of formats for tax reporting, payment files, and e-invoicing. You import configurations and derive custom versions that inherit future Microsoft updates.

Click to flip back

Question

What must be true about a data entity for Edit in Excel to work?

Click or press Enter to reveal answer

Answer

IsPublic = Yes (exposed via OData), data management enabled, key fields defined (for record identification), user has security privileges to read/write, and change tracking recommended for publish-back.

Click to flip back

Question

What is the difference between Edit in Excel and Excel Templates?

Click or press Enter to reveal answer

Answer

Edit in Excel is ad-hoc β€” click button, get generic grid, edit and push back. Templates are pre-designed workbooks with specific field layouts, formatting, and formulas. Templates are uploaded to Document Templates for standardised, reusable experience.

Click to flip back

Question

How do you customise a Microsoft-provided ER configuration without losing upgradeability?

Click or press Enter to reveal answer

Answer

Use Derive β€” create a derived version inheriting the Microsoft base. Add only your customisations. When Microsoft updates the base, your derived version can rebase, preserving your changes.

Click to flip back


Knowledge Check

PacificForge needs to generate a bank payment file in ISO 20022 XML format. Which tool should Elena use?

Knowledge Check

Elena needs to customise a Microsoft-provided ER format to add a PacificForge-specific field. How should she proceed?

Knowledge Check

A user clicks 'Edit in Excel' on Released Products but gets an error. What should Elena check first?

Knowledge Check

Which ER layer would Elena modify to change XML element names in a tax return output without changing the underlying data?

Next up: Security Roles, Duties & XDS β€” building the security architecture for F&O with role-based access and row-level filtering.