In Microsoft Dynamics 365 Business Central (Administration), how do I… Use Worksheet Pages

Microsoft Dynamics 365 Business CentralThis post is part of the In Microsoft Dynamics 365 Business Central (Administration), how do I… series and of the wider In Microsoft Dynamics 365 Business Central, how do I… series which I am posting as I familiarise myself with Microsoft Dynamics 365 Business Central.

In an earlier article in this series, I introduced the different types of pages used within Dynamics BC. I thought it might be useful to give a run through of how to use each of the pages; in this post, I’m going to take a look at worksheet pages.

Like document pages, worksheet pages are transaction pages. However, they differ from document pages in that they can hold multiple transactions rather than just a single one.

Due to this difference, a worksheet page is structured differently. They consist of a small number of header fields, such as for a batch number, along with a list page style section for entering multiple data rows. This is sometimes followed by a section containing either additional data fields or totals.

There are many worksheet pages in Dynamics BC, including, but not limited to, general journals, price, pick and put-away worksheets.

An example of a worksheet page is the one for General Journals:

General Journal worksheet page

Continue reading “In Microsoft Dynamics 365 Business Central (Administration), how do I… Use Worksheet Pages”

SQL Scripts for Microsoft Dynamics GP: Insert Manufacturing Routings from Text File

Microsoft Dynamics GPThis script is part of the SQL Scripts for Microsoft Dynamics GP where I will be posted the scripts I wrote against Microsoft Dynamics GP over the 19 years before I stopped working with Dynamics GP.

This script uploads a text file using BULK INSERT to create manufacturing routings. There is error handling built in to check if the item, machine or route exists and will throw an error if issues are found; routings are only inserted if there are no errors.

/*
Created by Ian Grieve of azurecurve | Ramblings of an IT Professional (http://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0 Int). */
/* CREATE TEMP ERROR TABLE */ CREATE TABLE #Errors ( Error VARCHAR(1000) ,ROW_ID INT IDENTITY ) GO /* CREATE TEMP TABLE FOR DATA */ CREATE TABLE #ROUTING_IMPORT ( ROUTINGNAME_I VARCHAR(31) NOT NULL, RTSEQDES_I VARCHAR(101) NOT NULL, ITEMNMBR VARCHAR(31) NOT NULL, RTSEQNUM_I VARCHAR(11) NOT NULL, OPCODE_I VARCHAR(7) NOT NULL, MACHINEID_I VARCHAR(11) NOT NULL, SETUPTIME_I NUMERIC(19, 5) NOT NULL, MACHINETIME_I NUMERIC(19, 5) NOT NULL, RUNTIME_I NUMERIC(19, 5) NOT NULL, LABORTIME_I NUMERIC(19, 5) NOT NULL, QUEUETIME_I NUMERIC(19, 5) NOT NULL, CYCLETIME_I NUMERIC(19, 5) NOT NULL, MOVETIME_I NUMERIC(19, 5) NOT NULL, LABORCODE_I VARCHAR(11) NOT NULL, LABORCODE2_I VARCHAR(11) NOT NULL, NUMOFEMP SMALLINT NOT NULL, NUMBEROFMACHINES_I SMALLINT NOT NULL, WIPOPPERMOSTARTQTY SMALLINT NOT NULL, ) GO /* BULK INSERT */ BULK INSERT #ROUTING_IMPORT FROM 'c:\temp\ItemRouting.txt' WITH (FIELDTERMINATOR = '\t' ,ROWTERMINATOR = '\n' ,FIRSTROW = 2 ) GO /* VALIDATE DATA */ --validate parent item INSERT INTO #Errors (Error) --VALUES ( SELECT 'Item Number does not exist: ' + CAST(['Import'].ITEMNMBR AS VARCHAR(100)) FROM #ROUTING_IMPORT AS ['Import'] LEFT JOIN IV00101 AS ['Item Master'] --Item Master (IV00101) ON ['Item Master'].ITEMNMBR = ['Import'].ITEMNMBR WHERE ['Item Master'].ITEMNMBR IS NULL ) GO -- validate machine id INSERT INTO #Errors (Error) --VALUES ( SELECT 'Machine does not exist: ' + CAST(['Import'].MACHINEID_I AS VARCHAR(100)) FROM #ROUTING_IMPORT AS ['Import'] LEFT JOIN MM010032 AS ['Machine Master'] --MM010032 ON ['Machine Master'].MACHINEID_I = ['Import'].MACHINEID_I WHERE ['Machine Master'].MACHINEID_I IS NULL ) GO --validate existing bom INSERT INTO #Errors (Error) --VALUES ( SELECT 'Routing for Item already exists: ' + CAST(['Import'].ITEMNMBR AS VARCHAR(100)) FROM #ROUTING_IMPORT AS ['Import'] LEFT JOIN RT010001 AS ['routing_mstr'] --RT010001 ON ['routing_mstr'].ITEMNMBR = ['Import'].ITEMNMBR AND ['routing_mstr'].ROUTINGNAME_I = ['Import'].ROUTINGNAME_I WHERE ['routing_mstr'].ITEMNMBR IS NOT NULL ) GO --validate existing bom lines INSERT INTO #Errors (Error) --VALUES ( SELECT 'Routing for Item already exists: ' + CAST(['Import'].ITEMNMBR AS VARCHAR(100)) FROM #ROUTING_IMPORT AS ['Import'] LEFT JOIN RT010130 AS ['routing_line'] --RT010130 ON ['routing_line'].ITEMNMBR = ['Import'].ITEMNMBR AND ['routing_line'].ROUTINGNAME_I = ['Import'].ROUTINGNAME_I AND ['routing_line'].RTSEQNUM_I = ['Import'].RTSEQNUM_I WHERE ['routing_line'].ITEMNMBR IS NOT NULL ) GO /* INSERT NEW DATA IF NO ERRORS */ --insert bom header IF (SELECT COUNT(*) FROM #Errors) = 0 -- Insert if no Email Details INSERT INTO RT010001 --RT010001 ( ROUTINGNAME_I ,ITEMNMBR ,RTPRIMARY_I ,REVISIONLEVEL_I ,RTSTATUSDDL_I ,NOTEINDX ) --VALUES ( SELECT DISTINCT ROUTINGNAME_I ,ITEMNMBR ,1 --RTPRIMARY_I ,'' --REVISIONLEVEL_I ,4 --RTSTATUSDDL_I ,0 --NOTEINDX FROM #ROUTING_IMPORT AS ['Import'] WHERE ( SELECT COUNT(['routing_mstr'].ITEMNMBR) FROM RT010001 AS ['routing_mstr'] WHERE ['routing_mstr'].ITEMNMBR = ['Import'].ITEMNMBR AND ['routing_mstr'].ROUTINGNAME_I = ['Import'].ROUTINGNAME_I ) = 0 ) GO -- insert bom lines IF (SELECT COUNT(*) FROM #Errors) = 0 -- Insert if no Email Details INSERT INTO RT010130 --RT010130 ( ROUTINGNAME_I ,RTSEQNUM_I ,ITEMNMBR ,RTSEQTYPE_I ,RTSEQDES_I ,WCID_I ,OPCODE_I ,RTGWCID_I ,RTMCID_I ,MACHINEID_I ,SETUPTIME_I ,MACHINETIME_I ,RUNTIME_I ,LABORTIME_I ,QUEUETIME_I ,CYCLETIME_I ,MOVETIME_I ,PERCENTCOMPLETE_I ,QUANTITY_I ,LABORCODE_I ,LABORCODE2_I ,RTPARNUM_I ,RTNEXNUM_I ,DWGNUM_I ,TOOLID_I ,WAITHOURS_I ,MULTIPLEEMPLOYEEOP_I ,NUMOFEMP ,LASTSEQUENCETODAY_I ,TAPENUMBER_I ,USERDEF1 ,USERDEF2 ,NOTEINDX ,MFGNOTEINDEX_I ,USERID ,CREATDDT ,CREATETIME_I ,CHANGEDATE_I ,CHANGETIME_I ,AUTOBACKFLUSHLABOR_I ,AUTOBACKMACHINE_I ,NUMBEROFMACHINES_I ,NUMBEROFCREWS_I ,QAQCNEEDED_I ,POOFFSETDAYS ,WIPOPPERMOSTARTQTY ) --VALUES ( SELECT ROUTINGNAME_I ,RTSEQNUM_I ,ITEMNMBR ,0 --RTSEQTYPE_I ,RTSEQDES_I ,'MAIN' --WCID_I ,OPCODE_I ,'' --RTGWCID_I ,'' --RTMCID_I ,MACHINEID_I ,SETUPTIME_I ,MACHINETIME_I ,RUNTIME_I ,LABORTIME_I ,QUEUETIME_I ,CYCLETIME_I ,MOVETIME_I ,0 --PERCENTCOMPLETE_I ,0 --QUANTITY_I ,LABORCODE_I ,LABORCODE2_I ,'' --RTPARNUM_I ,'' --RTNEXNUM_I ,'' --DWGNUM_I ,'' --TOOLID_I ,0 --WAITHOURS_I ,0 --MULTIPLEEMPLOYEEOP_I ,NUMOFEMP ,0 --LASTSEQUENCETODAY_I ,'' --TAPENUMBER_I ,'' --USERDEF1 ,'' --USERDEF2 ,0 --NOTEINDX ,0 --MFGNOTEINDEX_I ,USER_ID() ,FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000') --CREATDDT ,FORMAT(GETDATE(), '1900-01-01 HH:mm:ss.000') --CREATETIME_I ,'1900-01-01 00:00:00.000' --CHANGEDATE_I ,'1900-01-01 00:00:00.000' --CHANGETIME_I ,1 --AUTOBACKFLUSHLABOR_I ,1 --AUTOBACKMACHINE_I ,NUMBEROFMACHINES_I ,0 --NUMBEROFCREWS_I ,0 --QAQCNEEDED_I ,0 --POOFFSETDAYS ,WIPOPPERMOSTARTQTY FROM #ROUTING_IMPORT AS ['Import'] WHERE ( SELECT COUNT(['routing_line'].ITEMNMBR) FROM RT010130 AS ['routing_line'] WHERE ['routing_line'].ITEMNMBR = ['Import'].ITEMNMBR AND ['routing_line'].ROUTINGNAME_I = ['Import'].ROUTINGNAME_I AND ['routing_line'].RTSEQNUM_I = ['Import'].RTSEQNUM_I ) = 0 ) GO /* OUTPUT ERRORS */ IF (SELECT COUNT(*) FROM #Errors) > 0 SELECT Error FROM #Errors ORDER BY ROW_ID GO /* DROP TEMP TABLES */ DROP TABLE #ROUTING_IMPORT GO DROP TABLE #Errors GO

