Skip to content

Refresh in-repo AL documentation for E-Document, Shopify, Privacy Notice and API Reports - #9812

Merged
Groenbech96 merged 3 commits into
mainfrom
docs/refresh-al-documentation
Jul 29, 2026
Merged

Refresh in-repo AL documentation for E-Document, Shopify, Privacy Notice and API Reports#9812
Groenbech96 merged 3 commits into
mainfrom
docs/refresh-al-documentation

Conversation

@Groenbech96

@Groenbech96 Groenbech96 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

What & why

Refreshes the in-repo AL documentation (CLAUDE.md and docs/*.md files that live alongside the apps) for four apps whose docs had drifted behind the code.

This is documentation only -- no AL source is touched. 62 files: 56 markdown files plus six .docs-updated marker files.

Updates are change-driven, not a rewrite. For each app I established the baseline from the commit that last wrote its docs, diffed every commit since, mapped each changed AL object to the documentation that describes it, and updated only the affected sections. Existing narrative and voice were preserved.

App Docs baseline Drift covered
E-Document Core a090c078 (2026-03-25) 55 commits, 149 AL files
Shopify Connector 3227a356 (2026-04-14) 48 commits
Privacy Notice 41e62038 (2026-05-11) 2 commits
API Reports - Finance f5e9cbee (2026-03-20) 1 commit

DataCorrectionFA also has docs but has had no AL changes since they were written, so it is untouched.

The commits are kept separate so each app can be reviewed independently.

A third commit adds .docs-updated markers for the four documented apps that lacked one. Previously only Shopify had markers, so every other app's baseline had to be inferred from the git history of its docs folder -- which is precisely how E-Document drifted 55 commits behind unnoticed. All 82 doc-bearing folders in the repo now roll up under one of six markers, giving the next refresh an explicit baseline.

E-Document Core

The docs were created in March and only three files were ever refreshed since; the 18 module-level docs had not been touched at all.

Shopify Connector

Privacy Notice

API Reports - Finance

Linked work

Fixes AB#644610
Fixes AB#644608

No GitHub issue. This is a documentation-only maintenance refresh of the docs that live alongside these apps, not a product change, so there is no user-facing bug to file. Tracked internally by the two ADO tasks above.

How I validated this

  • I read the full diff and it contains only changes I intended.
  • I built the affected app(s) locally with no new analyzer warnings. (Not applicable -- no AL source changed. See below.)
  • I ran the change in Business Central and confirmed it behaves as expected. (Not applicable -- documentation only.)
  • I added or updated tests for the new behavior, or explained below why none are needed.

What I tested and the outcome

Since this changes no compiled code, validation was about factual accuracy rather than build or runtime behaviour. Claims were checked against the AL source at d86ecf32:

  • git diff --name-only confirms only .md files and the two .docs-updated markers changed. Zero .al files.
  • E-Document: enumerated the actual interfaces under src/Processing and reconciled them against the extensibility docs. This caught a wrong pre-existing claim -- the old docs documented an IPurchaseInvoiceProvider interface that does not exist. The real interfaces are IEDocumentCreatePurchaseInvoice, IEDocumentCreatePurchaseCreditMemo and IEDocumentCreateSalesOrder, which the refreshed docs now use. Also verified the Copilot ObsoleteReason text, the standalone PEPPOL app.json, and that the only remaining reference to E-Document Line Mapping outside its own definition is the data-classification registration in EDocumentSubscribers.
  • Shopify: verified Shpfy Shop field 208 "Find Mapping by Barcode" and field 209 "Sync HS Code and Country", Unlisted on both product-status enums, Shpfy Order Line field 22 "Is Exchange Item", and ShpfyShippingCharges.UpdateShippingCostInfos. Verified the GraphQL claim numerically: 149 .graphql resource files matches 149 ShpfyGraphQLType enum values. Verified the DisabledTests correction by confirming the folder is gone and reading Get-DisabledTests in RunTestsInBcContainer.ps1. Verified BindSubscription(BulkOpSubscriber) appears only in ShpfyWebhooksTest.
  • Privacy Notice: read GetMicrosoftCopilotID, TryGetMicrosoftCopilotDefaultApproval and the InherentEntitlements/InherentPermissions declarations.
  • API Reports: confirmed AboutText is on exactly the six query objects and no pages.
  • Style and integrity checks all clean: git diff --check, no em dashes, no unclosed code fences, correct list spacing, no broken anchor links, all files CRLF.
  • No tests are needed because no product behaviour changed.

I used agents to draft the per-module updates, then reviewed the diffs myself and corrected several things on top of their output: a speculative TODO about the Shopify bulk subscriber binding path (it is bound in ShpfyWebhooksTest), a TODO about the E-Document mapping tables (resolved by checking actual usage), the "Sync HS Code and Country" field name versus its caption, a missing IProcessStructuredDataSales reference in the sales guidance, and LF line endings on six Test files that should have been CRLF.

Risk & compatibility

None. Documentation only -- no runtime, upgrade, permission, or telemetry impact, and nothing that affects the compiled apps.

Two things worth a reviewer's eye:

  1. The E-Document Import extensibility doc was reorganized, not just appended to. Four narrow sections were consolidated into "Customize purchase resolution" and "Customize purchase finalization", and new sections were added for the Data Exchange bridge and sales order import. I checked the specific knowledge survived (provider defaults, the obsolete IPurchaseLineAccountProvider note, UOM resolution order), but the section structure did change.
  2. The docs now assert fairly specific behaviour in areas I did not exercise in a container, particularly the PEPPOL send/receive/order-response flows, the E-Document V2 reader pipeline, and Shopify refund exchange lines. Statements are traced to source, but confirmation from the owners of those areas would be valuable.

Shopify docs were deliberately left untouched for Payments and Order Fulfillments -- their only changes in the range were timestamp caption and tooltip wording with no behavioural meaning.


This supersedes #9808 (Shopify) and #9811 (E-Document), which are closed in favour of this single PR.

Magnus Hartvig Grønbech and others added 2 commits July 29, 2026 10:26
Brings the Shopify Connector and Test app documentation up to date with the
48 commits merged since the docs were last refreshed (baseline 3227a35,
"Remove B2B Plus-only plan restriction").

Documentation only. No AL source changes.

App documentation:
- Unlisted product status and the new "Shpfy Create Prod. Status Unlisted"
  implementation of ICreateProductStatusValue
- HS code and country of origin, carried on the variant and gated by the
  Shop's "Sync HS Code and Country" setting
- Order tax lines can now hang off order shipping charges, and market-driven
  shipping methods are fetched through new GraphQL queries
- Return-with-exchange refunds: the "Is Exchange Item" order line flag and
  the synthetic negative refund lines that keep the credit memo total right
- Credit memo creation is skipped while a refund transaction is pending
- Order mapping keeps a manually set Sell-to Customer No. when Bill-to
  mapping fails, and creates a BC customer when Shopify has no default address
- Bulk price sync surfaces skipped records and the sent JSONL, and decides
  bulk versus single on the count of changed prices
- Corrected the GraphQL rate limiter wait calculation and the query count
- "Auto Create Catalog" renamed to "Auto Create B2B Catalog", now always
  visible with plan validation on enable
- Belgium Enterprise No. tax ID mapping and ISO country code tax area filtering

Test documentation:
- Corrected a stale claim that 3 tests were disabled via app-local
  DisabledTests/*.json. Those files were removed; disabled-test filtering now
  comes from central DisabledTests folders read by RunTestsInBcContainer.ps1
- Documented the new Variant API and Transactions test coverage, the
  .resources/Shipping mocks, and the price calculation isolation pattern
- Clarified that Shpfy Bulk Op. Subscriber is bound in the webhooks test,
  not the bulk operations test

Marker files updated to d86ecf3.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e + API Reports docs

Brings the in-repo AL documentation up to date with the code. Documentation
only. No AL source changes.

E-Document Core (main part of this change):
The E-Document docs were created in March (a090c07, #7255) and only three
files have been touched since. 55 commits and 149 AL files changed in that
window, so the 18 module docs had drifted badly.

- Import V2 is now the default for new services, with the draft format
  selected on the service. Documented the pipeline stages, the reader
  interfaces, and how a partner plugs in a new inbound format
- Data Exchange definitions moved from labels to app resource files, and the
  v2 bridge lets those definitions feed the V2 pipeline. Access = Internal was
  removed from the Data Exchange Impl. codeunit
- PEPPOL now lives in a standalone app under src/Apps/W1/PEPPOL. Added the EDI
  flows: purchase order send path, sales order receive path, and order
  response message handling
- New structured format readers, including XRechnung and OIOUBL
- Corrected documentation that still described the E-Document Purchase Order
  Matching Copilot as current. It is obsoleted; AI-assisted line matching now
  happens at import time via "E-Doc. AI Tool Processor"
- Document date, due date and configurable default posting date behaviour,
  plus VAT rate resolution and VAT amount difference
- E-Document Purchase Header/Line exposed for country-app consumers, and
  Sales Header/Line data sensitivity classification
- Confirmed the E-Document Header/Line Mapping tables are retained for
  compatibility only and are not part of the V2 draft flow

Privacy Notice:
- Registered the Microsoft Copilot privacy notice, whose default approval is
  keyed to the EU Data Boundary, so EEA environments start unapproved
- Noted the inherent permissions on the facade that let service-invoked
  callers reach it

API Reports - Finance:
- The six API queries now carry AboutText consumed by MCP tooling for tool
  selection

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Only the Shopify app and test app carried a `.docs-updated` marker. Every
other documented app relied on the git history of its docs folder to work out
a baseline, which is easy to miss: E-Document had drifted 55 commits behind
before anyone noticed, because nothing pointed at it.

Adds markers for the four remaining documentation roots so the next refresh
has an explicit baseline:

- src/Apps/W1/EDocument/App
- src/Apps/W1/APIReportsFinance/App
- src/Apps/W1/DataCorrectionFA/App
- src/System Application/App/Privacy Notice

All 82 doc-bearing folders in the repository now roll up under one of six
markers.

DataCorrectionFA has had no AL changes since its docs were written, so its
docs were already current and its marker records that rather than any edit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Groenbech96
Groenbech96 enabled auto-merge July 29, 2026 09:18
@Groenbech96
Groenbech96 added this pull request to the merge queue Jul 29, 2026
Merged via the queue into main with commit 57bfb64 Jul 29, 2026
328 of 334 checks passed
@Groenbech96
Groenbech96 deleted the docs/refresh-al-documentation branch July 29, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AL: Apps (W1) Add-on apps for W1 AL: System Application Integration GitHub request for Integration area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants