generate_object
Generate X++/AOT code for D365 F&O: pattern skeletons, whole-object scaffolds, and table helpers for find methods, relations, and fields.
Instructions
Generate X++/AOT code. Choose a mode:
• pattern → a named X++ skeleton from the pattern enum (text only, no write). Call analyze_code(mode="patterns") first, then generate_object(mode="pattern"), then d365fo_file(action="create").
• scaffold → pattern-aware whole-object generation (table/form/report) with intelligent field/index/relation or form-pattern suggestions; set objectType.
• find-methods → find()/findRecId()/exists() for a table (text), keyed on its primary/unique index.
• relation-xpp → a table's relation(s) → X++ select + QueryBuildRange (text).
• fields → field names → AxTableField XML with auto-resolved EDTs + optional field group.
• table-relation → EDT-referencing fields → AxTableRelation XML (inverse of relation-xpp).
📖 Mode parameters are NOT inlined here: get_knowledge(kind="op-spec", topic="") — "scaffold:table"/"scaffold:form"/"scaffold:report" for the scaffolds — returns the contract; pass its values nested in params.
For a single existing object definition's XML use d365fo_file(action="generate") instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | pattern = X++ skeleton; scaffold = whole table/form/report (set objectType); find-methods/relation-xpp/fields/table-relation = X++/XML helpers for an existing table. | |
| name | No | REQUIRED. [pattern] element name (extensions: base element; form-datasource/control-extension: the FORM name). [scaffold] object name WITHOUT model prefix. [other modes] the existing table. | |
| params | No | Mode-specific parameters as ONE nested object (label, fields[], fieldsHint, cloneFrom, tableMapping, formPattern, contractParams[], keyFields[], style, fieldGroup, …). Get the contract from get_knowledge(kind="op-spec", topic="<mode>"); a missing required one returns that COMPLETE spec. | |
| pattern | No | [pattern] REQUIRED. CoC skeletons: class/table-extension, form-handler, form-datasource-extension, form-control-extension, map-extension. ssrs-report-full = Contract+DP+Controller; service-class-ais = CRUD service + contract. | |
| modelName | No | Model name (auto-detected). NEVER use placeholders like "MyModel". | |
| objectType | No | [scaffold] REQUIRED. Kind of object to generate. |