Click to show/hide the SQL Scripts for Microsoft Dynamics GP Series Index

SQL Scripts for Microsoft Dynamics GP
Verify PM Batches Exist
Update Accrued Purchases Distribution on History Receipts from Posting Account Setup
Insert Mfg BOMs from Text File
SQL Function To Return Approver
List of Active Fixed Assets
Insert Manufacturing Routings from Text File
Table Function to Split String on Delimiter
List of Open Payables Transactions
Insert Creditor Item Numbers
Return Top Level BOM for Manufacturing Orders
Custom Purchase Order Email Notification to Originator on Workflow Final Approval
list of Open Payables Distributions
Set New Vendor On Hold if EFT Exists
Set New Vendor On Hold if EFT Exists
Payment Run Apply Query
List GL Transactions
Simple RMA Audit
Change Vendor Change Approvals Joins and Fields
Insert National Accounts from CSV
List GL Accounts With Notes
Import Site Bins From CSV
Remove Multicurrency from Sales Transactions
Change Email Notification Assignment
List General Ledger Transactions (Excluding Year End Journals)
List Taxes Linked to GL Accounts
Allow Workflow Originator to be an Approver
Add Joins and Fields to PM Document Approval Notification Emails
Update Accounts and Distributions on Work Status Sales Transactions from Item Card, Tax Details or Posting Account Setup
Upload and Verify Tax Commodity Codes
Delete Corrupt Extended Pricing Data
Assign All Items to All Site Bins
Sales Transactions (Work) Against a Specific Site
Change Web Service URi
SQL View to Return Quantity Available
Verify Tax Detail Assigned to Vendor
Insert Extended Pricing Price Sheet Header
Prefix Companies Names with System Designator
SQL View to Return Category Linked to Segment 3 in COA
Update Site Descriptions From CSV
Copy Workflow from Source to Destination Database
Extract GL Period Balances
Sales by Customer By Year
Purchased Items With Serial Numbers and Linked Sales Transactions
SQL View to Return Purchase Orders
Select All Primary Keys and Generate ALTER Script
Copy Workflow Calendar from Source to Destination Database
SQL Trigger on PO invoice Insert to Change GL posted Date
Sales by Salesperson By Year
Script to Set Transactions as Included on VAT Daybook Return
SQL Script to Return PO Receipts
Insert Extended Pricing Price Sheet UofM Work
View for Payables Transactions Extract
Export Open/History PM Transactions After a Specified Date
Copy Email Messages from a Source to Destination Database
PO Receipt History View
Insert Extended Pricing Price Sheet Assignments
Extract Payables Transactions from All Companies
List Open Purchase Orders
SQL View to Create Division Tree for Management Reporter
Select Chart of Accounts
Activate Horizontal Scroll Bars for All Existing Users
Workflow Assignment Review
Update Item Replenishment Method for Manufacturing
Get Alpha Characters from an Alphanumeric String
Set Vendor On Hold If EFT Details Changed
List Open Purchase Order Lines
SQL View to Create Division, including UDF 3 and 4, Tree for Management Reporter
Delete Orphaned Vendor EFT Details
Sales Invoice Query
Round Extended Pricing Price Sheet Item Value
Get Numeric Characters from an Alphanumeric String
Trigger to Activate Horizontal Scroll Bars for New Users
View to Return List of Payments and Linked Invoices
Select Duplicate Extended Pricing Price Sheet Work Records
RM Aged Debt Report
Select Next Temporary Creditor ID
Select a List of Vendor Addresses
Set Vendor On Hold When Created
Assembly Transaction Quantities Required
Generate Standard Cost Update Macro from Text File Import
Check for Corrupt Extended Pricing Records
Sales Line Items
Compare Ship To Address on Work Sales Trx Against Customer
SQL View to Return PO Commitment Detail
List Bank Accounts with Linked GL Accounts
Validate and Insert/Update Vendor Emails from a Text File
Return Items with Incorrect Quantities
Set Account Categories To User-Defined Field 2
Check Posting Type for Account (Segment 2)/Account Category Combinations
Update Ship To Name on Work Sales Transactions to Match the Customer Name
List Tax Detail Transactions
Select Tax Details and Related G/L Accounts
Update Account Description by Adding 3rd Segment Description
Update Segment Descriptions from Other Database
Return Opening Balance for Period of Supplied Date
Update Min Order Qty and Average Lead Time on Vendor Item From Text File
List of PM Invoices for Vendors with POs
Select Debit, Credit and Net Change for All Accounts in Date Range
Select All Pending Prepayments
Available Stock for All Items
Item Report
Migrate Vendor Emails from Active Docs to Standard Email Fields
Update Mfg Cost Accounts from Mfg Item Class Setup
PO Commitment Detail
Update Inventory Accounts from Item Class
Create Macro to Delete Items
Update Accounts Payable Distribution on Work Status PM Transactions from Posting Account Setup
Update Item Resource Planning on Item Quantity Master from Text File
SQL View to Return List of Posted Vendor Document Numbers
Update Inventory Distribution on Work Status Purchase Orders from the Item Card
Update Item Engineering File from a Text File
List of Exchange Rates

