Purchase-cost guardrails, self-healing job queues and item onboarding for a specialty retailer on LS Central
A multi-store wine and spirits retailer on LS Central needed to stop wrong purchase costs and journal lines at entry, not find them at month end. We built one extension for it, with five modules from a purchase-cost check to new-item approval, and it hooks into the platform through only three event subscriptions.
February 2024 – March 2026 · Business Central · 3 min read · Published
The client is a multi-store wine and spirits retailer running LS Central on Business Central online. Between February 2024 and March 2026 we built one extension for it, with five modules covering purchase costs, item journals, the job queue, ledger exports, and new items.
Many stores mean many people entering data, and each entry point is a place where a mistake can get in. A cost keyed in error on a purchase line, far off what the item last cost, ends up in the inventory value and the margins once it posts. Store staff post item journals, where a line in another store's batch, or with a changed posting date, has to be found and reversed later. When a recurring job in the job queue fails, it stays stopped until someone restarts it. New items are another entry point: each one has to be requested, approved, and set up with units, a vendor, and LS Central attributes before any store can sell it.
Five modules
Purchase-cost check
Flags purchase lines whose cost differs from the item's last direct cost by more than a configurable percentage, rejects them on invoices, returns, and credit memos, and blocks posting, with per-item exclusions, lookup by vendor item number, and unit-of-measure confirmation.
Controls on item journals
Journal batches filtered to the user's store, batch defaults, locked fields, and a posting date that only super users can change.
Job-queue monitoring
An email when a job fails, and an automatic restart for failed recurring jobs.
Ledger export to CSV
Filtered general ledger entries, each with its source name, point-of-sale terminal, and item.
New-item submission & approval
Item requests with category-driven attributes and cascading lookups, attachments, and emails to approvers, then one-click item creation with units, vendor, and LS Central attributes.
A light touch on the platform
Business Central online and LS Central both release updates on their own schedules, and an extension on top of them has to keep working through each one. All five modules ship as one app of 56 objects, and that app touches the platform in only a few places:
Only three event subscriptions, so only three places in the app depend on events in standard code.
Fields added to standard tables, so the new data sits on the records it belongs to.
No posting routines of its own. Purchase documents and item journals still post through the standard code.
One app, so one deployment. The five modules install and update together.
Outcome
Four of the five modules are in production: the purchase-cost check, the controls on item journals, job-queue monitoring, and the ledger export. Item onboarding, the fifth, was completed in March 2026. On Business Central 27.0 and 27.5 with LS Central 27.x, the app compiles with 0 errors.
Takeaways
Stop mistakes at the point of entry. A wrong cost caught before posting is fixed on the document; found at month end, it has to be traced and reversed.
Check around the standard posting code instead of replacing it. With no posting routines of its own, the app has less to keep in step with each platform release.
Monitor the job queue rather than assume it runs. The email tells someone a job failed, and the restart means the job does not wait for them.
Talk with JTANG Consulting about your Business Central implementation, upgrade, customization, integration, or support needs. Initial consultations are free, scoped to your business, and never pushy.