docs: correct remaining 5 KB files against live D365FO VM (audit part 2/2) - #131
Merged
Merged
Conversation
Completes the skills/_source knowledge-base accuracy audit started in a1a0206 (14/19 files). Verified the final 5 files against the live D365FO VM (K:\AosService\PackagesLocalDirectory, 196 models) and this repo's own CLI scaffolders, and corrected the drift that was found: - sysoperation-batch-patterns.md: the generated migration-script class extends SysRunnable but is invoked via a static main(Args) that calls the instance run() method — not a static SysRunnable::run() call, and there's no RunBase dialog integration (per MigrationScriptScaffolder.cs). - table-scaffolding.md / x++-class-authoring.md: the number-sequence "manual consumption" snippet referenced CompanyInfo::numRefXxx() — no CompanyInfo class exists in modern D365FO; the numRef<Edt>() accessor is a static NumberSequenceReference method on the module's own parameter table (verified against CustParameters::numRefCustAccount() in ApplicationSuite). - x++-class-authoring.md: fixed SRSReportDataProviderBase -> the real casing SrsReportDataProviderBase; corrected the SysPlugin section to the real SysPluginFactory::Instance(namespace, className, SysPluginMetadataCollection) signature (not an enum-keyed call — ExportMetadataAttribute doesn't exist in the platform); corrected the Number Sequence Integration steps (CoC target is the concrete NumberSeqModule<Module> subclass, not the abstract NumberSeqApplicationModule base directly; UI wiring is a numberSeqFormHandler() getter called from datasource create/write/ validateWrite/delete overrides, not a one-time call in init()); and corrected the Workflow Development section — WorkflowApproval/ WorkflowTask aren't real class names (real: WorkflowModelApproval/ WorkflowStep_Approval, WorkflowModelTask/WorkflowStep_Task) and SubmitToWorkflowMenuItem isn't a shared base class (real pattern is a per-module <Module>SubmitToWorkflow class, e.g. CatProductSubmitToWorkflow). xpp-class-and-method-rules.md and xpp-statement-and-type-rules.md were audited but contain only general X++ language rules (const/var, prmIsDefault, RunBase pack/unpack/dialog/canGoBatch, extension-method syntax) that were spot-checked against the VM and this repo's CLI source and found accurate — no changes needed. Regenerated skills/anthropic and skills/copilot via emit-skills.ps1 so compiled output matches. This completes the 19-file audit (14 done in a1a0206, these 5 finish it). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the
skills/_sourceknowledge-base accuracy audit started in a1a0206 (14/19 files verified and corrected). This PR verifies and corrects the remaining 5 files against a live D365FO VM's metadata (K:\AosService\PackagesLocalDirectory, 196 models) and this repo's own CLI scaffolder source.sysoperation-batch-patterns.mdMigrationScriptScaffolder.cs) generates a class extendingSysRunnablewith an instancerun()method invoked from a staticmain(Args _args)— not a staticSysRunnable::run()call, and there's noRunBasedialog integration as previously claimed.generate sysoperation,generate runbase,generate migration-script, execution modes, migration modes, default batch size) were checked againstsrc/D365FO.Cli/Commands/Generate/*.csand found accurate — no changes needed there.table-scaffolding.mdCompanyInfo::numRefMySequence(), but noCompanyInfoclass exists anywhere in the VM's 196 models. The real accessor is astatic NumberSequenceReferencemethod on the module's own parameter table (verified viaCustParameters::numRefCustAccount()→NumberSeqReference::findReference(extendedTypeNum(CustAccount))inApplicationSuite). Updated the example toFmParameters::numRefMySequence(), consistent with the file's ownFmParameterspattern example.TableGroup/TableTypedistinction, andgenerate table/generate query/generate number-sequenceflags were all checked againstTablePattern.csand theGenerate*Command.csfiles and found accurate.x++-class-authoring.md(largest set of fixes)SRSReportDataProviderBase→ corrected casing to the realSrsReportDataProviderBase.SysPluginFactory::Instance(str _baseClassNamespace, str _baseClassName, SysPluginMetadataCollection _metadataCollection)signature — the doc's enum-keyedExportMetadataAttribute/SysPluginFactory::Instance(enumStr(...), ...)pattern doesn't exist in the platform.NumberSeqModuleis not a real class (only a naming convention — concrete classes areNumberSeqModule<Module>, e.g.NumberSeqModuleCustomer, all extending the real abstract baseNumberSeqApplicationModule); corrected the CoC-target guidance and the UI-wiring step (anumberSeqFormHandler()getter called from datasourcecreate()/write()/validateWrite()/delete()overrides, not a one-time call ininit(), per the realCustTableform pattern); fixed the sameCompanyInfoissue as above.WorkflowApproval/WorkflowTaskaren't real class names (real:WorkflowModelApproval/WorkflowStep_Approval,WorkflowModelTask/WorkflowStep_Task) andSubmitToWorkflowMenuItemisn't a shared base class — real pattern is a per-module class (e.g.CatProductSubmitToWorkflow,TrvSubmitToWorkflow).xpp-class-and-method-rules.mdandxpp-statement-and-type-rules.mdconst/var,prmIsDefault, casting, null-sentinels,usingblocks, extension-method syntax) rather than platform-class references. Spot-checked several concrete claims against the VM and CLI source (prmIsDefaultusage,RunBasepack/unpack/dialog/getFromDialog/canGoBatch/run all exist,constkeyword real, extension-method_Extensionstatic-class pattern confirmed viaDictDataEntity_Extension, CLI flagsd365fo read class --method --declaration,d365fo labels search --lang) — all checked out accurate. No changes made; this is a targeted-correction pass, not a rewrite.Test plan
scripts/emit-skills.ps1after editing the 3 changedskills/_source/*.mdfiles.git status --porcelain skills/copilot skills/anthropic skills/_sourceshows exactly the 9 expected files (3 source + 3 anthropic + 3 copilot compiled counterparts) and nothing else — confirming the compiled output matches source and no other skill drifted.git diff origin/main -- <5 files>that no upstream changes landed on these files since the audit started, so this PR is a clean, isolated correction.skillsjob (drift check) — pending, will report status once checks run.🤖 Generated with Claude Code
https://claude.ai/code/session_01DfskzQYA9qygzw44aZiaYk