End of On-Premises Microsoft Dynamics 365 Business Central Licenses in 2025

Microsoft Dynamics 365 Business CentralI had someone mention this to me yesterday and I’ve since seen confirmation on MS Dynamics World; Microsoft plans to end the sale of perpetual licences for the on-premises versions of their Microsoft Dynamics Business Central in October 2025. This means from 2025, BC will only be available under a subscription or SaaS (software-as-a-service) model.

This only effects new sales, so existing on-premises customers with perpetual licences will continue to be able to use the software as they are currently and will still be able to add users.

** Updated phrasing to clarify this is the perpetual licences which have stopped for BC; subscription licences for on-premises will continue to be available.

End of Microsoft Dynamics GP On-Premises Licenses in 2025 and Subscription Licenses in 2026

Microsoft Dynamics 365 Business CentralI had someone mention this to me yesterday and I’ve since seen confirmation on MS Dynamics World; Microsoft plans to end the sale of on-premises licences of Microsoft Dynamics GP in October 2025 and the sale of subscription licenses in 2026.

This only effects new sales, so existing customers will continue to be able to use the software as they are currently and will still be able to add users. In the short term there is no need to rush as Microsoft have previously committed to support customers through 2028. However, the end of sales of new licences does pretty much spell the end of Microsoft Dynamics GP as a living product and will have more customers looking to implement new systems.

I’d agree with what Chris Dobkins, president and CEO of Microsoft partner Njevity said to MS Dynamics World, that Microsoft may be heading for surprise at the numbers who replace Dynamics GP with Business Central; like Chris, I suspect there will be far fewer than they think.

BC is not a direct upgrade from Dynamics GP as many people seem to think. Before making the switch, organisations need to take a good look at the product and see if it will meet their requirements; due diligence around competitors is also needed to see if one of those is a better fit.

The writing was on the wall for this when Dynamics GP didn’t receive a SaaS version like AX as F&O and NAV as BC and was one of the reasons for my decision to switch to BC last year.

SQL Scripts for Microsoft Dynamics GP: Insert Mfg BOMs from Text File

Microsoft Dynamics GPThis script is part of the SQL Scripts for Microsoft Dynamics GP where I will be posted the scripts I wrote against Microsoft Dynamics GP over the 19 years before I stopped working with Dynamics GP.

This script uploads a text file using BULK INSERT to create manufacturing BOMs. There is error handling built in to check if the item or BOM exists and will throw an error if issues are found; BOMs are only inserted if there are no errors.

