Tag: Visual Studio Code

How to search Pages using Additional Search Terms in Business Central

All of you aware of ‘Tell Me‘ features of business central where you can search pages ,reports by key in name .

Today we will see how to search page apart from default page name .

To achieve this we need to add additional parameters in list pages as follows

Compile the object and search the page using additional terms in web client

Now from web client search the page using additional terms defined in list page

Hope this will help you

Stay tuned for more..

How to Create Unique Keys in AL Development/Business Central

Spring Release 2019 of business central comes up with new features for creating unique keys

Today we will see how to create unique keys in table

While creating second keys you can add an additional parameters said ‘Unique’. This will not allow duplicate values in the field where unique parameter is mentioned.

Now we will see this validation works on business central. Here we are trying put same description which is throwing error because of unique key.

You can define multiple unique keys in one table.

Points to Remember

  • Field can have empty value that means empty value is also value.
  • Not supported in table extensions.

Hope this will help you ..

How to Create Views in AL Development/Business Central

Now you all are aware the importance of creating views in windows client as it save the time of applying filters on the list of records. You can save the view with required filters and use it for future as it show the required data based on saved filters which improves productivity of users

Today we will see how we can create views in AL language.

Following examples illustrates how to create view from item list where inventory is greater than 10000.

In this example create new profile and added views in item list as below

Even you can apply more filters and order by also. As well as you can modify the page layout for the views as per your requirement

Publish the extension and open the business central web client .From setting change the profile and go to item List.

In the above picture you can see views has been added into the item list. Once you click on that view you can see the details as per define in views.

Following points need to remember.

  1. Can not use variables and methods .Can use only table fields
  2. Can not create new page controls from view.
  3. You can modify views from extension or customizations.

Hope you like this way of creating views in business central .Anyhow in upcoming versions there will option available on web client to create views as like windows client.

Cheers….

What’s new in the Spring 2019 release of Dynamics 365 Business Central?

With the release of spring version new features added/updated in Dynamics Business Central.

  • Application Enhancements
    • Longer name and descriptions across business central . It is increased from 50 characters to 100 characters.
    • Multiple Item selections for Sales & Purchase documents.
    • Merge Duplicate customers, Vendors and contacts.
    • Bulk Import of Item Pictures.
    • View Item ,customer and vendor descriptions in Ledger entries.
  • Save and Personalized List views
  • Focus mode on document pages.
  • AutoSave Indicator
  • Page Inspector.
  • Improvements in Scrolling lists.
  • Customize the theme
  • Application as an App
  • Force Sync when deploying applications
  • Multiple objects ID Ranges in app.json
  • Multiple unique keys
  • Increased Maximum length of texts and code fields, variables and text constants.
  • Event Runtime optimization :- It is now 1.5. to 2.5 times faster

Many more features are there in this new version.

Stay tuned for more.

How to Find Missing Prefix or Suffix -Business Central

As you all are aware the importance of having prefix and suffix in your app. In every extension you design need must have prefix or suffix on objects which include Table Extension, Page extension as well as control parts on pages. Benefits of this is that it will avoid collision of fields between two app which customer would like to install.

As a partner you need to register the prefix or suffix by sending email on d365val@microsoft.com. This will helpful when conflict arise so whosever registered will win.

Now when you convert the app from C/AL to AL then you need to huge task to us Prefix or Suffix in entire project.

To find all missing Prefix/Suffix you can enable AppSourceCoup which will help every time.

How to enable AppsourceCoup and complete ruleset You can visit https://amolsalvi.blog/2019/01/31/code-analysis-ruleset-business-central/

Apart from this you can create json file and mention the required prefix or suffix value as below

 {    "mandatoryPrefix": "ABCD"    } 

Hope this will help …


Code Analysis Ruleset-Business Central


A code analyzer is a library that builds on the compiler’s functionality to offer enhanced analysis of the syntax and semantics of your code at build time

CodeCop is an analyzer that enforces the official AL Coding Guidelines

PerTenantExtensionCop is an analyzer that enforces rules that must be respected by extensions meant to be installed for individual tenants

AppSourceCop is an analyzer that enforces rules that must be respected by extensions meant to be published to Microsoft AppSource

UserInterfaceCop is an analyzer that enforces rules that must be respected by extensions meant to be installed for individual tenants

To enable following rules we can use Code Analysis tools

Following are few rules for every code analysis tool .You can download from following file

Hope this will help you all..

Upcoming features for Business Central

Microsoft releases new release notes for business central .This illustrates planned features for business central.

Major features planned as below

  1. Work Date Indicator
  2. Quick Entry
  3. Autosave Indicator
  4. Page Inspection
  5. Application as an app

All these features are planned for April and September 2019

To find more information you can visit following link

https://docs.microsoft.com/en-us/business-applications-release-notes/April19/dynamics365-business-central/planned-features

Stay tuned for more…

NAV Tech Days Recorded Session

NAV TechDays is the name of a conference, organized by mibuso.com. This conference meant  technical only and highly relevant – sessions, related NAV and Business Central.

