Business Central Open-Source Contributions

by May 18, 2023

Home 9 Business Central Open-Source Contributions

In October 2022, Microsoft announced a new open-source program for the Business Central Base Application, which is the core functionality of the solution. The program allows partners and community members to contribute code and suggestions to the Base Application. The program was initially launched as a pilot version with a limited number of contributors.

Since then, the program has evolved and improved thanks to the collaboration and innovation of the open-source community. In January 2023, Microsoft released the first stable version of the program, which enabled more contributors to join and participate. The program has also introduced new features and enhancements to the Base Application, such as support for multiple languages, improved performance, and better integration with other Microsoft products.

The open-source program for Business Central is a great opportunity for anyone who wants to learn more about the solution, contribute to its development, and benefit from its features. If you are interested in joining the program, you can find more information on how to get started on my blog: BC Open Source? How to start? | MSDyn365 Business Central – Tom Kapitan (

List of my latest contributions

  • MSDyn365BC v25.0 (October 2024)
    • Country from Company Information won’t be ignored for reports; until now, the country from company information is not a part of any address in any report (Pull Request)
    • Blank option values fix for CRM Records (Pull Request)
    • Always update ship-to address in Graph CU (Pull Request)
    • Ship-to Phone/E-Mail (Pull Request)
  • MSDyn365BC v24.1 (April 2024)
  • MSDyn365BC v24.0 (April 2024)
    • Allow Coupled to Dataverse with affixes (Pull Request)
    • GetSeed for CU Any (Pull Request)
    • Only Item Refences with Base UoM are allowed – also allow other UoM for item journal (Pull Request)
    • Price calculation for temporary records (Pull Request)
    • Filter for CRM Sales Orders only in CRM Note Sync (Pull Request)
    • Sales Quote – Correct Confirmation Language (Pull Request)
    • Show incoming documents from sales and purchase archive (Pull Request)
    • Export/Import blob fields using config. package (Pull Request)
    • Sales Quote – Correct Confirmation Language if the report is in a different language (Pull Request)
    • Obsolete lookupvendor/lookupcustomer (Pull Request)
    • TestAggregateMatchesSalesDocumentHeaders (do not check ID fields) (Pull Request)
    • Use CRM TableID to find CRM TableName (Pull Request)
    • Remove test CorrectPostedPurchaseInvoiceWithZeroChargeItemUnitCost (Pull Request)
  • MSDyn365BC v23.2 (December 2023)
    • Allow to run “Suggest Vendor Payments” with both “Find Payment Discounts” and “Calculate Posting Date from Applies-to-Doc. Due Date” (Pull Request)
    • Option to show/hide description of items with the same description as is the item card in warehouse entries, similarly to item ledger entries (Pull Request)
  • MSDyn365BC v23.1 (November 2023)
    • Two public procedures to get the global variable from Applied Vendor/Customer Entries (Pull Request)
    • Get Integration Tabel Mapping using RecordId instead of the TableNo (Pull Request)
    • Page for CDS Company table + dropdown field group (Pull Request)
    • Missing editable for some API pages (Pull Request)
    • “Is Coupled” to CRM record in UoM/UoMSchedule pages (Pull Request)
    • Add posting date to remittance advice (Pull Request)
  • MSDyn365BC v23.0 (October 2023)
    • Starting/Ending Date for Item References (bar codes) (Pull Request)
    • “Explode BOM” in transfers (Pull Request)
    • Add option to include items without transaction when suggesting physical inventory order lines (Pull Request, Pull Request)
    • Add Item reference functionality to all item journals (Pull Request)
    • Description 2 available for 44 new pages (Pull Request)
    • Editable Description in Customer/Vendor Ledger Entries, Editable Posting Description in Posted Documents, propagation from posted document to vendor/customer ledger entries, auto logging these changes to change log (Pull Request)
    • Support for Item References in Physical Inventory Recording (Pull Request)
    • Extendibility improvements for “Get Source Doc.”, both inbound/outbound (Pull Request)
    • Fix for HideDialog in “Get Source Doc.”, both inbound/outbound (Pull Request)
    • Block Item variant (Blocked, Sales Blocked, Purchase Blocked), similar to blocking Items; OOTB card page for Item Variants (Pull Request)
    • Fix to show correct content that can’t be evaluated in Data Exchange Module (Pull Request)
    • WordMergeDataItem for more than 80 reports (Pull Request)
  • MSDyn365BC v22.5 (September 2023)
    • Fix the “Is Coupled” field for CRM integration for option mapping tables, update action in CRM Sales Order (Pull Request)
  • MSDyn365BC v22.2 (June 2023)
    • “External Document No.” in Vendor/Customer/GL Entries API (Pull Request)
  • MSDyn365BC v22.0 (April 2023)
    • Add multiple items to the Transfer Order (Pull Request)
    • Support for Item References in Physical Inventory Order (Pull Request)
    • “Your Reference” in “Customer Ledger Entries” (Pull Request)
    • “Work Description” in “Proforma Invoice” report (Pull Request)
  • MSDyn365BC v21.4 (February 2023)
    • New actions for Blanket Sales Order – Add Catalogue Items (Pull Request)


There are other interesting changes made by other contributors

(last update 16.03.2024)

  • Alexander Drogin (adrogin)
    • Improvements to certifying of multi-level production BOMs (it was possible to certify production BOM with circular reference) (Pull Request, Pull Request)
    • Copy record links from the general journal to posted entries (Pull Request)
    • Delete record links on journal posting (Pull Request)
    • Do not allow to set Change Log for Change Log Entries (endless recursion) (Pull Request)
    • View warehouse activity lines from source docs (Pull Request)
    • Bugfix for attachments in the “Incoming Document Files” fact box (Pull Request)
    • Ability to disable “Inventory Adjustment” from “Inventory Setup” (Pull Request)
    • Refactoring for Catalog Item Management to reuse code from Item Template Management (Pull Request)
    • View invoices created via Get Receipt Lines / Get Shipment Lines (Pull Request)
    • Show/Hide Adjust Inventory action in item list (Pull Request)
    • Indirect permissions on Gen. Journal Line for Gen. Jnl. Post Batch (Pull Request)
    • Incorrect order of arguments in CalcRemInventoryValueNoValuationDate (Pull Request)
    • Fixed “Reservation entry does not exist” error when assigning lot tracking in planning worksheet with order tracking (Pull Request)
    • Test improvements and fixes
      • Test instabilities in codeunit 137094 “SCM Kitting – D3 – Part 2” (Pull Request)
      • Fixed test instabilities in codeunit 137004 “SCM WIP Costing Production-II” (Pull Request)
      • Failing test in codeunit 137032 SCM Costing Purch Returns II (Pull Request)
      • Fixed test defects in codeunit 137045 “SCM Sales Order Management” (Pull Request)
      • Fixed test defect in codeunit 137052 “SCM RTAM Item Tracking” (Pull Request)
      • False positive test results in codeunit 137079 “SCM Production Order III” (Pull Request)
      • Test instability in codeunit 137003 “SCM WIP Costing Production-I” (Pull Request)
      • Test defect in codeunit 137007 “SCM Inventory Costing” (Pull Request)
      • Test defect in codeunit 137008 “SCM Planning Options” (Pull Request)
      • Test instability in codeunit “SCM WIP Costing Production-II” (Pull Request)
      • Test instability in codeunit “SCM Supply Planning” (Pull Request)
      • False positive test in 137054 “SCM Supply Planning” (Pull Request)
      • Test instability in codeunit 137404 “SCM Manufacturing” (Pull Request)
      • Test instability in 137006 “SCM PAC Output Consumption” and 137072 “SCM Production Orders II” (Pull Request)
      • Fixed failing tests in codeunit 137058 “SCM Planning Transparency” (Pull Request)
      • Fixed test failures in codeunit 137065 “SCM Reservation II” (Pull Request)
      • Fixed failing tests in codeunit 137060 “SCM Inventory 7.0” (Pull Request)
      • Fixing failing tests in codeunit 137068 “SCM Inventory Orders-II” (Pull Request)
      • Fixed test failures in codeunit 137067 “SCM Plan-Req. Wksht” (Pull Request)
      • Fixed failing test in codeunit 137069 “SCM Production Orders” (Pull Request)
  • Kilian S. (pri-kise)
    • Generic Microsoft Graph API Wrapper (Pull Request)
    • Added GuiAllowed() checks to report “Calculate Depreciation” (Pull Request)
    • Support for country translations (Pull Request)
    • Integrate new Country Name Translation to Sales Quote (Pull Request)
    • Bugfix for Timesheets v2 (Pull Request)
    • New implementation for ImportAttachment that can be used in the cloud (Pull Request)
    • Bugfix for report 5885 “Calc. Phys. Invt. Order (Bins)” (wrong if begin/end) (Pull Request)
    • New Helper procedure GetTimeParameter for “Batch Processing Mgt.” (Pull Request)
    • Lookup page for 352 “Default Dimensions” (Pull Request)
    • Lock Labels that don’t need a translation (Pull Request)
    • Enable Ret. Policy for Sent Notification Entry + via UI (Pull Request, Pull Request)
    • Add Overload for SetParameters for Coyp Document Report to set Archive Values (Pull Request)
    • Fix the log document of report 1308 standard sales shipment (Pull Request)
    • Fix UI of page 5557 “Permission Conflicts” (Pull Request)
    • Fix Dimension ML Procedures (Pull Request)
    • New CaptionClass for the Dimension Name of Shortcut Dimensions (Pull Request)
    • Add Whse. Tables to allow for Retention Policy Setup (Pull Request)
    • Refactor insert of Extended Text in CopyDocMgt (Pull Request)
    • Added Recall for VerifyLinesNotification (Pull Request)
  • Bert Verbeek (bertverbeek4PS)
    • D365BC to D365 for Sales manual setup mapping table (Pull Request)
    • Add CompanyAddress 7 and 8 to Standard Sales – Credit Memo/Order Confirmation/Pro Forma Invoice (Pull Request)
    • New functionality to batch post-transfer orders (Pull Request)
    • VAT Posting Groups for General Ledger Entries (Pull Request)
    • New fields to inventory documents (Pull Request)
    • Source Type and Source No. for Item Ledger Entries (Pull Request)
    • New functionality to renumber item journals (Pull Request, Pull Request)
    • Bug fix for the publisher in the Customer table, Post Code field (Pull Request)
    • Bugfix for the caption in Item Budget Management (Pull Request)
    • Use SystemCreatedAt system field in G/L Register instead of Date and Time fields (Pull Request)
    • Amount zero in recurring journals (Pull Requests)
    • Created a wizard for Manual Integration Mapping for new tables (Pull Request)
  • Frédéric Vercaemst (fvet)
    • Bugfix for Bill-to section visibility for Posted Return Receipt (Pull Request)
    • Extend ModifyRecordWithField with ConfigTemplateLine (Pull Request)
    • General and VAT Posting Groups are available in all subforms (Pull Request)
    • Add field “Inventory Value Zero” to table “Item Templ.” (Pull Request)
    • Add the document attachment fact box to all documents and entities (Pull Request)
    • Bugfix for the ShowDetails action for IC Transaction for purchase documents (Pull Request)
    • Update (Pull Request)
  • Miljan Milosavljević (miljance)
    • Bugfix for Account Schedules when there are active Security Filters for G/L Entries (Pull Request)
    • Support for standard No. Series for Catalogue Items (Pull Request)
    • Bugfix for the wrong Assign-to Type in Job Price List (Pull Request)
    • VAT Clause Translation fix for all reports (Pull Request)
    • Improvements for Price Lists – Verify only prices for the current user (Pull Request)
    • See Customer prices from the contact card (Pull Request)
    • Customer Prices and Discounts include price group and discount group (Pull Request)
  • Mohana Yadav (pmohanakrishna)
    • Additional search term for Customer Discount Groups (Pull Request)
    • Hide “Posted Phys. Invt. Order” from search (Pull Request)
    • Suppress dialogues for 5172 “Delete Expired Sales Quotes” (Pull Request)
    • Codeunit 95 “Purch Post Batch via Job Queue” function PrintPurchaseDoc (Pull Request)
    • Get Sales Orders Report – InsertReqWkshLine function – SalesLine Parameter issue (Pull Request)
  • Daniel Noeth (dannoe)
    • Bugfix: Prevent Item.Get() if the Type is not an Item in the Document Attachment and G/L Account or Resource has the same code as Item (Pull Request)
    • Added missing var for parameter (Pull Request)
    • Add indirect permissions to different codeunits (Pull Requests)
    • Added SetLoadFields for Inventoriable checks (Pull Request)
  • Sergii Olefirenko (sergeyol)
    • Save and reset to saved filters for each CopyLines call in Price Lists (Pull Request)
    • Add function SetCachedSalesHeader to “Sales Line CaptionClass Mgmt.” (Pull Request)
    • Correct param order in AdjustQtyReservedOnPickShip call (Pull Request)
  • Gunnar Thor Gestsson (gunnargestsson)
    • New index on Bank Account Ledger Entry (Pull Request)
    • DecimalPlaces for Timesheets (Pull Request)
    • A new procedure in incoming document attachment to get content as tempblob (Pull Request)
  • Christian Bräunlich (christianbraeunlich)
    • Add procedures with default button true to ConfirmManagement (Pull Request)
    • “Document Date” visible on Customer Ledger Entries (Pull Request)
  • Brad (dvlprlife)
    • Assign salesperson to ship-to address (Pull Request)
    • Add shipping agent service code to sales invoice header (Pull Request)
  • (dynaway-kmi)
  • Daniel Göhler (DanielGoehler)
  • Teddy Herryanto (thatnavguy)
    • Bugfix for empty External Documents Nos. in Item Ledger Entries for Posted Transfer Shipments (Pull Request)
  • (tyurm)
    • Refactoring of TestStatusIsNot procedures in Sales/Purchase for better extensibility (Pull Request)
  • Peter Conijn (PeterConijn)
    • Fix for purchase/sales parameters evaluation in DimensionManagement (Pull Request)
  • Stefan Maron (StefanMaron)
    • Overload for activatedraftlines in pricelistmanagement codeunital to skip message (Pull Request)
  • Dorin-Nicolae Birsan (dorinbirsan)
  • Waldo (waldo1001)
    • Bugfix #499 : “Combine Shipments” causing unnecessary/redundant header-modify (Pull Request)
  • Spyco Clown (Spycoclown)
    • Improve Data Exch. Framework “Data Type” from Option to Enum for Extensionsibility (Pull Request)
  • (krajzys)
  • (bc4all)
    • Missing captions in the recurrence schedule (Pull Request)
  • bcarmo (bcarmo-dev)
    • Updated CreateReportTotalLines on Standard Sales Report (Pull Request)
  • Andrea Elßner (GOB-Andrea)
  • (BernhardKloibmueller)
  • (RadoArvay)
  • Daniel Neergaard (4ddfn)
    • GetWhseExpirationDate returns wrong boolean value if ExpiryDate is empty (Pull Request)
  • (JohnnyUndercover)
    • Make “Bill-to Name” editable for Custom Address in Sales Invoice (Pull Request)
  • Volodymyr Dvernytskyi (Drakonian)
    • Fix PutBlockList and PutBlock for Azure BLOB module (Pull Request)
  • Marko Saric (SarkeSrb)
    • Remove Option Caption on Status Field – Report 99001020 (Pull Request)

Recent Articles from the category

See you in Bangkok & Portoroz!

See you in Bangkok & Portoroz!

Not one, but two sessions at two Dynamics 365 conferences, spanning 8500 kilometres apart, all within two weeks in May!This promises to be an incredibly exciting month filled with knowledge-sharing and networking! Can’t wait to see everyone in Bangkok at Directions...

read more
New concurrency limits for JQ in 23.3

New concurrency limits for JQ in 23.3

With release 23.3, Microsoft completed the global rollout of concurrency JQ limit changes first introduced last year! Instead of a per-environment limit, Microsoft has shifted the focus to users (or Microsoft Entra Apps). Now, you can create more scheduled tasks per...

read more
BC Open Source? How to start?

BC Open Source? How to start?

BC Open Source? How to start? One of the most exciting news introduced last month in Lyon during Directions EMEA 2023 was the changes to the open-source initiative. This means that you can now contribute to the source code of the Base app and the System app, which are...

read more

Sign Up for News


Highest certification
Microsoft Data Management and
also in D365 Business Central

Microsoft Certified: Dynamics 365 Business Central Functional Consultant Associate

See other certifications here