By Steve Endow
If you need to post 50,000 journal entries in Dynamics GP, should you create one batch with 50,000 JEs? Or should you create 5,000 batches with 10 JEs each?
If you have the option to import 10,000 JEs with 2 lines each, or a single JE with 20,000 lines, which should you choose?
These are the exciting questions that I ask myself on a regular basis.
I imported a truckload of standard GL journal entries into Dynamics GP to test performance and record some posting benchmarks to understand how GL batch size and JE size affects Dynamics GP GL posting performance.
I was surprised at the results.
Note: My tests were performed on the TWO / Fabrikam sample database. In theory, tests on TWO should be reasonably valid and should extrapolate to larger production databases. But in reality, there could be production databases that exhibit very different behavior than what I found with TWO. For example, any customizations, triggers, or third party products could dramatically change the results.
If you just want the results, here's the TL;DR: GL batches with more JEs posted at a rate that was 2-3 times faster than batches with fewer JEs. And journal entries with more lines also posted at a rate that was up to 50% faster than JEs with fewer lines (up to 300 lines per JE).
Steve Endow is a Microsoft MVP who works with Microsoft Dynamics 365 Business Central, Azure, .NET, SQL Server, and Power Platform
Dynamics 365 BC Resources List:
steveendow.link/bcresources
OR: bit.ly/bcresources
Wednesday, July 24, 2019
Wednesday, July 10, 2019
C# and SQL and Dynamics GP: Sending a List to a Stored Procedure
By Steve Endow
This is a discussion of how to send a list of values to a SQL stored procedure parameter.
Specifically, how can a .NET application send a comma delimited list of values to a stored procedure to be used in an "IN" operator in a WHERE clause.
TL;DR: If you want to jump straight to the solution, read this excellent post on Arrays and Lists in SQL Server by legendary SQL Server MVP Erland Sommarskog.
If you crave to learn about all of the exciting details, read on...
This is a discussion of how to send a list of values to a SQL stored procedure parameter.
Specifically, how can a .NET application send a comma delimited list of values to a stored procedure to be used in an "IN" operator in a WHERE clause.
Using a parameter with a WHERE clause IN operator |
TL;DR: If you want to jump straight to the solution, read this excellent post on Arrays and Lists in SQL Server by legendary SQL Server MVP Erland Sommarskog.
If you crave to learn about all of the exciting details, read on...
Friday, May 31, 2019
Business Central: Change Log feature
By Steve Endow
Let's talk about the Business Central Change Log feature!
The Back Story
While poking around Dynamics 365 Business Central recently, I discovered that you can very easily change the main ID, or Number, of master records.
I can just open the Customer Card page, select a customer, type a different value in the Customer No. field, and just like that, Business Central will update (what appears to be) the primary key for the customer and all related records. Whoa.
The same trick works for Vendors, Inventory Items, and even GL Accounts! Just open the card page and change the Number field. No biggie. Apparently.
Coming from the Dynamics GP world, this is wild.
Let's talk about the Business Central Change Log feature!
Just Search for Change Log |
The Back Story
While poking around Dynamics 365 Business Central recently, I discovered that you can very easily change the main ID, or Number, of master records.
I can just open the Customer Card page, select a customer, type a different value in the Customer No. field, and just like that, Business Central will update (what appears to be) the primary key for the customer and all related records. Whoa.
The same trick works for Vendors, Inventory Items, and even GL Accounts! Just open the card page and change the Number field. No biggie. Apparently.
Coming from the Dynamics GP world, this is wild.
Thursday, May 30, 2019
How should phone numbers be entered or formatted in ERP and CRM systems?
By Steve Endow
While reviewing the Dynamics 365 Business Central Customer record, I noticed that Business Central allows numbers and symbols, but does not allow any letters in the Phone number field.
This got me thinking... (ya, I know, dangerous things happen when I think...)
1. How should phone numbers be entered in ERP and CRM systems?
2. How should a system support global phone number formatting?
3. How should a system support phone number extension prefixes (e.g. "x") or notes?
4. How should a system format phone numbers to help support VoIP dialing?
Below are some examples of a few systems to which I have access, and I show how phone numbers can be entered into those systems.
While reviewing how these systems handle phone numbers, I was thinking about my questions above. I additionally wondered:
What should the minimum length be for phone number fields? How should users enter phone numbers with extensions? Should you allow letters in a phone number field? Should users be able to enter brief notes, like in my examples below?
Initially, I would have thought that restrictions on the phone number values and formats are not required, and users should be able to enter whatever they want / need. However, if you consider the potential need for VoIP dialing, free form text phone numbers might complicate things.
While reviewing the Dynamics 365 Business Central Customer record, I noticed that Business Central allows numbers and symbols, but does not allow any letters in the Phone number field.
This got me thinking... (ya, I know, dangerous things happen when I think...)
1. How should phone numbers be entered in ERP and CRM systems?
2. How should a system support global phone number formatting?
3. How should a system support phone number extension prefixes (e.g. "x") or notes?
4. How should a system format phone numbers to help support VoIP dialing?
Below are some examples of a few systems to which I have access, and I show how phone numbers can be entered into those systems.
While reviewing how these systems handle phone numbers, I was thinking about my questions above. I additionally wondered:
What should the minimum length be for phone number fields? How should users enter phone numbers with extensions? Should you allow letters in a phone number field? Should users be able to enter brief notes, like in my examples below?
Initially, I would have thought that restrictions on the phone number values and formats are not required, and users should be able to enter whatever they want / need. However, if you consider the potential need for VoIP dialing, free form text phone numbers might complicate things.
Wednesday, May 29, 2019
Dynamics 365 Business Central vs. Dynamics GP: Customer Record
By Steve Endow
This is the third post in a series comparing Dynamics 365 Business Central and Dynamics GP, and follows on the post Dynamics 365 Business Central vs. Dynamics GP: Customer Navigation.
In this post, I am going to compare the Customer records of both Business Central and Dynamics GP.
There are hundreds of details of Customer records that can be analyzed, but I'm going to discuss a handful of the things I happened to observe as a long time user of Dynamics GP, but a brand new user of Business Central.
Dynamics GP
I've spent so much time in the Dynamics GP Customer Maintenance window that I no longer notice the details. As a result, I'm going to have to review it more carefully to try and point out some details that make it unique, along with a few quirks.
This is the third post in a series comparing Dynamics 365 Business Central and Dynamics GP, and follows on the post Dynamics 365 Business Central vs. Dynamics GP: Customer Navigation.
In this post, I am going to compare the Customer records of both Business Central and Dynamics GP.
There are hundreds of details of Customer records that can be analyzed, but I'm going to discuss a handful of the things I happened to observe as a long time user of Dynamics GP, but a brand new user of Business Central.
Dynamics GP
I've spent so much time in the Dynamics GP Customer Maintenance window that I no longer notice the details. As a result, I'm going to have to review it more carefully to try and point out some details that make it unique, along with a few quirks.
Monday, May 20, 2019
Dynamics GP: User ID value is not consistently recorded when new batch is created
By Steve Endow
I received a request today asking if it is possible to enforce a rule in GP so that the user who creates a batch cannot approve that batch.
I initially thought that this would be an easy thing to enforce using a few lines of VBA. But then I took a look at the fields for the Batch record in the SY00500 table, and saw something odd.
When I created several different batches in Dynamics GP 2018, the USERID field was not reliably populated in the SY00500 batch table.
This seemed odd. Why would the USERID value be inserted for GL and SOP batches, but not IV and PM?
As far as I can tell, the issue is not a technical limitation, as the Batch Entry windows appear to all call the same stored procedure: zDP_SY00500SI. It appears that the developers were simply lazy and either didn't bother to retrieve the current user ID, or didn't bother to pass the value to the stored procedure?
Very odd.
In theory, you could write SQL triggers to fix this, but ensuring that SQL triggers are reliable and don't interfere with any other Dynamics GP processes is often more difficult that you would expect.
So this simple request to try and improve the Dynamics GP batch approval process appears to be much more involved than I would have hoped.
Update: Mariano replied to me on Twitter, noting that the User ID field is not really intended to be used to identify the user who created a batch--it's used as part of the posting process.
So it seems the User ID field is not a viable option for determining who created a batch.
I received a request today asking if it is possible to enforce a rule in GP so that the user who creates a batch cannot approve that batch.
I initially thought that this would be an easy thing to enforce using a few lines of VBA. But then I took a look at the fields for the Batch record in the SY00500 table, and saw something odd.
When I created several different batches in Dynamics GP 2018, the USERID field was not reliably populated in the SY00500 batch table.
User ID is not consistently populated in SY00500 |
This seemed odd. Why would the USERID value be inserted for GL and SOP batches, but not IV and PM?
As far as I can tell, the issue is not a technical limitation, as the Batch Entry windows appear to all call the same stored procedure: zDP_SY00500SI. It appears that the developers were simply lazy and either didn't bother to retrieve the current user ID, or didn't bother to pass the value to the stored procedure?
User ID not supplied when the IV Batch Entry window calls zDP_SY00500SI |
Very odd.
In theory, you could write SQL triggers to fix this, but ensuring that SQL triggers are reliable and don't interfere with any other Dynamics GP processes is often more difficult that you would expect.
So this simple request to try and improve the Dynamics GP batch approval process appears to be much more involved than I would have hoped.
Update: Mariano replied to me on Twitter, noting that the User ID field is not really intended to be used to identify the user who created a batch--it's used as part of the posting process.
So it seems the User ID field is not a viable option for determining who created a batch.
Steve Endow is a Microsoft MVP in
Los Angeles. He works with Dynamics GP, Dynamics 365 Business Central, SQL
Server, .NET, Microsoft Flow, and PowerApps.
Monday, April 22, 2019
Dynamics 365 Business Central vs. Dynamics GP: The Home Page
By Steve Endow
First post in this series: Dynamics 365 Business Central vs. Dynamics GP: Customer Navigation
This post continues my Dynamics 365 Business Central vs. Dynamics GP series, and compares the "Home Pages" of both applications. If I would have thought of it at the time, I would have made this the first post in the series, but discussing the Home Page didn't occur to me until after my first post.
After I wrote my post about Customer Navigation, I kept wondering why Dynamics 365 Business Central looks and feels so different than Dynamics GP. After I wrote the post, I realized that the Customer Navigation in Business Central is pretty simple and pretty obvious. So why do I feel so disoriented when I login to Business Central?
After actually staring at the Business Central Home Page for a while, I realized that the Home Page probably has something to do with my disorientation. The Dynamics 365 Business Central Home Page is a very different experience for a long time Dynamics GP user. As someone who has seen the Dynamics GP application daily for the last 15 years, the Business Central Home Page is actually visually disorienting for me. When it appears, I literally don't know where to look or what to do.
In this post, I compare the Dynamics GP Home Page to the Business Central Home Page and share my opinions as a brand new Business Central user.
First post in this series: Dynamics 365 Business Central vs. Dynamics GP: Customer Navigation
This post continues my Dynamics 365 Business Central vs. Dynamics GP series, and compares the "Home Pages" of both applications. If I would have thought of it at the time, I would have made this the first post in the series, but discussing the Home Page didn't occur to me until after my first post.
After I wrote my post about Customer Navigation, I kept wondering why Dynamics 365 Business Central looks and feels so different than Dynamics GP. After I wrote the post, I realized that the Customer Navigation in Business Central is pretty simple and pretty obvious. So why do I feel so disoriented when I login to Business Central?
After actually staring at the Business Central Home Page for a while, I realized that the Home Page probably has something to do with my disorientation. The Dynamics 365 Business Central Home Page is a very different experience for a long time Dynamics GP user. As someone who has seen the Dynamics GP application daily for the last 15 years, the Business Central Home Page is actually visually disorienting for me. When it appears, I literally don't know where to look or what to do.
In this post, I compare the Dynamics GP Home Page to the Business Central Home Page and share my opinions as a brand new Business Central user.
Subscribe to:
Posts (Atom)
How many digits can a Business Central Amount field actually support?
by Steve Endow (If anyone has a technical explanation for the discrepancy between the Docs and the BC behavior, let me know!) On Sunday nig...
-
By Steve Endow In June 2021, I discussed my circuitous journey to learn about and understand the $metadata and $expand OData "query o...
-
by Steve Endow Note: In case the title didn't make it obvious, this post has nothing to do with Business Central. I wanted to document...
-
By Steve Endow Last updated July 10, 2023 (272 resources) There is so much information being published about Dynamics 365 Business C...