Microsoft Dynamics NAV 2016, Microsoft Dynamics NAV 2017, and Microsoft Dynamics NAV 2018 are compatible with Microsoft Office 2019
MSDYN365BC - Futuristic CAL Development - What is allowed and What is Not?

As discussed in the Last article, in this post we will discuss with What we can and cannot do to think Futuristic development and then continue with our Customer Requirements.
If you are new to this series then Please Refer Table of Index.
We cannot Modify, Change, Delete & comment any standard part in any object, but we can add new in few base objects.
Read detailed of what limited modified we should do in Base Objects so that our code is Future Ready.
Adios a las trincheras de invierno...
How to fetch the top 5 Item’s history in a factbox in NAV?
From the Microsoft Dynamics 365 Business Central and NAV Blogs: Protection level; Tenant upgrade; Entities; Enable SSO
A selection of the latest insight from the Dynamics 365-NAV blogs
My Role as the Gatekeeper
How-to: Decompile your .app file
The other day we found out that some part of one of our extensions was not uploaded to our source code repository and no local version was available anymore. But we did have the .app file. I knew from extensions version 1.0 that the extension file, the .navx, was a zipped set of files. The x in .navx is pointing at this is with all office file extensions now a days. You might recall one of my old posts. As per this blog post, but then in reverse order, would I be able to unzip the .app file by changing the file extension to .zip? And subsequently use the Windows Extract All feature? Apparently not:
So, my lazy mind thought: it can't be done this way, and I asked on one of the fora I am whether there is another way of decompiling a .app file. Of course, on the Extension Management window there is the feature Download Source:
Indeed this gives you a nicely zipped file set:
But what if I really only have the .app file an nothing more? Bruno Leisibach and Peter Sørensen helped me out. Thanx, guys.
The .app file is indeed a zipped set of files. Whereas my simple trick did not work, just use a program like 7-zip and extract the files. Note however that the format of the files and the project structure is not exactly the same as when using Download Source. The app.json is now a NavxManifest,.xml (where do we know this from?).
Note
Download Source is somewhat differently implemented on NAV 2018 and Business Central:
- On NAV 2018 you can download the source if the extension has been installed on a specific tenant
- On Business Central it will only work when showMyCode is set to true in your extension and the extension has been built with target set to Internal.
DXC Technology to acquire service business of Scandinavian Microsoft Dynamics partner EG A / S
EG's service division to become part of DXC's Eclipse unit, adding 570 employees, 4,000 clients
Introducción al Spring Release’19 para Business Central
Customer story: Improved machine utilization by visual scheduling in NAV
The Swiss food supplements manufacturer, Nahrin AG, wanted to reduce the intermediate cleaning of the machines to a minimum. At the same time they need to react flexible to new orders and short delivery dates.
Read in this blog post how this worked out with the help of an individual extension of the Visual Production Scheduler.

MSDYN365BC - Futuristic CAL Development - Customize Base Code 1.

