Skip to main content

Posts

Showing posts with the label Debugging

Snapshot Debugging in Business Central

Introduction:   In this blog, I would like to discuss Snapshot Debugging in Business Central. Also, I will be sharing my views on where exactly is snapshot debugging useful and how to use it efficiently. Pre-requisites:  Basic understanding of Debugging Books & References:  Snapshot Debugging Demonstration:  You need to create a snapshot debugger then you will need to initialize the debugging session, record the snapshots and then run the debugging on the snapshot that is downloaded. Lets see each in detail below - 1. Setup the Snapshot Configuration: Once you create a Project, you can create a Snapshot configuration in launch.json file. {     "version" : "0.2.0" ,     "configurations" : [         {             "name" : "Sandbox" ,             "request" : "launch" ,             "type" : "al" ,             "environmentType" : "Sandbox" ,             "environmentName&quo

How SQL Profiler can save your day by Identifying Lengthy Processes in Microsoft Dynamics NAV / Business Central

Problem Statement: While building customization for Microsoft Dynamics NAV / Business Central ERP, at times the customization is so heavy that we as developers do not realize how much load we put on the SQL Database which the backbone of the system. One example of this situation is, I had built a system that can create a Cash Receipt during accepting Payment in terms of Cash from the Customer by temporary passing an entry through the Cash Receipt Journal. There was also a Payment Application code that applied(reconciled) the Payments and the Invoices of the Customer that ran posting of any financial entry concerning that specific Customer. During this attempt of creating Cash Receipt, the posting would block the Customer, Customer Ledger Entries and G/L Entries Tables which was as per design. And it wouldn't allow anyone to make an entry during this period and it would take approximately 20-30 seconds. To get out of the Deadlock, I was forced to restart the NAV Serv