/*
Created by Ian Grieve of azurecurve | Ramblings of an IT Professional (http://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0 Int). */
/* CREATE TEMP ERROR TABLE */ CREATE TABLE #Errors ( Error VARCHAR(1000) ,ROW_ID INT IDENTITY ) GO /* CREATE TEMP TABLE FOR DATA */ CREATE TABLE #BOM_IMPORT ( PPN_I VARCHAR(30) ,CPN_I VARCHAR(30) ,BOMSEQ_I INTEGER ,QUANTITY_I NUMERIC(19,5) ,UOFM VARCHAR(9) ) GO /* BULK INSERT */ BULK INSERT #BOM_IMPORT FROM 'c:\temp\ItemBOM.txt' WITH (FIELDTERMINATOR = '\t' ,ROWTERMINATOR = '\n' ,FIRSTROW = 2 ) GO /* VALIDATE DATA */ --validate parent item INSERT INTO #Errors (Error) --VALUES ( SELECT 'Parent Item does not exist: ' + CAST(['Import'].PPN_I AS VARCHAR(100)) FROM #BOM_IMPORT AS ['Import'] LEFT JOIN IV00101 AS ['Item Master'] --Item Master (IV00101) ON ['Item Master'].ITEMNMBR = ['Import'].PPN_I WHERE ['Item Master'].ITEMNMBR IS NULL ) GO -- validate component item INSERT INTO #Errors (Error) --VALUES ( SELECT 'Component Item ' + CAST(['Import'].CPN_I AS VARCHAR(100)) + ' does not exist for ' + CAST(['Import'].PPN_I AS VARCHAR(100)) FROM #BOM_IMPORT AS ['Import'] LEFT JOIN IV00101 AS ['Item Master'] --Item Master (IV00101) ON ['Item Master'].ITEMNMBR = ['Import'].CPN_I WHERE ['Item Master'].ITEMNMBR IS NULL ) GO --validate existing bom INSERT INTO #Errors (Error) --VALUES ( SELECT 'BOM for Item already exists: ' + CAST(['Import'].PPN_I AS VARCHAR(100)) FROM #BOM_IMPORT AS ['Import'] LEFT JOIN BM010415 AS ['BOM Revision'] --BM010415 ON ['BOM Revision'].ITEMNMBR = ['Import'].PPN_I WHERE ['BOM Revision'].ITEMNMBR IS NOT NULL ) GO --validate existing bom lines INSERT INTO #Errors (Error) --VALUES ( SELECT 'BOM for Item already exists: ' + CAST(['Import'].PPN_I AS VARCHAR(100)) FROM #BOM_IMPORT AS ['Import'] LEFT JOIN BM010115 AS ['Bill Of Material Line File'] --BM010115 ON ['Bill Of Material Line File'].PPN_I = ['Import'].PPN_I WHERE ['Bill Of Material Line File'].PPN_I IS NOT NULL ) GO -- validate unit of measure INSERT INTO #Errors (Error) --VALUES ( SELECT 'Unit of Measure does not exist: ' + CAST(['Import'].UOFM AS VARCHAR(100)) FROM #BOM_IMPORT AS ['Import'] LEFT JOIN IV40202 AS ['Inventory U of M Schedule Detail Setup'] --Inventory U of M Schedule Detail Setup (IV40202) ON ['Inventory U of M Schedule Detail Setup'].UOFM = ['Import'].UOFM WHERE ['Inventory U of M Schedule Detail Setup'].UOFM IS NULL ) GO /* INSERT NEW DATA IF NO ERRORS */ --insert bom header IF (SELECT COUNT(*) FROM #Errors) = 0 -- Insert if no Email Details INSERT INTO BM010415 --BM010415 ( ITEMNMBR ,BOMCAT_I ,BOMNAME_I ,REVISIONLEVEL_I ,EFFECTIVEDATE_I ,BACKFLUSHITEM_I ,BOMTYPE_I ,LOCNCODE ,WCID_I ,Net_Phantom_Inventory ,CHANGEDATE_I ,CHANGEBY_I ,MFGNOTEINDEX3_I ) --VALUES ( SELECT DISTINCT PPN_I -- ITEMNMBR ,1 --BOMCAT_I ,'' --BOMNAME_I ,1 --REVISIONLEVEL_I ,'1900-01-01 00:00:00.000' --EFFECTIVEDATE_I ,0 --BACKFLUSHITEM_I ,1 --BOMTYPE_I ,'' --LOCNCODE ,'' --WCID_I ,0 --Net_Phantom_Inventory ,FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000') --CHANGEDATE_I ,USER_ID() --CHANGEBY_I ,0 --MFGNOTEINDEX3_I FROM #BOM_IMPORT AS ['Import'] WHERE ( SELECT COUNT(['BOM Revision'].ITEMNMBR) FROM BM010415 AS ['BOM Revision'] WHERE ['BOM Revision'].ITEMNMBR = ['Import'].PPN_I ) = 0 ) GO -- insert bom lines IF (SELECT COUNT(*) FROM #Errors) = 0 -- Insert if no Email Details INSERT INTO BM010115 --BM010115 ( PPN_I ,CPN_I ,BOMCAT_I ,BOMNAME_I ,BOMTYPE_I ,BOMSEQ_I ,POSITION_NUMBER ,SUBCAT_I ,SUBNAME_I ,SUB_REV_LEVEL_SEQ_I ,QUANTITY_I ,OPTPERCENT_I ,SCRAPPERCENT_I ,FLOORSTOCK_I ,EFFECTIVEINDATE_I ,EFFECTIVEOUTDATE_I ,ALTERNATE_I ,ALTERNATEPARTFOR_I ,ALT_FOR_BOM_SEQ_I ,LEADTIMEOFFSET_I ,LEADTIMEOFFSETINC_I ,BOMUSERDEF1_I ,BOMUSERDEF2_I ,BOMSINGLELOT_I ,BOMENGAPPROVAL_I ,WCID_I ,LOCNCODE ,BACKFLUSHITEM_I ,CHANGEDATE_I ,USERID ,OPTIONED_ITEM_I ,ACTUAL_CONSUMED_CHECK_I ,FIXED_QTY_I ,UOFM ,U_Of_M_2 ,QTYBSUOM ,OFFSET_FROM_I ,MFGNOTEINDEX_I ,MFGNOTEINDEX2_I ) --VALUES ( SELECT PPN_I ,CPN_I ,1 --BOMCAT_I ,'' --BOMNAME_I ,1 --BOMTYPE_I ,BOMSEQ_I --BOMSEQ_I ,BOMSEQ_I --POSITION_NUMBER ,1 --SUBCAT_I ,'' --SUBNAME_I ,0 --SUB_REV_LEVEL_SEQ_I ,QUANTITY_I ,0 --OPTPERCENT_I ,0 --SCRAPPERCENT_I ,0 --FLOORSTOCK_I ,'1900-01-01 00:00:00.000' --EFFECTIVEINDATE_I ,'1900-01-01 00:00:00.000' --EFFECTIVEOUTDATE_I ,0 --ALTERNATE_I ,'' --ALTERNATEPARTFOR_I ,0 --ALT_FOR_BOM_SEQ_I ,0 --LEADTIMEOFFSET_I ,0 --LEADTIMEOFFSETINC_I ,'' --BOMUSERDEF1_I ,'' --BOMUSERDEF2_I ,0 --BOMSINGLELOT_I ,0 --BOMENGAPPROVAL_I ,'' --WCID_I ,'MAIN' --LOCNCODE ,0 --BACKFLUSHITEM_I ,FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000') --CHANGEDATE_I ,USER_ID() ,0 --OPTIONED_ITEM_I ,0 --ACTUAL_CONSUMED_CHECK_I ,0 --FIXED_QTY_I ,UOFM ,UOFM --U_Of_M_2 ,1 --QTYBSUOM ,1 --OFFSET_FROM_I ,0 --MFGNOTEINDEX_I ,0 --MFGNOTEINDEX2_I FROM #BOM_IMPORT AS ['Import'] WHERE ( SELECT COUNT(['Bill Of Material Line File'].PPN_I) FROM BM010115 AS ['Bill Of Material Line File'] WHERE ['Bill Of Material Line File'].PPN_I = ['Import'].PPN_I AND ['Bill Of Material Line File'].CPN_I = ['Import'].CPN_I ) = 0 ) GO /* OUTPUT ERRORS */ IF (SELECT COUNT(*) FROM #Errors) > 0 SELECT Error FROM #Errors ORDER BY ROW_ID GO /* DROP TEMP TABLES */ DROP TABLE #BOM_IMPORT GO DROP TABLE #Errors GO