NAV TechDays is the place where some of the best developers and MVP’s exchange ideas and provides more insight of NAV world (oops Business Central)

Few of the session which I think more useful for everybody which listed here on my blog and you can visit them

Practical approaches for upgrading your NAV database and moving to extensions

The future for developers and consultants

Performance: Business Central reloaded for the Cloud

What’s new in Developing for Business Central

Evolution of a titan: a look at the development of NAV from an MVP angle

Business Central: The new face of the client

Crazy mix of integrations: Dynamics 365 Business Central and Azure services

Hope you guys will find it useful 

How to handle CodeUnit 1 Logic in Business Central upgrade

15

As you all are aware that Codeunit 1 (Application Management) has been removed and it is replace with new system codeunits. By moving this there is no functionality changes but this process will affect upgrade process for NAV.

All these functions has been changed  to different event including publishers and subscribers that means instead of calling Codeunit 1 functions business central will use system codeunits.

Following tables will illustrate mapping between codeunit 1 triggers and event publishers.

Codeunit 1 trigger
New Codeunit ID
New method
CompanyClose
LogInManagement
CompanyClose
CompanyOpen
LogInManagement
CompanyOpen
GetSystemIndicator
LogInManagement
GetSystemIndicator
OnAfterCompanyClose
LogInManagement
OnAfterCompanyClose
OnAfterCompanyOpen
LogInManagement
OnAfterCompanyOpen
OnBeforeCompanyClose
LogInManagement
OnBeforeCompanyClose
OnBeforeCompanyOpen
LogInManagement
OnBeforeCompanyOpen
FindPrinter
ReportManagement
GetPrinterName
ApplicationVersion
Application System Constants
ApplicationVersion
CustomApplicationVersion
N/A
N/A
ReleaseVersion
Application System Constants
ReleaseVersion
ApplicationBuild
Application System Constants
ApplicationBuild
CustomApplicationBuild
N/A
N/A
ApplicationLanguage
LanguageManagement
ApplicationLanguage
DefaultRoleCenter
Conf./Personalization Mgt.
DefaultRoleCenterID
MakeDateTimeText
TextManagement
MakeDateTimeText
GetSeparateDateTime
TextManagement
GetSeparateDateTime
MakeDateText
TextManagement
MakeDateText
MakeTimeText
TextManagement
MakeTimeText
MakeText
TextManagement
MakeText
MakeDateTimeFilter
TextManagement
MakeDateTimeFilter
MakeDateFilter
TextManagement
MakeDateFilter
MakeTextFilter
TextManagement
MakeTextFilter
MakeCodeFilter
TextManagement
MakeTextFilter
MakeTimeFilter
TextManagement
MakeTimeFilter
AutoFormatTranslate
AutoFormatManagement
AutoFormatTranslate
ReadRounding
AutoFormatManagement
ReadRounding
CaptionClassTranslate
CaptionManagement
CaptionClassTranslate
GetCueStyle
Cue Setup
GetCueStyle
SetGlobalLanguage
LanguageManagement
SetGlobalLanguage
ValidateApplicationlLanguage
LanguageManagement
ValidateApplicationLanguage
LookupApplicationlLanguage
LanguageManagement
LookupApplicationLanguage
GetGlobalTableTriggerMask
GlobalTriggerManagement
GetGlobalTableTriggerMask
OnGlobalInsert
GlobalTriggerManagement
OnGlobalInsert
OnGlobalModify
GlobalTriggerManagement
OnGlobalModify
OnGlobalDelete
GlobalTriggerManagement
OnGlobalDelete
OnGlobalRename
GlobalTriggerManagement
OnGlobalRename
GetDatabaseTableTriggerSetup
GlobalTriggerManagement
GetDatabaseTableTriggerSetup
OnDatabaseInsert
GlobalTriggerManagement
OnDatabaseInsert
OnDatabaseModify
GlobalTriggerManagement
OnDatabaseModify
OnDatabaseDelete
GlobalTriggerManagement
OnDatabaseDelete
OnDatabaseRename
GlobalTriggerManagement
OnDatabaseRename
OnDebuggerBreak
Debugger Management
ProcessOnDebuggerBreak
LaunchDebugger
Debugger Management
OpenDebugger
OpenSettings
Conf./Personalization Mgt.
OpenSettings
OpenContactMSSales
SaaS Log In Management
OpenContactMSSales
InvokeExtensionInstallation
ExtensionMarketplaceMgmt
InvokeExtensionInstallation
CustomizeChart
Generic Chart Mgt
CustomizeChart
HasCustomLayout
ReportManagement
HasCustomLayout
MergeDocument
ReportManagement
MergeDocument
ReportGetCustomRdlc
ReportManagement
ReportGetCustomRdlc
ReportScheduler
ReportManagement
ScheduleReport
OnBeforeOpenSettings
Conf./Personalization Mgt.
OnBeforeOpenSettings
OnAfterGetApplicationVersion
Application System Constants
OnAfterGetApplicationVersion
OnRoleCenterOpen
Conf./Personalization Mgt.
OnRoleCenterOpen
OnAfterGetSystemIndicator
Sales-Post and Send
OnAfterGetSystemIndicator
OnAfterFindPrinter
ReportManagement
OnAfterGetPrinterName
OnAfterGetDefaultRoleCenter
Conf./Personalization Mgt.
OnAfterGetDefaultRoleCenter
OnAfterMakeDateText
N/A
N/A
OnAfterMakeTimeText
N/A
N/A
OnAfterMakeText
N/A
N/A
OnAfterMakeDateTimeFilter
TextManagement
OnAfterMakeDateTimeFilter
OnAfterMakeDateFilter
TextManagement
OnAfterMakeDateFilter
OnAfterMakeTextFilter
TextManagement
OnAfterMakeTextFilter
OnAfterMakeCodeFilter
N/A
N/A
OnAfterMakeTimeFilter
TextManagement
OnAfterMakeTimeFilter
OnAfterAutoFormatTranslate
AutoFormatManagement
OnAfterAutoFormatTranslate
OnAfterCaptionClassTranslate
CaptionManagement
OnAfterCaptionClassTranslate
OnAfterGetGlobalTableTriggerMask
GlobalTriggerManagement
OnAfterGetGlobalTableTriggerMask
OnAfterOnGlobalInsert
GlobalTriggerManagement
OnAfterOnGlobalInsert
OnAfterOnGlobalModify
GlobalTriggerManagement
OnAfterOnGlobalModify
OnAfterOnGlobalDelete
GlobalTriggerManagement
OnAfterOnGlobalDelete
OnAfterOnGlobalRename
GlobalTriggerManagement
OnAfterOnGlobalRename
OnAfterGetDatabaseTableTriggerSetup
GlobalTriggerManagement
OnAfterGetDatabaseTableTriggerSetup
OnAfterOnDatabaseInsert
GlobalTriggerManagement
OnAfterOnDatabaseInsert
OnAfterOnDatabaseModify
GlobalTriggerManagement
OnAfterOnDatabaseModify
OnAfterOnDatabaseDelete
GlobalTriggerManagement
OnAfterOnDatabaseDelete
OnAfterOnDatabaseRename
GlobalTriggerManagement
OnAfterOnDatabaseRename
OnAfterHasCustomLayout
ReportManagement
OnAfterHasCustomLayout
OnAfterReportGetCustomRdlc
Edit MS Word Report Layout
OnAfterReportGetCustomRdlc
OnBeforeOnDatabaseInsert
GlobalTriggerManagement
OnBeforeOnDatabaseInsert
OnBeforeOnDatabaseModify
GlobalTriggerManagement
OnBeforeOnDatabaseModify
OnBeforeOnDatabaseDelete
GlobalTriggerManagement
OnBeforeOnDatabaseDelete
OnBeforeOnDatabaseRename
GlobalTriggerManagement
OnBeforeOnDatabaseRename
OnEditInExcel
ODataUtility
OnEditInExcel
OnInstallAppPerDatabase
N/A
N/A
OnInstallAppPerCompany
N/A
N/A
OnCheckPreconditionsPerDatabase
Data Upgrade Mgt.
OnCheckPreconditionsPerDatabase
OnCheckPreconditionsPerCompany
Data Upgrade Mgt.
RaiseOnCheckPreconditionsPerCompany
OnUpgradePerDatabase
Data Upgrade Mgt.
OnUpgradePerDatabase
OnUpgradePerCompany
Data Upgrade Mgt.
OnUpgradePerCompany
OnValidateUpgradePerDatabase
Data Upgrade Mgt.
OnValidateUpgradePerDatabase
OnValidateUpgradePerCompany
Data Upgrade Mgt.
OnValidateUpgradePerCompany

Hope this helps you

 

 

 

 

 

 

 

User and Workspace Settings in Visual Studio Code

I hope you already started working with Visual studio code.

In this section we will see how to do setting for User and workspace in Visual Studio code environment.

It is easy to configure visual studio code as per your likings using various settings. You can change VS code editor ,user interface and functioning by using this settings

There are three ways you can open user and workspace settings

  1. To access you can go to  Click on File–>Preferences–>Settings

User1user2

2) Using Command Palette(Ctrl+Shift+P)  by typing

Preferences: Open User Settings  or Preferences : Open Workspace Settings

user3

3) Use keyboard shortcut (Ctrl+,)

This provides two different settings

  • User Settings – Settings that apply globally to any instance of VS Code you open.
  • Workspace Settings – Settings stored inside your workspace and only apply when the workspace is opened.

Workspace settings override user settings.

How to create user settings 

Once you open settings then you can modify settings as below

Example. If I want to change font size in editor then I can do it from here

 

Change the font size and see the effect on editor.

user6

It shows the effect immediately after saving the file.

Same kind of settings you can do it for AL language extension management

user7These changes get saved in %APPDATA%\Code\User\settings.json

Hope this will help you while extension development

Stay tuned for more…

Cheers…