Hi Readers,
As discussed in the Last article, in this post we will continue with our Customer Requirements.
If you are new to this series then Please Refer Table of Index.
In this article, we will discuss about adding custom code in base objects and what is the Futuristic way of adding code. In your customer are Pre-2018 then you can use Hooks for those instances.
Dynamics 365 Business Central and direct printing
Using Payment Registration in Dynamics 365 Business Central
Update to OIOUBL in older Dynamics NAV versions
Power BI: E-Mail Subscription Time-Based Scheduling Now Available
Assembly vs. Production - An Overview
Build and Deploy an APP in NAV 2018 and in MSDYN365BC On-premise – Fast Checklist
Build and Deploy an APP in NAV 2018 and in MSDYN365BC On-premise – Fast Checklist
FAST CHECKLIST TO BUILD AND DEPLOY AN APP
Hi people, my book about NAV 2018 and Business Central On-premise https://www.packtpub.com/application-development/implementing-microsoft-dynamics-365-business-central-premise-fourth-edition is not a development book (there are others published and others are going out), it is a book on the implementation of NAV and Business Central; some people, however, asked me for a short checklist to be immediately operational on VS Code and AL (there are people who have not yet seen anything); I have therefore created a short checklist for those who want to start developing in a short time. Fast checklist designed for On-premises environments (NAV 2018 and BC) where Powershell can also be used. There are still many posts on other very interesting blogs (they are almost courses).
Fast Checklist: “Installation and configuration scenario for Dynamics NAV 2018 and Dynamics 365 Business Central On-premise”.
#1 Check Development Service Port, Endpoint Enables, Download of Symbols, Extensions Target Level
Check\ Activate the Development Service Port > example: Port 7859, Enable Development Service Endpoint = TRUE, Enable load application symbol reference at server restart = TRUE, Allowed ExtensionsTarget Level: EXTENSION (only extensions in this case, developments ready to SaaS!).
NOTES ABOUT “EXTENSIONS TARGET LEVEL”
When you develop an extension with Visual Studio Code and the AL language, in the app.json file you can specify the target level of your extension. The available options are as follows: Extension, Internal, Personalization, Solution.
In this scenario i want to talk only about two of them: extensions and Internal
- Extension: it’s the default level when you create an extension for Dynamics 365 Business Central. This is used for an extension that targets the online world (only FunctionVisibility = External, no DotNet variables, no Files Management but use Stream instead).
- Internal: This is the highest level and it targets the on-premise world (maximum visibility, full DotNet support, File Management, access to all Virtual Tables like Files etc.).
#2 Restart NAV 2018 Service, Automatic download of Symbols
Restart NAV 2018 Service, after restart, system automatically downloads symbols and makes them usable for AL development.
Or press Ctrl+Shift+P and select AL: Download symbols in VS Code
#3 Install VS Code (Visual Studio Code)
You can download\install VS Code from here: https://code.visualstudio.com/ Install is simple: Next, Next, Done.
#4 Launch VS Code, Install Microsoft AL Language extension for Dynamics NAV or Business Central On-Premise loading “.VSIX” file.
Click “Install from VSIX…”option, you can load .VSIX file from DVD (Dynamics NAV or Business Central On-premise.
Extensions > “Install from VSIX…”option.
In this case, “.VSIX” file load AL Extension Language for Business Central On-premise
Now, you need to configure these two files necessary to use correctly AL Extension Language in VS Code to develop, publish and install APPS.
- Launch.json
- App.json
#5 CONFIGURE THE “LAUNCH.JSON” FILE (INFO FOR APP DEVELOPMENT)
In this file you can configure:
- Server (ex: local or Cloud Sandbox for Business Central SaaS) with development port
- Instance
- Authentication Model
- ..and many other options…
#6 CONFIGURE “APP.JSON” (INFO FOR APP PUBBLICATION)
In this file you can configure:
- App Name
- Publisher Name
- Version, Privacy, logo, help, info for publication
- Application and Platform (useful for On-premise)
- Dependencies (if you need\have)
- Object range (ex: 50100 to 50149)
- .. other options
#7 – HOW TO EXPORT BASELINE FROM DYNAMICS NAV OR BUSINESS CENTRAL
FIRST: COMPILE ALL OBJECTS!
EXAMPLE: EXPORT A COMPLETE BASELINE (BUSINESS CENTRAL W1 – ALL BASELINE OBJECTS)
Command: “finsql.exe Command=ExportToNewSyntax”
Example: finsql.exe Command=ExportToNewSyntax, File=ALLSourceObj.txt, Database=”Demo Database NAV W1 (13-0)”, ServerName=mvpdockers\SQL2016EXP
SCENARIO EXAMPLE: EXPORT ALL OBJECTS “50000”
Tables
finsql.exe Command=ExportToNewSyntax, File=ALLtables50000.txt, Database=”Demo Database NAV W1 (13-0)”, ServerName=mvpdockers\SQL2016EXP,Filter=Type=table;ID=50000..50100
Pages
finsql.exe Command=ExportToNewSyntax, File=ALLpages50000.txt, Database=”Demo Database NAV W1 (13-0)”, ServerName=mvpdockers\SQL2016EXP,Filter=Type=page;ID=50000..50999
Reports
finsql.exe Command=ExportToNewSyntax, File=ALLreport50000.txt, Database=”Demo Database NAV W1 (13-0)”, ServerName=mvpdockers\SQL2016EXP,Filter=Type=report;ID=50000..50999
Codeunits
finsql.exe Command=ExportToNewSyntax, File=ALLcodeunits50000.txt, Database=”Demo Database NAV W1 (13-0)”, ServerName=mvpdockers\SQL2016EXP,Filter=Type=codeunit;ID=50000..50999
#8 – HOW TO CONVERT TXT TO AL: “TXT2AL.EXE”
“TXT2AL EXPORT.EXE” Converter convert C/AL Code to AL Language
EXAMPLE: txt2al.exe –source=”C:\ALFILES\SOURCES” –target=”C:\ALFILES\CONVERTED”
#9 – (RE)GENERATE SYMBOLS (IF YOU HAVE ERRORS) IN MANUAL WAY (FORCE)
finsql.exe Command=generatesymbolreference , Database=”Demo Database NAV W1 (13-0)”, ServerName=mvpdockers\SQL2016EXP
Or press Ctrl+Shift+P and select AL: Download symbols from VS Code
EXAMPLE
#10 – OPEN IN ONBJECTS IN VSCode + Microsoft AL Language
You can start using VS Code with this commands:
Ctrl+Shift+P Show All Commands in palette
Alt+A Alt+L AL Go! Command generate a HelloWorld Project
OR open Your Project…
Always check the Runtime!
#11 – PUBLISH AN APP
PUBLISH AN “.APP” (ex: a RDLC Report in this case)
PUBLISH “.APP”: To publish an app:
Publish-NAVApp –ServerInstance DynamicsNAV130IT –Path “C:\Users\vmadmin\Documents\AL\ReportSalesInvoiceWL\Roberto Stefanetti_ReportSalesInvoiceWL_1.0.0.1.app”-SkipVerification
OR from VS Code
F5 Publish
Ctrl+Shift+B Build Package (Compile and build the solution)
APP is now published but not installed
#12 – INSTALL AN APP
INSTALL “.APP”: To install an app:
Install-NAVApp –ServerInstance DynamicsNAV130IT –Name “ReportSalesInvoiceWL”
OR from VS Code
Ctrl+Shift+B Build Package (Compile and build the solution)
Ctrl+F5 Build and deploy
In this case the APP is successfully installed
OR you can install manually:
You can upload manually an APP in Dynamics NAV and in Microsoft Dynamics 365 Business Central using Upload “.APP” in Extension Management manually
EXTENSION IS INSTALLED
#13 – “HOW TO” UN-INSTALL AN APP
You can un-install an APP manually or from powershell
Powershell
Example: Get-NAVAppInfo -ServerInstance BC -Name ‘Proseware SmartApp’ -Version 2.3.4.500 | Uninstall-NAVApp -Tenant ‘Tenant1’ Gets the tenants where the specified NAV App is installed
Example: Uninstall-NAVApp -ServerInstance BC -Name ‘Proseware SmartApp’ -Version 2.3.4.500 -Tenant ‘Tenant1’ Remove the installed App.
Manually
#14 – “HOW TO” SIGNING AN APP (NECESSARY TO PUBLISH AN APP ON MICROSOFT APP STORE)
Follow this link: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-sign-extension
Graphical planning tools in Dynamics NAV and Business Central
“Standard Planning” in Dynamics NAV and in Business Central
The complete\detailed planning in Dynamics 365 Business Central (and in Dynamics NAV sure..) is done through the MPS\MRP planning which can be launched from the planning worksheet (you can find some posts on the planning parameters in this blog); However, it is also possible to use other tools that can be used for job planning or for lean production planning that do not require multi-level planning. The advantage of these tools is that they provide tree views and can be comfortable for top-level MPS planning.
#1 – MPS\MRP Running the “Planning Worksheet “
The terms “running the planning worksheet” or “running MRP” refer to the calculation of the master production schedule and material requirements based on actual and forecasted demand. The planning system can calculate either Master Planning Schedule (MPS) or Material Requirements Planning (MRP) on request, or it can calculate both at the same time.
- MPS is the calculation of a master production schedule based on actual demand and the production forecast. The MPS calculation is used for end items that have a forecast or a sales order line. These items are called MPS items and are identified dynamically when the calculation starts.
- MRP is the calculation of material requirements based on actual demand for components and the production forecast on the component level. MRP is calculated only for items that are not MPS items. The purpose of MRP is to provide time-phased formal plans, by item, to supply the appropriate item, at the appropriate time, in the appropriate location, in the appropriate quantity.
Planning Worksheet – Screen
About Planning https://docs.microsoft.com/en-us/dynamics365/business-central/production-about-planning-functionality
Production Planning https://docs.microsoft.com/en-us/dynamics365/business-central/production-planning
Run Full Planning (MPS+MRP) https://docs.microsoft.com/en-us/dynamics365/business-central/production-how-to-run-mps-and-mrp
Replan Prod Orders https://docs.microsoft.com/en-us/dynamics365/business-central/production-how-to-replan-refresh-production-orders
Useful “Integration Tools” for Planning
Summary some of these tools \ existing features (alternative and integrative planning)
As already mentioned above, the advantage of these tools is that they provide tree views and can be comfortable for top-level MPS planning; let’s see these tools in action.
#2 – Order Planning: Plan Order-by-Order
Order Planning Worksheet
This planning task can be performed in the Order Planning window, which displays all new demand along with availability information and suggestions for supply. It provides the visibility and tools needed to effectively plan demand from sales lines and component lines and then create different types of supply orders directly. You can enter the Order Planning window in two ways depending on your focus: From an order that you want to plan for specifically or in batch mode because you want to plan for all and any new demand.
You can choose: “All Demand” (to plan all existing demand) or select a “Sectional Demand”
- Production Demand
- Sales Demand
- Service Demand
- Job Demand
- Assembly Demand
Order Planning Worksheet – screen
Make Supply Orders
- Executing “Make Orders” you can create Orders for the selected rows or for the whole project
Make Supply Orders – Screen
Plan Order by Order https://docs.microsoft.com/en-us/dynamics-nav-app/production-how-to-plan-for-new-demand
#3 – Item Availability by BOM Level
Specifies availability figures for BOM items that indicate how many units of a parent you can make based on the availability of child items on underlying lines. Any item that has a BOM structure, such as an assembly BOM or production BOM, is shown in the window as a collapsible line. You can expand this line to see the underlying components and lower-level subassemblies with their own BOMs.
You can use the window to find out whether you can fulfill a sales order for an item on a specified date by looking at its current availability and the quantities that can be supplied by its components. You can also use the window to identify bottlenecks in related BOMs. On each line in the window for both parent items and child items, the following key fields specify the availability figures. You can use these figures to promise how many units of a parent you can supply if you start the related assembly or production process.
The Bottleneck field specifies which item in the BOM structure restricts you from making a larger quantity than the quantity that is shown in the Able to Make Top Item field. For example, the bottleneck item can be a purchased component with an expected receipt date that is too late to make additional units of the top item by the date in the Needed by Date field.
Item Availability by BOM Level – Screen
Inventory Overview https://docs.microsoft.com/en-us/dynamics-nav-app/inventory-how-availability-overview
#4 – Item Availability by Timeline
Provides a graphical view of an item’s projected inventory based on future supply and demand events, with or without planning suggestions. The result is a graphical representation of the inventory profile. On the Item Availability by Timeline page, you can modify certain supply orders and suggestions by dragging elements on the x-axis to change quantity or dragging elements on the y-axis to change due date.
On the Item Availability by Timeline page and the Planning Worksheet page you can make the following changes:
- Modify a suggested supply order that only exists as a planning line.
- Modify an existing supply order that the planning system suggests to change.
- Create a new suggested supply order and modify it.
Item Availability by Timeline – Screen
Modify Planning Suggestion in Graphical View https://docs.microsoft.com/en-us/dynamics365/business-central/production-how-to-modify-planning-suggestions-in-a-graphical-view
How to modify planning suggestions in a Graphical View https://docs.microsoft.com/en-us/previous-versions/dynamicsnav-2013/hh168196(v=nav.70)
#5 – Item Availability by Event
Shows how the inventory level of an item will develop over time according to supply and demand events. The window provides a condensed view that shows one line of accumulated information per time interval in which inventory figures change. Time intervals where no events occurred are not shown. You can expand each line to show details about the event or events that caused the accumulated quantity on the line.
You can view the information by different periods, and you can apply filters to include projected demand from forecasts and blanket orders and projected supply from uncommitted orders that are suggested in the planning worksheet.
Item Availability by Event https://docs.microsoft.com/en-us/previous-versions/dynamicsnav-2013r2/hh893228(v=nav.71)
Item Availability by Event – Screen
#6 – Demand Overview
Specifies an overview of demand planning with regard to jobs, service management, sales, and production. In the window, you can get an overview of the availability of spare parts or other items that you may require to fulfil a service order or to use in a job. For example, you can determine whether the item you need is in stock, and if it is not, you can determine when the item will be in stock.
In the General area of the window, you can specify what type of demand you require (like in Order Planning Page). This includes demand information from all order types. Use the Filter area to limit your results. For example, if you want to determine the availability of an item from only one location, you can specify that location, and on the Home tab, choose Calculate.
Demand Overview – Screen
#7 – Customize the “BOM Structure Explosion” page
You can customize the “graphical Item BOM structure explosion” feature adding some calculated fields, for example Inventory, Purchase order, Production Orders, Consumptions etc., you can simulate a simple “gross needs calculation” starting from this page (with a multi-level indented layout).
“BOM Structure Explosion” – screen
Have a great Planning!
Code Analysis Ruleset-Business Central
MSDYN365BC - Futuristic CAL Development - UnBoxing Integration Event.
Last article we subscribed an Integration Events. As promised in this post we will understand Integration Events in Base C/AL Code.
If you are new to this series then Please Refer Table of Index.
With this article, I will try to clarify all doubts and questions about Integration & Business Events.
This will help Developers to develop new Publisher if require or subscribing published Events. Let's discuss that in details.