Click to show/hide the SQL Scripts for Microsoft Dynamics GP Series Index

SQL Scripts for Microsoft Dynamics GP
Verify PM Batches Exist
Update Accrued Purchases Distribution on History Receipts from Posting Account Setup
Insert Mfg BOMs from Text File
SQL Function To Return Approver
List of Active Fixed Assets
Insert Manufacturing Routings from Text File
Table Function to Split String on Delimiter
List of Open Payables Transactions
Insert Creditor Item Numbers
Return Top Level BOM for Manufacturing Orders
Custom Purchase Order Email Notification to Originator on Workflow Final Approval
list of Open Payables Distributions
Set New Vendor On Hold if EFT Exists
Set New Vendor On Hold if EFT Exists
Payment Run Apply Query
List GL Transactions
Simple RMA Audit
Change Vendor Change Approvals Joins and Fields
Insert National Accounts from CSV
List GL Accounts With Notes
Import Site Bins From CSV
Remove Multicurrency from Sales Transactions
Change Email Notification Assignment
List General Ledger Transactions (Excluding Year End Journals)
List Taxes Linked to GL Accounts
Allow Workflow Originator to be an Approver
Add Joins and Fields to PM Document Approval Notification Emails
Update Accounts and Distributions on Work Status Sales Transactions from Item Card, Tax Details or Posting Account Setup
Upload and Verify Tax Commodity Codes
Delete Corrupt Extended Pricing Data
Assign All Items to All Site Bins
Sales Transactions (Work) Against a Specific Site
Change Web Service URi
SQL View to Return Quantity Available
Verify Tax Detail Assigned to Vendor
Insert Extended Pricing Price Sheet Header
Prefix Companies Names with System Designator
SQL View to Return Category Linked to Segment 3 in COA
Update Site Descriptions From CSV
Copy Workflow from Source to Destination Database
Extract GL Period Balances
Sales by Customer By Year
Purchased Items With Serial Numbers and Linked Sales Transactions
SQL View to Return Purchase Orders
Select All Primary Keys and Generate ALTER Script
Copy Workflow Calendar from Source to Destination Database
SQL Trigger on PO invoice Insert to Change GL posted Date
Sales by Salesperson By Year
Script to Set Transactions as Included on VAT Daybook Return
SQL Script to Return PO Receipts
Insert Extended Pricing Price Sheet UofM Work
View for Payables Transactions Extract
Export Open/History PM Transactions After a Specified Date
Copy Email Messages from a Source to Destination Database
PO Receipt History View
Insert Extended Pricing Price Sheet Assignments
Extract Payables Transactions from All Companies
List Open Purchase Orders
SQL View to Create Division Tree for Management Reporter
Select Chart of Accounts
Activate Horizontal Scroll Bars for All Existing Users
Workflow Assignment Review
Update Item Replenishment Method for Manufacturing
Get Alpha Characters from an Alphanumeric String
Set Vendor On Hold If EFT Details Changed
List Open Purchase Order Lines
SQL View to Create Division, including UDF 3 and 4, Tree for Management Reporter
Delete Orphaned Vendor EFT Details
Sales Invoice Query
Round Extended Pricing Price Sheet Item Value
Get Numeric Characters from an Alphanumeric String
Trigger to Activate Horizontal Scroll Bars for New Users
View to Return List of Payments and Linked Invoices
Select Duplicate Extended Pricing Price Sheet Work Records
RM Aged Debt Report
Select Next Temporary Creditor ID
Select a List of Vendor Addresses
Set Vendor On Hold When Created
Assembly Transaction Quantities Required
Generate Standard Cost Update Macro from Text File Import
Check for Corrupt Extended Pricing Records
Sales Line Items
Compare Ship To Address on Work Sales Trx Against Customer
SQL View to Return PO Commitment Detail
List Bank Accounts with Linked GL Accounts
Validate and Insert/Update Vendor Emails from a Text File
Return Items with Incorrect Quantities
Set Account Categories To User-Defined Field 2
Check Posting Type for Account (Segment 2)/Account Category Combinations
Update Ship To Name on Work Sales Transactions to Match the Customer Name
List Tax Detail Transactions
Select Tax Details and Related G/L Accounts
Update Account Description by Adding 3rd Segment Description
Update Segment Descriptions from Other Database
Return Opening Balance for Period of Supplied Date
Update Min Order Qty and Average Lead Time on Vendor Item From Text File
List of PM Invoices for Vendors with POs
Select Debit, Credit and Net Change for All Accounts in Date Range
Select All Pending Prepayments
Available Stock for All Items
Item Report
Migrate Vendor Emails from Active Docs to Standard Email Fields
Update Mfg Cost Accounts from Mfg Item Class Setup
PO Commitment Detail
Update Inventory Accounts from Item Class
Create Macro to Delete Items
Update Accounts Payable Distribution on Work Status PM Transactions from Posting Account Setup
Update Item Resource Planning on Item Quantity Master from Text File
SQL View to Return List of Posted Vendor Document Numbers
Update Inventory Distribution on Work Status Purchase Orders from the Item Card
Update Item Engineering File from a Text File
List of Exchange Rates

In Microsoft Dynamics 365 Business Central (Administration), how do I… Use Document Pages

Microsoft Dynamics 365 Business CentralThis post is part of the In Microsoft Dynamics 365 Business Central (Administration), how do I… series and of the wider In Microsoft Dynamics 365 Business Central, how do I… series which I am posting as I familiarise myself with Microsoft Dynamics 365 Business Central.

In an earlier article in this series, I introduced the different types of pages used within Dynamics BC. I thought it might be useful to give a run through of how to use each of the pages; in this post, I’m going to take a look at document pages.

Document pages are used for single documents where there is a header and related document lines. There are many types of documents which use this type of page, including, but not limited to, purchase orders, purchase invoices, sales orders.

To an extent, a document page is like a card page in that you have the action pane at the top, factpane at the right side and the content is split into fasttabs which behave the same as on the card page. The difference on a document page is that there is a section for the document lines:

Purchase Order document page

This section cannot be folded up in the way a fasttab can. The document lines field is a typical listview with one line per document line with a need to scroll side to side-to-see all of the columns contained within.

The document line field has its own action pane which is very like the main one on the window, but all of the actions are specific to the lines; there are duplicates where there are duplicate actions for the document header and lines. One example would be Dimensions.

Continue reading “In Microsoft Dynamics 365 Business Central (Administration), how do I… Use Document Pages”

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1: Improved Alignment of Headers in Statistics Pages

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2023 Wave 1.

The eighth of the new functionality in the User experiences section is Improved alignment of headers in statistics pages.

The default behavior across Business Central is to right align numeric fields and left align text fields. However, when pages display fields arranged in special tabular layouts, such as customer statistics or on most journal footers, the mixed data types often result in column headers being misaligned with their data. With this update, users benefit from improved readability of data with automatically aligned headers.

Enabled for: Users, automatically
Public Preview: Feb 2023
General Availability: Apr 2023

Feature Details

  • Improved readability: When a fixed layout group control is used on a page, Business Central automatically detects the first visible value in a column, and the header is left-aligned or right-aligned accordingly.
  • Just works: No additional effort is required from developers to specify alignment.
The vendor statistics page, illustrating the improved alignment
A Journal footer, illustrating the improved alignment

My Opinion

This sounds like a simple change which will, as advertised, improve visibility by displaying data with a consistent alignment.

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1
Use Business Events To Notify And Trigger External Systems
Get Started With More Sample Power Automate Templates And Power Apps
New Approval Workflow Experience With Power Automate Templates
Support Dynamic Environment And Company In Power Platform Connector
Remove Modification Limits For Triggering Flows
Use Power Automate To Post Adaptive Card Or Link To Business Central Record
Adjust Exchange Rates Easily, Replace The Built-In Batch Job
Use Different General Ledger Accounts For Payables, Receivables
Avoid Document Number Errors When You Post Item Journals
Company Hub Now Lets Admins Add User-Specific Settings
Define Content Of Created Warehouse Documents With Filters
Intercompany Posting Setup Supports More Transaction Types And Streamlines Flows
Preview Item Journals Before Posting
Review General Ledger Accounts Faster
Set Up And Sync Master Data Across Companies
Ship And Receive Non-Inventory Items On Warehouse Documents
Shopify Connector Becomes Extensible
Shopify Connector Becomes Extensible
Synchronize Returns, Refunds From Shopify
Undo Transfer Shipments
Swedish Localization Delivered As Extension
Supporting More Countries And Regions
AL Explorer And AL Home In Visual Studio Code AL Extension
Attach AL Debugger To Active Session Or Next Session
Improved Compiler Resource Handling And Faster Code Analyzers
Optimized Runtime Package Generation For Sharing
Provide Title And Custom Actions To Error Dialogs
Control Database Locking Behaviour
AL-Go For Github – Modern Devops For Partners
ISVs Can Organize A Preview For Their Appsource Apps
Experience Improved App Management Settings
Get An Improved Cloud Migration Status Overview
Include Or Exclude Tables From Cloud Migration
Transfer Environments Between Azure Ad Tenants
Non-Deductible, Partly Deductible Vat Expands Functionality
Audit File Export Eases Saf-T Compliance
Easily Find And Install Payroll Apps From Within Business Central
Modern Tooltips Are Easy To Read And Understand
Refresh Of Content To Support Modern Tooltip UI
Experience Enhanced Adaptive Cards In Teams
Configure Security Controls For Teams Cards
Add Existing Table Fields To Optimize Your Pages
Drag And Drop Files Onto The File Upload Dialog
Access Actions And Navigation Menu Efficiently With Keyboard
Get More Productivity Out Of An Optimized Action Bar On All App Pages
Get Unblocked Using Actionable Error Messages In Select Application Areas
Tailor Action Bar To Fit Your Needs On Document Lines
Copy And Paste Readable Hyperlinks
Removed Functionality
Add More Columns to Pages for Better Insight
Catalog Items Use Standard Number Series, Can Include in Blanket Sales Orders
Demo Tool and Data for Warehouse and Inventory Scenarios
Easier to Create Opening Balances for Item Tracked Inventory
Post multiple transfer orders at the same time
Set Default Dimensions on Locations, Inventory Documents and Journals
Usability Improves for Transfer Order: Select Multiple Items, Mandatory Fields
Usability Improves for Warehouse, Inventory and Tracking Areas
Use Advanced Warehouse Functionality With Minimal Complexity
Use Statistical Accounts to Collect Data for Financial Reports
Save Time With Automatic Account Codes (Sweden and Finland Only)
Country/Regional Expansion – Andorra
Define Regional Settings Per Report Using a Region Property
Extensions That Fail Pre-Upgrade Validation Get More Detailed Error Insights
Delegated Admin’s Job Queue Entries Are Run by User
Manage User Permissions Using Security Groups
Analyze, Group, and Pivot Data on List Pages Using Multiple Tabs
Allow Application and Tenant Databases to Differ in Collation
Business Central server runs on .NET 6
New telemetry events and data
Performance – OData calls are now faster
Improved Alignment of Headers in Statistics Pages

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1: Performance – OData calls are now faster

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2023 Wave 1.

The sixth of the new functionality in the Productive with Microsoft 365 section is Performance – OData calls are now faster.

Most integrations to Business Central from external systems and services use the OData technology to read and write data. We’ve optimized this part of the Business Central server so that OData calls run faster and consume less resources. For customer integrations that use OData, this means better throughput (more calls per minute).

Enabled for: Admins, makers, marketers, or analysts, automatically
Public Preview: Apr 2023
General Availability: Apr 2023

Feature Details

Most integrations to Business Central from external systems and services use the OData technology to read and write data.

