End of Life for Microsoft Dynamics GP Announced

Microsoft Dynamics GPIn an announcement which cannot be a surprise to anyone, Microsoft have announced that Microsoft Dynamics GP is coming to the end of it’s life.

Today, we’re announcing we will end product support and updates for Dynamics GP on the 30th of September 2029 (with security patches ending on the 30th of April 2031). We want to take a moment to express our heartfelt gratitude to our loyal GP customers. Your trust and collaboration have been essential to building an incredibly strong GP community!…

I was a part of that community for nineteen years before I decided the writing on the wall was getting too large to ignore and made the switch across to Microsoft Dynamics 365 Business Central. That swith has seemed increasingly a good choice as I had come to expect an announcement like yesterdays.

The Dynamics GP roadmap has been updated to reflect this announcement:

Roadmap for Dynamics GP showing end of life and end of support

The Dynamics Communities site is hosting an interview with Microsoft’s Mike Morton, VP of Dynamics 365 BC and SMB, where he discusses the timeline for ending support for Dynamics GP.

Microsoft had already announced the end of Microsoft Dynamics GP On-Premises Licenses in 2025 and Subscription Licenses in 2026 which again was a huge red flag in terms of the future life of Dynamics GP; the new key dates to bear in mind for users of Dynamics GP is 30th September 2029 when there will be an end to produce support, product enhancements and regulatory updates and 30th April 2030 when there will the end of security updates.

What does this mean for users of Dynamics GP? Well, first thing is don’t panic!
Continue reading “End of Life for Microsoft Dynamics GP Announced”

Microsoft Dynamics GP vs. Microsoft Dynamics 365 Business Central

Microsoft Dynamics GPI worked with Microsoft Dynamics GP for just over 19 years before I decided that the writing on the wall had become too large to ignore. With the announcement of the new cloud ERPs by Microsoft a few years ago, it became apparent that the focus from Microsoft was on these ERP, rather than the old on premises ones.

Unfortunately, from a Dynamics GP perspective, the new ERP were based on Dynamics AX and Dynamics NAV, which became, respectively, Dynamics 365 Finance & Supply Chain Management and Business Central.

As I’d been working with Dynamics GP, a mid market ERP, it seemed a reasonable move to start working with Business Central, which is largely aimed at the same (size) market. When considering my options for a new role, I had looked at some of the non-Microsoft alternatives, but ended up going with Business Central as I am used to Microsoft technologies and my initial review had suggested that Business Central was quite similar to Dynamics GP.

Below is a table comparing Dynamics GP vs. Business Central covering a number of different areas:

  Dynamics GP Business Central
