Keeping this page current
This page is manually maintained. When deploying a new extension version to Production, add an entry here with the version, date, and key changes (pulled from the extension's CHANGELOG). Entries should be added at the top of the current month's section.
Recent Changes
A consolidated view of recent changes across all Business Central extensions, sorted by date (newest first). Each entry links to the detailed change document where available. For the full history of any extension, see its changelog in the Extension Directory.
March 2026
PO Email Notification v1.2.0.0 -- 2026-03-20
- Security: Migrated field ID 50119 to 80100 on Purchase Header, Warehouse Receipt Header, and Posted Whse. Receipt Header to avoid collision with BestwayUSA extension's reserved ID range
- Security: Migrated Email Scenario enum value 50149 to 80100 for the same reason
- Fixed: OnLookup concatenation bug -- selecting an email from the address lookup when the field already had a value would embed the search text in the recipient list instead of appending to the existing value (CRITICAL)
- Fixed: Unguarded
Get()inEmailFieldTransferSubscriberswould throw a runtime error and block warehouse receipt creation if the source Purchase Order record was missing - Changed: Added
SetLoadFieldsto thePurchHeader.Get()call inside the warehouse receipt subscriber loop, reducing SQL projection from 200+ fields to 4 - Removed: Deleted
PO Email Dispatchercodeunit (80102) -- dead code with no callers - Migration Notes: Cannot be installed as an in-place upgrade. Uninstall current version first, then install v1.2.0.0 fresh due to field ID schema change.
Service Order Lockout v1.1.1.0 -- 2026-03-20
- Changed: Page gate now checks
BW-ASSIGNSVCORDinstead ofBW-CS-SERVICE-- eliminates manual permission assignment at deployment since all 33 CS users already have this role - Changed: Release Lock action now permits
BW-CS-MANAGERS(21 CS supervisors) in addition toSUPER-- supervisors can release stuck locks without escalating to IT - Added: Upgrade codeunit auto-assigns
BW-CS-SERVICEto all users withBW-ASSIGNSVCORDfor table-level permissions - Migration Notes: No manual permission assignment required -- this is the key improvement over v1.1.0.0.
PO Email Notification v1.1.1.0 -- 2026-03-16
- Changed: Eliminated one redundant database query per purchase receipt posting -- line count derived in a single pass rather than a separate pre-scan
- Changed: Added three missing filter fields to
SetLoadFieldsdeclarations
PO Email Notification v1.1.0.0 -- 2026-03-16
- Security: Removed hardcoded Azure AD client credentials from source code -- credentials now stored in BC Isolated Storage via a new setup page
- Security: Changed
GetAccessTokenreturn type fromTexttoSecretTextso the bearer token is never held in a plain-text variable - Added: PO Email Setup page for configuring Graph API credentials
- Added: Comprehensive telemetry -- 28 structured App Insights events covering the full notification lifecycle
- Changed: Email sending switched from
Email.Send(blocking) toEmail.Enqueuevia[TryFunction]-- email failures no longer roll back purchase posting transactions - Fixed:
TempEmailResultswas missingTableType = Temporary-- BC would attempt to write search results to the database
Service Order Lockout v1.1.0.1 -- 2026-03-16
- Added: API pages 52403 and 52404 -- OData v4 endpoints exposing lock state and setup for automated test infrastructure
- Added: Python functional test suite -- 12 test areas, ~40 test cases via pytest + Playwright
- Fixed:
InsertAllowed = false; DeleteAllowed = falseon API pages to prevent unintended record creation or deletion
BC Dialing Application v2.4.0.0 -- 2026-03-11
- Fixed: Widened
AssetType(Text[20] to Text[100]),PhoneNumber(Text[20] to Text[50]),EmailAddress(Text[20] to Text[250]), and error log fields -- string length constraint errors were blocking recording and transcript sync - Fixed: Migrated
UseReadySASfrom deprecatedTexttoSecretTextparameter type -- eliminates compiler warnings and prevents SAS token from appearing in runtime logs - Fixed: Eliminated double
Get()+Modify(true)on the success path -- saves 100 DB operations per 50-record batch - Added: Configurable batch cap for Job Queue processing (
Max Phone Logs Per Run,Max Email Logs Per Run, default 50) -- prevents unbounded processing runs and cascading failures during backlog drain - Added: Immediate abandonment for permanent failures -- "Customer Not found" errors set
Attempts = 3immediately instead of burning through 3 retries
BC Dialing Application v2.3.5.0 / v2.3.6.0 -- 2026-03-09
- Fixed: Added
Dimensiontable (BC table 348) to inline Permissions -- final missing permission causing 100% HTTP 403 on new customer creation (CRITICAL -- ISSUE-12 final fix) - Added:
TryInsertCustomerdiagnostic wrapper for remaining permission-related 403 failures
BC Dialing Application v2.3.0.0 through v2.3.4.0 -- 2026-03-06 to 2026-03-09
- Fixed: Restructured CU-60003 to complete all HTTP I/O before database writes -- interleaved writes held Customer table locks for 15-40 seconds, causing lock timeouts and "page out of date" errors for CS agents (CRITICAL)
- Fixed: Eliminated 4 redundant Customer lookups and 4 redundant Modify calls per phone log record
- Added: Upgrade codeunit (CU-60005) auto-populates NextivaConfig during deployment
- Changed: All credentials now read from NextivaConfig table instead of hardcoded values (CRITICAL -- Security)
- Changed: Added 33 inline table permissions across multiple rapid-fix versions (v2.3.1.0 through v2.3.4.0) to resolve HTTP 403 failures on the Nextiva API surface
CSM API Toolkit v1.2.0.0 -- 2026-03-05
- Added: Posted Svc. Invoice Header API (Page 56123) for Failed CSM Submissions Resolver workflow
- Added:
itemNoandsalesDatecomputed fields on Posted Svc. Invoice Line API - Added:
fileUrlscomputed field (JSON array of Record Link URLs) on Posted Svc. Invoice Header API - Added: Test codeunit with 6 automated tests covering the new API surface
- Changed:
GetRecordLinkUrlsJsonacceptsRecordIddirectly, eliminating a redundant full-table Get per row
BC Dialing Application v2.2.0.0 / v2.2.1.0 -- 2026-03-04 to 2026-03-05
- Fixed: Removed
LockTable()on Customer table -- exclusive table lock from every incoming call caused "page out of date" errors for CS agents (CRITICAL) - Fixed: Changed
Insert()toInsert(true)on new Customer records -- skipped OnInsert trigger was bypassing standard BC setup - Added: Secondary keys on CustomerPhoneLog, CustomerEmailLog, and Customer table for efficient lookups
- Added:
SetLoadFieldsoptimizations across all pages and codeunits
CSM API Toolkit v1.1.0.0 -- 2026-03-02
- Added: 6 new API pages (Fault Area, Symptom Code, Fault Code, Resolution Code, Fault Resol. Relation, FA Symptom Relation) for FAQ sync validation
- Added: Posted Svc. Invoice Line API and Posted Svc. Shipment Line API for data safety testing
- Added: Extension-level telemetry via Application Insights
February 2026
Service Order Lockout v1.1.0.0 -- 2026-02-27
- Fixed: Inverted permission check blocked all CS users with BW-CS-SERVICE role (CRITICAL)
- Fixed: BW-CS-SERVICE permission set referenced but never defined in the extension (CRITICAL)
- Fixed: Open By User ID field truncated usernames longer than 30 characters, causing permanent lock-ups
- Fixed: 10 additional bugs including infinite render loop, dead code, stale lock state, and concurrent initialization race condition
- Added: Stale lock auto-release after configurable timeout (default: 4 hours)
- Added: Release Lock action for SUPER users
- Added: Service Order Lockout Setup page
BC Dialing Application v2.1.0.0 -- 2026-02-26
- Fixed: Broke single long-running transaction in CU-60003 into per-record micro-transactions to eliminate Customer table lock contention during Job Queue processing (CRITICAL)
- Added: Error isolation (TryFunction wrappers) so one failed record does not abort the entire sync batch
- Added: Extension-level telemetry via Application Insights