In this release, we’ve optimized these parts of the OData layer on the Business Central server:

  • It’s up to 40 percent faster to open an OData session and be ready to run logic.
  • Opening an OData session no longer runs OnOpenCompany when accessing metadata. For customers with expensive AL logic that runs this trigger, this can greatly improve performance for OData calls.
  • For web services on a Business Central online environment, we’ve optimized code in a name lookup service that will put performance on par with similar on-premises hardware setups.

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1
Use Business Events To Notify And Trigger External Systems
Get Started With More Sample Power Automate Templates And Power Apps
New Approval Workflow Experience With Power Automate Templates
Support Dynamic Environment And Company In Power Platform Connector
Remove Modification Limits For Triggering Flows
Use Power Automate To Post Adaptive Card Or Link To Business Central Record
Adjust Exchange Rates Easily, Replace The Built-In Batch Job
Use Different General Ledger Accounts For Payables, Receivables
Avoid Document Number Errors When You Post Item Journals
Company Hub Now Lets Admins Add User-Specific Settings
Define Content Of Created Warehouse Documents With Filters
Intercompany Posting Setup Supports More Transaction Types And Streamlines Flows
Preview Item Journals Before Posting
Review General Ledger Accounts Faster
Set Up And Sync Master Data Across Companies
Ship And Receive Non-Inventory Items On Warehouse Documents
Shopify Connector Becomes Extensible
Shopify Connector Becomes Extensible
Synchronize Returns, Refunds From Shopify
Undo Transfer Shipments
Swedish Localization Delivered As Extension
Supporting More Countries And Regions
AL Explorer And AL Home In Visual Studio Code AL Extension
Attach AL Debugger To Active Session Or Next Session
Improved Compiler Resource Handling And Faster Code Analyzers
Optimized Runtime Package Generation For Sharing
Provide Title And Custom Actions To Error Dialogs
Control Database Locking Behaviour
AL-Go For Github – Modern Devops For Partners
ISVs Can Organize A Preview For Their Appsource Apps
Experience Improved App Management Settings
Get An Improved Cloud Migration Status Overview
Include Or Exclude Tables From Cloud Migration
Transfer Environments Between Azure Ad Tenants
Non-Deductible, Partly Deductible Vat Expands Functionality
Audit File Export Eases Saf-T Compliance
Easily Find And Install Payroll Apps From Within Business Central
Modern Tooltips Are Easy To Read And Understand
Refresh Of Content To Support Modern Tooltip UI
Experience Enhanced Adaptive Cards In Teams
Configure Security Controls For Teams Cards
Add Existing Table Fields To Optimize Your Pages
Drag And Drop Files Onto The File Upload Dialog
Access Actions And Navigation Menu Efficiently With Keyboard
Get More Productivity Out Of An Optimized Action Bar On All App Pages
Get Unblocked Using Actionable Error Messages In Select Application Areas
Tailor Action Bar To Fit Your Needs On Document Lines
Copy And Paste Readable Hyperlinks
Removed Functionality
Add More Columns to Pages for Better Insight
Catalog Items Use Standard Number Series, Can Include in Blanket Sales Orders
Demo Tool and Data for Warehouse and Inventory Scenarios
Easier to Create Opening Balances for Item Tracked Inventory
Post multiple transfer orders at the same time
Set Default Dimensions on Locations, Inventory Documents and Journals
Usability Improves for Transfer Order: Select Multiple Items, Mandatory Fields
Usability Improves for Warehouse, Inventory and Tracking Areas
Use Advanced Warehouse Functionality With Minimal Complexity
Use Statistical Accounts to Collect Data for Financial Reports
Save Time With Automatic Account Codes (Sweden and Finland Only)
Country/Regional Expansion – Andorra
Define Regional Settings Per Report Using a Region Property
Extensions That Fail Pre-Upgrade Validation Get More Detailed Error Insights
Delegated Admin’s Job Queue Entries Are Run by User
Manage User Permissions Using Security Groups
Analyze, Group, and Pivot Data on List Pages Using Multiple Tabs
Allow Application and Tenant Databases to Differ in Collation
Business Central server runs on .NET 6
New telemetry events and data
Performance – OData calls are now faster
Improved Alignment of Headers in Statistics Pages

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1: New telemetry events and data

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2023 Wave 1.

The fifth of the new functionality in the Productive with Microsoft 365 section is New telemetry events and data.

Telemetry events on incoming and outgoing calls to web services, long-running AL methods, and error dialogs have been enhanced to make it even easier to troubleshoot performance and stability issues.

Enabled for: Users, automatically
Public Preview: Apr 2023
General Availability: Apr 2023

Feature Details

The following events have been improved in telemetry:

  • Incoming web service calls (eventId RT0008) now include the time spent waiting in the throttling queue on the Business Central server. This allows you to track whether web services performance issues are due to throttling/queueing on the Business Central server.
  • Incoming web service calls (eventId RT0008) now include the error message for OData/API calls when a failure occurs. This allows you to better troubleshoot web services issues.
  • Outgoing web service calls (eventId RT0019) now include clientType and AL stack trace. This allows you to find places in your code where outgoing web service calls block the UI.
  • Long-running AL methods (eventId RT0018) now include details about SQL statements on the Business Central database. This allows you to better understand the performance of your AL code.
  • Error dialogs (eventId RT0018) now include the English error text instead of the localized version. This allows you to monitor error messages no matter which language the user has chosen in their client.

The following events are new in telemetry:

  • Metadata permission set changes due to extensions installed/updated (eventId to be determined). This allows you to monitor permission changes, and also if they are introduced by an extension.
  • File blocked from upload due to possible malware (eventId to be determined). This allows you to monitor potential security issues from user.
  • Changes made in Feature Management. This allows you to track configuration changes done by the administrator.

Learn more about Business Central telemetry at Monitoring and Analyzing Telemetry.

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1
Use Business Events To Notify And Trigger External Systems
Get Started With More Sample Power Automate Templates And Power Apps
New Approval Workflow Experience With Power Automate Templates
Support Dynamic Environment And Company In Power Platform Connector
Remove Modification Limits For Triggering Flows
Use Power Automate To Post Adaptive Card Or Link To Business Central Record
Adjust Exchange Rates Easily, Replace The Built-In Batch Job
Use Different General Ledger Accounts For Payables, Receivables
Avoid Document Number Errors When You Post Item Journals
Company Hub Now Lets Admins Add User-Specific Settings
Define Content Of Created Warehouse Documents With Filters
Intercompany Posting Setup Supports More Transaction Types And Streamlines Flows
Preview Item Journals Before Posting
Review General Ledger Accounts Faster
Set Up And Sync Master Data Across Companies
Ship And Receive Non-Inventory Items On Warehouse Documents
Shopify Connector Becomes Extensible
Shopify Connector Becomes Extensible
Synchronize Returns, Refunds From Shopify
Undo Transfer Shipments
Swedish Localization Delivered As Extension
Supporting More Countries And Regions
AL Explorer And AL Home In Visual Studio Code AL Extension
Attach AL Debugger To Active Session Or Next Session
Improved Compiler Resource Handling And Faster Code Analyzers
Optimized Runtime Package Generation For Sharing
Provide Title And Custom Actions To Error Dialogs
Control Database Locking Behaviour
AL-Go For Github – Modern Devops For Partners
ISVs Can Organize A Preview For Their Appsource Apps
Experience Improved App Management Settings
Get An Improved Cloud Migration Status Overview
Include Or Exclude Tables From Cloud Migration
Transfer Environments Between Azure Ad Tenants
Non-Deductible, Partly Deductible Vat Expands Functionality
Audit File Export Eases Saf-T Compliance
Easily Find And Install Payroll Apps From Within Business Central
Modern Tooltips Are Easy To Read And Understand
Refresh Of Content To Support Modern Tooltip UI
Experience Enhanced Adaptive Cards In Teams
Configure Security Controls For Teams Cards
Add Existing Table Fields To Optimize Your Pages
Drag And Drop Files Onto The File Upload Dialog
Access Actions And Navigation Menu Efficiently With Keyboard
Get More Productivity Out Of An Optimized Action Bar On All App Pages
Get Unblocked Using Actionable Error Messages In Select Application Areas
Tailor Action Bar To Fit Your Needs On Document Lines
Copy And Paste Readable Hyperlinks
Removed Functionality
Add More Columns to Pages for Better Insight
Catalog Items Use Standard Number Series, Can Include in Blanket Sales Orders
Demo Tool and Data for Warehouse and Inventory Scenarios
Easier to Create Opening Balances for Item Tracked Inventory
Post multiple transfer orders at the same time
Set Default Dimensions on Locations, Inventory Documents and Journals
Usability Improves for Transfer Order: Select Multiple Items, Mandatory Fields
Usability Improves for Warehouse, Inventory and Tracking Areas
Use Advanced Warehouse Functionality With Minimal Complexity
Use Statistical Accounts to Collect Data for Financial Reports
Save Time With Automatic Account Codes (Sweden and Finland Only)
Country/Regional Expansion – Andorra
Define Regional Settings Per Report Using a Region Property
Extensions That Fail Pre-Upgrade Validation Get More Detailed Error Insights
Delegated Admin’s Job Queue Entries Are Run by User
Manage User Permissions Using Security Groups
Analyze, Group, and Pivot Data on List Pages Using Multiple Tabs
Allow Application and Tenant Databases to Differ in Collation
Business Central server runs on .NET 6
New telemetry events and data
Performance – OData calls are now faster
Improved Alignment of Headers in Statistics Pages

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1: Business Central server runs on .NET 6

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2023 Wave 1.

