Monday, April 20, 2020

Don't forget these options when installing VS Code!

By Steve Endow

While attending AJ Kauffmann's AL Development online training class last week, I noticed that he was able to right click on a folder or open directory in Windows Explorer and then select Open in Code, to quickly open the project in VS Code.

Windows File Explorer context menu

When I tried this on my development machine, I didn't have the "Open with Code" menu option.

After a quick search, it appears that you have to enable this context menu during the VS Code install.  There is apparently a way to add it via registry hack, but there is no simple way to enable this feature.  From the articles I've found, you can't enable the option from within VS Code, and on my machine, there was no "Change" option under Add/Remove Programs--only "Uninstall" was listed.

So, the easiest option for me was to uninstall and then reinstall.  Very lame, but not too difficult and it only took a few minutes.

Essential Options During Install

When you install VS Code, MAKE SURE to review these options and check the boxes. I would strongly recommend checking the three highlighted boxes.  If you do not enable these context menus, it's pretty tedious to open Business Central AL projects.

Steve Endow is a Microsoft MVP in Los Angeles.  He works with Dynamics 365 Business Central, Power Automate, Power Apps, Azure, Dynamics GP, SQL Server, and .NET

You can also find him on Twitter and YouTube

Thursday, April 16, 2020

Dramatically improve your webcam video quality with this one simple trick!

By Steve Endow

Sorry for the click bait title, but I've always found the psychology of those annoying headlines rather interesting.

But in this case, it's an honest title, because this is a single "simple trick" and it will dramatically improve your webcam video quality.

I present a before and after image:

Before and After

The image on the left is my webcam video with only the room lighting.  It looks terrible!

I have recessed lights in my home office, with the lights to the left and right of me.  Notice the dark shadows around my eyes and under my chin.  And notice the color--due to the white balance of the video and room lights, my skin looks very dark.

Monday, April 13, 2020

How long does it take to import Dynamics GP SOP Invoices with eConnect? eConnect SOP Performance Benchmarks

By Steve Endow

Today I was asked how long it should take to import a bunch of SOP Invoices into Dynamics GP, with each invoice having a bunch of lines.

I wrote a previous post with benchmarks for importing large GL Transactions.

I've also benchmarked GL AA Transactions.

And tested performance of different GL batch sizes.

Here are some sample numbers for importing SOP Invoices.  Import times will vary significantly based on your specific environment and several factors, but it's a baseline to consider.

Sunday, March 29, 2020

Learning Business Central Development From Scratch: FLF license files

By Steve Endow

As I mentioned in my prior post in this series, I'm starting from absolute scratch when it comes to learning Dynamics 365 Business Central development.  I'm clearly not an expert at this point, so if you find any information in the post that is inaccurate, please let me know.

I've spent months learning how to install and configure Business Central Docker containers, including the many, many quirks of that process.  I've been trying to create a blog post and video on that for months, but given all of the details I want to cover, it's very tedious to prepare and still not complete.

So in the meantime, I thought I would write about one specific detail that I learned while trying to setup a Business Central Docker container.  This post is one of those asides.

As a result of my "newness" (ignorance), I'm running into small issues that are probably obvious to any experienced NAV and Business Central developers, but cause me to stop what I'm doing and spend 15 minutes, 30 minutes, or perhaps several hours to figure out.

The Business Central FLF license file is one of those issues.  Coming from the Dynamics GP world, I know nothing about NAV or BC licenses or license files or how licensing works in BC, other than the user-based licensing for BC SaaS.

If you are going to be working with Business Central Docker containers and include automated testing (which you should!), I suspect you'll need to know about FLF license files.

NAV Container Helper - Include Test Toolkit

Above is a sample call to the NavContainer Helper PowerShell script.  Notice the parameter on the last line:  includeTestToolkit.

Saturday, January 25, 2020

Learning Dynamics 365 Business Central Development From Scratch: Introduction

By Steve Endow

If you've never done any NAV or Business Central development, but would like to, join me on this journey to learn how to develop in Dynamics 365 Business Central.

I've never used Dynamics NAV and don't even know what C/AL looks like.  I don't know what a "code unit" is.  Until a few months ago, I had never used Docker.  And although I've used Visual Studio for years, I don't really know how to use VS Code.  I know that Business Central uses a language called "AL", but I can't write a single line of AL.

Based on my experience so far trying to learn the Business Central application and Business Central AL development, I expect this will be a long journey for me.  Because I am still working mostly with Dynamics GP customers and projects in my day job, I have to learn Business Central in my "free time", so it isn't something I'll be able to pick up in just a few months.  A year ago, I gave myself 2 years to be "minimally competent" with the Business Central application and development.  Well, work gets busy and life gets busy, so I think I'm currently well behind on that 2 year timeline, and need to catch up.

Even though I have over 15 years of experience working with Dynamics GP and .NET and SQL Server, Business Central is a completely different world to me.  My fundamental knowledge of ERP software and software development is somewhat helpful as background, but it seems all of the specifics are completely different.  I want to learn Business Central and AL development and have the same comfort level that I have with Dynamics GP and .NET.  That will take time, and will require some pretty intensive learning.

So I'm starting from scratch.  Learning from scratch.  This is the start of that journey.

Wednesday, July 24, 2019

Dynamics GP: Does GL batch size affect posting performance? Yes, it does.

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).

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.

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...

Business Central Basic Docker Commands

By Steve Endow If you haven't used Docker before, and if you're not a PowerShell expert, welcome to the club. I am new to both, ...