On-premises azuretick azuretick
Cloud cross azuretick
Scalable cross (requires additional resources added to server) azuretick (automatic based on usage)
Upgrades Annual releases manually applied Twice-yearly release waves automatically applied over 6 months
Microsoft Office 365 azuretick (basic integration) azuretick (seamless integration)
Financial Reporting Management Reporter and/or Jet Reports Financial Reporting (formerly called Account Schedules) and/or Jet Reports
Multi-dimensional analysis Analytical Accounting module needs to be installed and configured Standard with unlimited Dimensions
COA Structure Multi-segment G/L Accounts G/L Accounts with (unlimited) Dimensions
Purchase Order Matching Three way matching Three way matching
Warehouse Management cross (available as an add-on from 3rd parties) azuretick (standard functionality with bins, zones, picks, put-aways and more)
Audit Trails cross (available as an add-on from 3rd parties) azuretick
Search Feature cross (not in desktop client) azuretick
Easy Personalisation of Windows/Pages cross azuretick
Easy Analysis of Data cross azuretick (every list page has an analyze function)
Workflow Approvals azuretick azuretick (extendable with Power Automate)
CRM cross azuretick (lightweight CRM included as standard)
Power Automate cross azuretick
Power BI azuretick (OData Service needs to be implemented) azuretick
Easy Data Migration cross (limited with Integration Manager and only for 240 days without buying a licence) azuretick (standard via Configuration Packages from Excel spreadsheets
3rd Party Extensions azuretick azuretick
Customisation/Development azuretick (Dexterity scripting language in Dexterity editor) azuretick (AL language via standard tools like VS Code or Visual Studio)

After working with Business Central for the last two years, I think that all of the customers I worked with over the 19 years on Dynamics GP, would be able to transition to Business Central and be able to work more efficiently than they are currently able.

Why You Should Plan to Migrate from GP

Microsoft Dynamics GPWith the future of Microsoft Dynamics GP now being more limited than it was, with the announcement of the end of licence sales to new customers starting with perpetual licences in 2025 and subscription licences in 2026, conversation around projects to replace it with a new system are starting to intensify.

I started having these conversations with clients a few years ago while I was still working with Dynamics GP, with clients who had one eye on the future and had concerns about the longevity and product updates. Not all concerns were around Dynamics GP itself, but also the other Microsoft products surrounding it, like Windows Server, SQL Server and Office 365.

Even then we were seeing increasing issues with, especially Office, where the Office team would change something without, apparently the Dynamics GP team knowing the change was coming, so that important functionality, like the production of documents broke.

One example was Word template functionality which was broken in September 2020 and not fixed until the release of the next version in October which required the Dynamics GP to be upgraded (something which is not necessarily a small project for a company.

As time passes, unfortunately, I think that issues like this are going to continue to occur and with increasing frequency as Microsoft focus is on Dynamics 365 Business Central and Finance & Operations, rather than Dynamics GP and the level of investment in the latter will continue to reduce.

Now, this said, unlike some articles I have seen from other partners, I am not saying that it is urgent that you take immediate action. There is still a roadmap for Dynamics GP through 2028 (and contrary to some articles I’ve seen, no end of life of announcement has been made by Microsoft) and licences are still being sold to new clients (until 2026), although I’d be surprised if there are many buyers following the recent announcement.

However, the writing is on the wall in the longer term, which was what prompted my decision to switch to Microsoft Dynamics 365 Business Central in 2022 (although please note, I no longer work with the company I mention in that article; instead I now work for MADIC dynamics).

Alongside the end of licence sales, there a few other issues which I think will have an impact on companies continuing to use Dynamics GP.

Firstly, there is a reduced investment in developing new and enhanced functionality. This isn’t to say that there is none, but the improvements and additions will be relatively small and I’m sure will get smaller as time passes; instead Microsoft are making huge investments in new functionality for their other ERP offerings like Business Central.

Secondly, Dynamics GP is increasing expensive to maintain compared to cloud based ERP like Dynamics 365 Business Central; with Business Central you only need to pay your licence subscriptions for Business Central and Microsoft 365; with Dynamics GP, you need to pay your licence renewals, Windows and SQL Server licences and the electrical costs to run the servers (or hosting fees if they’re hosted in the cloud), the salaries or third party IT support costs to maintain the servers, as well as any Microsoft 365 subscription you have for email and Office and, also, in order to remain on a supported version, the consultancy fees for an annual upgrade of Dynamics GP.

Thirdly, integration with other popular Microsoft products like Office 365, Power BI (reporting and business intelligence) and Power Automate (automation of processes and integrations between systems), may be available with Dynamics GP. but only with an increasing umber of hoops to be jumped through; cloud ERP like Business Central are designed to work seamlessly with these other Microsoft products and sees improvements in every release wave.

Fourthly, on-premises ERP like Microsoft can be quite difficult, or at least technically involved, for remote workers to access; cloud ERPs like Business Central are available in any browser on any device. Some also have dedicated apps for Android and iOS.

Fifthly, products like Copilots are only being made available with the cloud ERP. These AI driven tools open the door for intelligent suggestions and predictive analytics which can improve operational efficiency.

Sixthly, cloud ERP like Business Central typically receive updates more frequently (Business Central has two release waves each year) which can be scheduled for automatic deployment; testing is available through easily created sandbox copies of production environments prior to being implemented on production. this reduces the effort required for upgrades which Dynamics GP can be quite involved and require a substantial amount of time from a consultant.

The Future of Microsoft Dynamics GP

Microsoft Dynamics GPI worked with Microsoft Dynamics GP for a long time, 19 years in fact, before I decided to make the switch to Microsoft Dynamics 365 Business Central.

The future of Dynamics GP has been a hot topic since 2008 and the ill-fated Project Green which was a project to look at the feasibility of merging the various Microsoft ERP into one product; despite this project completing fairly quickly with the conclusion that it wasn’t feasible, Project Green kept being mentioned for years afterwards by competitors as meaning the end of Dynamics GP.

Rumours have kept cropping up over the years, sometimes with no basis (such as in 2018 by a Dynamics NAV MVP who said GP had been put into maintenance mode), and sometimes by the words of senior people within Microsoft.

One of the most recent of these were from Mike Morton who, at the Summit NA 2022 conference in October said “There will be no more new releases, and no more new features, for Dynamics GP”. Well, as I’m sure you can imagine, this created quite a ruckus from the partners at the conference, leading to an emergency session between them and Microsoft and leading to a statement from Morton the next day to “clarify” his meaning.

Continue reading “The Future of Microsoft Dynamics GP”

Jet Reports with Microsoft Dynamics GP Book Available

Microsoft Dynamics GPI have a new book available now called Jet Reports with Microsoft Dynamics GP; this book is aimed at end-users or consultants looking to use Jet Reports with Microsoft Dynamics GP for financial and/or operational reporting.

The book covers the basics of installing and configuring Jet Reports as well as how to design and build reports using the Excel Add-in, before moving on to step-by-step guides on creating six different types of report and closing with a look at the report building tools and Jet Hub.

Jet Reports with Microsoft Dynamics GP by Ian Grieve

The book is available as an eBook direct from my azurecurve Publishing site or from Amazon (for $5 more):

If you buy this or any other ebook from me directly, the coupon code EASTER2024 will get you 20% off the price.

SQL Scripts for Microsoft Dynamics GP: Set Vendor On Hold When Created

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

This script sets the On Hold flag for a vendor as the record is created.

/*
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 TRIGGER dbo.utr_AZRCRV_NewCreditorInactivate ON dbo.PM00200 --PM Vendor Master File (PM00200) FOR INSERT AS UPDATE PM00200 SET HOLD = 1 WHERE VENDORID = (SELECT VENDORID FROM INSERTED) 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

SQL Scripts for Microsoft Dynamics GP: Set Vendor On Hold If EFT Details Changed

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

This script changes the On Hold flag on a vendor record if EFT details are added, updated or deleted.

/*
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 TRIGGER dbo.utr_AZRCRV_HoldonUpdateEFTDetails ON dbo.SY06000 --Address Electronic Funds Transfer Master (SY06000) FOR INSERT,UPDATE,DELETE AS UPDATE PM00200 SET HOLD = 1 WHERE PM00200.VENDORID = (SELECT VENDORID FROM DELETED) 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

SQL Scripts for Microsoft Dynamics GP: Activate Horizontal Scroll Bars for All Existing Users

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

This script will activate horizontal scroll bars for all existing users

/*
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). */
UPDATE ['Users Master'] Set HSCRLARW = 1 FROM SY01400 AS ['Users Master'] --Users Master (SY01400) WHERE HSCRLARW = 0

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

SQL Scripts for Microsoft Dynamics GP: Trigger to Activate Horizontal Scroll Bars for New Users

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

This script creates a trigger which activates horizontal scroll bars for new users as they are created.

/*
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 TRIGGER utr_AZRCRV_UpdateSY01400ActivateHorizontalScrollArrows ON SY01400 --Users Master (SY01400) AFTER INSERT AS UPDATE ['Users Master'] Set HSCRLARW = 1 FROM SY01400 AS ['Users Master'] INNER JOIN inserted AS INS ON INS.USERID = ['Users Master'].USERID 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

SQL Scripts for Microsoft Dynamics GP: Extract Payables Transactions from All Companies

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

This script was written for a client to extract Payables transactions from all companies tnto a temporary table; the script is run from the system database (typically called DYNAMICS) and selects all linked company databases.

The start and end years can be specified by the user in the highlighted variables.

/*
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 TABLE #SupplierExtract( INTERID CHAR(50) ,Company_Name CHAR(100) ,Vendor_ID CHAR(15) ,Vendor_Name CHAR(65) ,Document_Type CHAR(20) ,Document_Date datetime ,Voucher_Number CHAR(21) ,Document_Number CHAR(21) ,Document_Amount NUMERIC(19,5) ,Document_Net NUMERIC(19,5) ,Document_Tax NUMERIC(19,5) ,Payment_Voucher_Number CHAR(21) ,Payment_Doc_Number CHAR(21) ,Payment_Date datetime ,Apply_Date datetime ,Apply_Amount NUMERIC(19,5) ,Payment_Type CHAR(20) ) GO DECLARE @StartYear CHAR(4) = 2017 DECLARE @EndYear CHAR(4) = 2024 DECLARE @SQL NVARCHAR(MAX) SELECT @SQL = STUFF(( SELECT CHAR(13) +'select '''+INTERID+''' AS Database_Name, '''+CMPNYNAM+''' AS Division, P.VENDORID AS Vendor_ID, PM.VENDNAME AS Vendor_Name, case P.DOCTYPE when 1 then ''Invoice'' when 2 then ''Finance Charge'' when 3 then ''Misc Charge'' when 4 then ''Return'' when 5 then ''Credit Memo'' when 6 then ''Payment'' else '''' end AS Document_Type, P.DOCDATE AS Document_Date, P.VCHRNMBR AS Voucher_Number, P.DOCNUMBR AS Document_Number, P.DOCAMNT AS Document_Amount, P.PRCHAMNT AS Document_Net, P.TAXAMNT AS Document_Tax, coalesce(PA.VCHRNMBR,'''') AS Payment_Voucher_Number, coalesce(P2.DOCNUMBR,'''') AS Payment_Doc_Number, coalesce(P2.DOCDATE,''1/1/1900'') AS Payment_Date, coalesce(PA.DATE1,''1/1/1900'') AS Apply_Date, PA.APPLDAMT AS Apply_Amount, case PA.DOCTYPE when 1 then ''Invoice'' when 2 then ''Finance Charge'' when 3 then ''Misc Charge'' when 4 then ''Return'' when 5 then ''Credit Memo'' when 6 then ''Payment'' else '''' end AS Payment_Type from (select VENDORID, DOCTYPE, DOCDATE, VCHRNMBR, DOCNUMBR, DOCAMNT, PRCHAMNT, TAXAMNT, VOIDED from '+INTERID+'.dbo.PM30200 with (NoLock) union all select VENDORID, DOCTYPE, DOCDATE, VCHRNMBR, DOCNUMBR, DOCAMNT, PRCHAMNT, TAXAMNT, VOIDED from '+INTERID+'.dbo.PM20000 with (NoLock)) P left outer join (select VENDORID, APTVCHNM, APTODCTY, APFRDCNM, DOCTYPE, DOCDATE, APPLDAMT, VCHRNMBR, DATE1, GLPOSTDT, case POSTED when 0 then ''Unposted'' else ''Posted'' end POSTED from '+INTERID+'.dbo.PM10200 with (NoLock) UNION select VENDORID, APTVCHNM, APTODCTY, APFRDCNM, DOCTYPE, DOCDATE, APPLDAMT, VCHRNMBR, DATE1, GLPOSTDT, ''Posted'' AS POSTED from '+INTERID+'.dbo.PM30300 with (NoLock) UNION select VENDORID, VCHRNMBR AS APTVCHNM, DOCTYPE AS APTODCTY, APTODCNM AS APFRDCNM, APTODCTY AS DOCTYPE, APTODCDT AS DOCDATE, APPLDAMT, APTVCHNM AS VCHRNMBR, DATE1, GLPOSTDT, case POSTED when 0 then ''Unposted'' else ''Posted'' end POSTED from '+INTERID+'.dbo.PM10200 with (NoLock) union select VENDORID, VCHRNMBR AS APTVCHNM, DOCTYPE AS APTODCTY, APTODCNM AS APFRDCNM, APTODCTY AS DOCTYPE, APTODCDT AS DOCDATE, APPLDAMT, APTVCHNM AS VCHRNMBR, DATE1, GLPOSTDT, ''Posted'' AS POSTED from '+INTERID+'.dbo.PM30300 with (NoLock)) PA on P.VCHRNMBR = PA.APTVCHNM and P.VENDORID = PA.VENDORID and P.DOCTYPE = PA.APTODCTY left outer join (select VCHRNMBR, DOCTYPE, DOCNUMBR, DOCDATE from '+INTERID+'.dbo.PM20000 with (NoLock) union all select VCHRNMBR, DOCTYPE, DOCNUMBR, DOCDATE from '+INTERID+'.dbo.PM30200 with (NoLock)) P2 on P2.VCHRNMBR = PA.VCHRNMBR and P2.DOCTYPE = PA.DOCTYPE left outer join '+INTERID+'.dbo.PM00200 PM with (NoLock) on P.VENDORID = PM.VENDORID where P.DOCTYPE in (1,2,3,4,5,6) and P.VOIDED = 0 AND (P.DOCDATE BETWEEN '''+@StartYear+'/04/01'' AND '''+@EndYear+'/03/31'')' FROM SY01500 with (NoLock) WHERE CMPNYNAM NOT LIKE '%Test%' FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') INSERT INTO #SupplierExtract ( InterID, Company_Name, Vendor_ID, Vendor_Name, Document_Type, Document_Date, Voucher_Number, Document_Number, Document_Amount, Document_Net, Document_Tax, Payment_Voucher_Number, Payment_Doc_Number, Payment_Date, Apply_Date, Apply_Amount, Payment_Type) EXEC sys.sp_executesql @SQL GO SELECT * FROM #SupplierExtract GO DROP TABLE #SupplierExtract 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