The fourth of the new functionality in the Productive with Microsoft 365 section is Business Central server runs on .NET 6.

The Business Central server now runs on Microsoft .NET 6. This improves performance and resource consumption on all AL code execution.

Enabled for: Admins, makers, marketers, or analysts, automatically
Public Preview: Apr 2023
General Availability: Apr 2023

Feature Details

Microsofthave moved the Business Central server to run on .NET 6 instead of .NET Framework 4.8.

Performance measurements suggest an improvement of 30 percent when executing AL code.

For on-premises installations, any existing .NET add-ins will need to be converted to .NET Standard before the Business Central environment can be upgraded to this release.

For more information, go to Migrating from .NET Framework to .NET Standard.

In the Microsoft base and system applications, all .NET add-ins have been converted to .NET Standard, except in the localized versions for the Netherlands and Mexico. In these versions, we encountered uses of .NET Framework where no .NET Standard options were available. The .NET add-ins in these two cases are hosted as Azure Functions. If you need to do the same for your on-premises solutions, refer to our source code to find out how it’s done.

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1

New Functionality In Microsoft Dynamics 365 Business Central 2023 Wave 1
Use Business Events To Notify And Trigger External Systems
Get Started With More Sample Power Automate Templates And Power Apps
New Approval Workflow Experience With Power Automate Templates
Support Dynamic Environment And Company In Power Platform Connector
Remove Modification Limits For Triggering Flows
Use Power Automate To Post Adaptive Card Or Link To Business Central Record
Adjust Exchange Rates Easily, Replace The Built-In Batch Job
Use Different General Ledger Accounts For Payables, Receivables
Avoid Document Number Errors When You Post Item Journals
Company Hub Now Lets Admins Add User-Specific Settings
Define Content Of Created Warehouse Documents With Filters
Intercompany Posting Setup Supports More Transaction Types And Streamlines Flows
Preview Item Journals Before Posting
Review General Ledger Accounts Faster
Set Up And Sync Master Data Across Companies
Ship And Receive Non-Inventory Items On Warehouse Documents
Shopify Connector Becomes Extensible
Shopify Connector Becomes Extensible
Synchronize Returns, Refunds From Shopify
Undo Transfer Shipments
Swedish Localization Delivered As Extension
Supporting More Countries And Regions
AL Explorer And AL Home In Visual Studio Code AL Extension
Attach AL Debugger To Active Session Or Next Session
Improved Compiler Resource Handling And Faster Code Analyzers
Optimized Runtime Package Generation For Sharing
Provide Title And Custom Actions To Error Dialogs
Control Database Locking Behaviour
AL-Go For Github – Modern Devops For Partners
ISVs Can Organize A Preview For Their Appsource Apps
Experience Improved App Management Settings
Get An Improved Cloud Migration Status Overview
Include Or Exclude Tables From Cloud Migration
Transfer Environments Between Azure Ad Tenants
Non-Deductible, Partly Deductible Vat Expands Functionality
Audit File Export Eases Saf-T Compliance
Easily Find And Install Payroll Apps From Within Business Central
Modern Tooltips Are Easy To Read And Understand
Refresh Of Content To Support Modern Tooltip UI
Experience Enhanced Adaptive Cards In Teams
Configure Security Controls For Teams Cards
Add Existing Table Fields To Optimize Your Pages
Drag And Drop Files Onto The File Upload Dialog
Access Actions And Navigation Menu Efficiently With Keyboard
Get More Productivity Out Of An Optimized Action Bar On All App Pages
Get Unblocked Using Actionable Error Messages In Select Application Areas
Tailor Action Bar To Fit Your Needs On Document Lines
Copy And Paste Readable Hyperlinks
Removed Functionality
Add More Columns to Pages for Better Insight
Catalog Items Use Standard Number Series, Can Include in Blanket Sales Orders
Demo Tool and Data for Warehouse and Inventory Scenarios
Easier to Create Opening Balances for Item Tracked Inventory
Post multiple transfer orders at the same time
Set Default Dimensions on Locations, Inventory Documents and Journals
Usability Improves for Transfer Order: Select Multiple Items, Mandatory Fields
Usability Improves for Warehouse, Inventory and Tracking Areas
Use Advanced Warehouse Functionality With Minimal Complexity
Use Statistical Accounts to Collect Data for Financial Reports
Save Time With Automatic Account Codes (Sweden and Finland Only)
Country/Regional Expansion – Andorra
Define Regional Settings Per Report Using a Region Property
Extensions That Fail Pre-Upgrade Validation Get More Detailed Error Insights
Delegated Admin’s Job Queue Entries Are Run by User
Manage User Permissions Using Security Groups
Analyze, Group, and Pivot Data on List Pages Using Multiple Tabs
Allow Application and Tenant Databases to Differ in Collation
Business Central server runs on .NET 6
New telemetry events and data
Performance – OData calls are now faster
Improved Alignment of Headers in Statistics Pages