Skip to content

absorb remaining d365fo-mcp-server material: RDL precision design (R3) and form engine extras (R5) #164

Description

@dynamics365ninja

Carried over from docs/KNOWLEDGE_AUDIT.md §7 items R3 and R5 — reusable material from the predecessor dynamics365ninja/d365fo-mcp-server, audited at v1.8.0. The audit docs are retired; this issue is their successor.

R3 — RDL / precision design (also finding G7). generate report now emits the full stack (TempDB table, DP, contract, SrsReportRunController, output menu item, AxReportAutoDesign with table data regions), all verified lossless against the live provider. RDL is deliberately not generated: it lives in AxReportPrecisionDesign.Text as an escaped document, and although precision designs outnumber auto designs in shipped code, a wrong RDL is far harder to detect than a wrong contract — the file loads and the report simply renders wrongly. The predecessor's generateSmartReport.ts (64 KB) does emit CDATA-embedded RDL 2016 with page-header injection and grouped-tablix/subtotals, and carries two regression-locked EDT-resolution bugs. Absorbing it needs its own evidence base first (a rendering oracle, not just a deserialization one).

R5 — form engine extras. Not ported:

  • formCloner.ts — clone a Microsoft reference form and re-bind data sources, string-level by design (XML round-trips corrupt AOT files).
  • fieldControlTypes.ts — derive the control type from the field's real i:type rather than EDT-name heuristics.
  • crossCheck.ts — mined-usage cross-check reporting catalog gaps after every index build.

Note that the structural half of R5 was absorbed and then some: scripts/emit-form-patterns.ps1 derives 162 pattern definitions from Microsoft.Dynamics.AX.Metadata.Patterns.dll, which is stronger than the predecessor's hand-maintained catalog.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions