Category: New Development Tool

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…

Business Central :Code Unit 1 Retired

 

15Though we are eagerly waiting for October 2018 Business central on-premise version and meanwhile we have news that Codeunit 1 (Application Management ) has been retired and new system events has been introduced in 2 billion range.

This has been refactor to cope up with new development environment .so  henceforth you will not find Codeunit 1 in object designer.

Whenever database is created these special codeunits will be created automatically. As well as they will not contain event instead of code.

Following functions become events

 

Codeunit 1 function name
New Object Type
New Object ID
New function name
CompanyOpen
Codeunit
40
CompanyOpen
GetSystemIndicator
Codeunit
40
GetSystemIndicator
CompanyClose
Codeunit
40
CompanyClose
FindPrinter
Codeunit
44
GetPrinterName
ApplicationVersion
Codeunit
9015
ApplicationVersion
CustomApplicationVersion
N/A
N/A
N/A
ReleaseVersion
Codeunit
9015
ReleaseVersion
ApplicationBuild
Codeunit
9015
ApplicationBuild
CustomApplicationBuild
N/A
N/A
N/A
ApplicationLanguage
Codeunit
43
ApplicationLanguage
DefaultRoleCenter
Codeunit
9170
DefaultRoleCenterID
MakeDateTimeText
Codeunit
41
MakeDateTimeText
GetSeparateDateTime
Codeunit
41
GetSeparateDateTime
MakeDateText
Codeunit
41
MakeDateText
MakeTimeText
Codeunit
41
MakeTimeText
MakeText
Codeunit
41
MakeText
MakeDateTimeFilter
Codeunit
41
MakeDateTimeFilter
MakeDateFilter
Codeunit
41
MakeDateFilter
MakeTextFilter
Codeunit
41
MakeTextFilter
MakeCodeFilter
Codeunit
41
MakeTextFilter
MakeTimeFilter
Codeunit
41
MakeTimeFilter
AutoFormatTranslate
Codeunit
45
AutoFormatTranslate
ReadRounding
Codeunit
45
ReadRounding
CaptionClassTranslate
Codeunit
42
CaptionClassTranslate
GetCueStyle
Codeunit
9701
GetCueStyle
SetGlobalLanguage
Codeunit
43
SetGlobalLanguage
ValidateApplicationlLanguage
Codeunit
43
ValidateApplicationLanguage
LookupApplicationlLanguage
Codeunit
43
LookupApplicationLanguage
GetGlobalTableTriggerMask
Codeunit
49
GetGlobalTableTriggerMask
OnGlobalInsert
Codeunit
49
OnGlobalInsert
OnGlobalModify
Codeunit
49
OnGlobalModify
OnGlobalDelete
Codeunit
49
OnGlobalDelete
OnGlobalRename
Codeunit
49
OnGlobalRename
GetDatabaseTableTriggerSetup
Codeunit
49
GetDatabaseTableTriggerSetup
OnDatabaseInsert
Codeunit
49
OnDatabaseInsert
OnDatabaseModify
Codeunit
49
OnDatabaseModify
OnDatabaseDelete
Codeunit
49
OnDatabaseDelete
OnDatabaseRename
Codeunit
49
OnDatabaseRename
OnDebuggerBreak
Codeunit
9500
ProcessOnDebuggerBreak
LaunchDebugger
Codeunit
9500
OpenDebugger
OpenSettings
Codeunit
9170
OpenSettings
OpenContactMSSales
Codeunit
50
OpenContactMSSales
InvokeExtensionInstallation
Codeunit
2501
InvokeExtensionInstallation
CustomizeChart
Codeunit
9180
CustomizeChart
HasCustomLayout
Codeunit
44
HasCustomLayout
MergeDocument
Codeunit
44
MergeDocument
ReportGetCustomRdlc
Codeunit
44
ReportGetCustomRdlc
ReportScheduler
Codeunit
44
ScheduleReport
OnBeforeOpenSettings
Codeunit
9170
OnBeforeOpenSettings
OnAfterGetApplicationVersion
Codeunit
9015
OnAfterGetApplicationVersion
OnBeforeCompanyOpen
Codeunit
40
OnBeforeCompanyOpen
OnAfterCompanyOpen
Codeunit
40
OnAfterCompanyOpen
OnRoleCenterOpen
Codeunit
9170
OnRoleCenterOpen
OnBeforeCompanyClose
Codeunit
40
OnBeforeCompanyClose
OnAfterCompanyClose
Codeunit
40
OnAfterCompanyClose
OnAfterGetSystemIndicator
Table
79
OnAfterGetSystemIndicator
OnAfterFindPrinter
Codeunit
44
OnAfterGetPrinterName
OnAfterGetDefaultRoleCenter
Codeunit
9170
OnAfterGetDefaultRoleCenter
OnAfterMakeDateText
N/A
N/A
N/A
OnAfterMakeTimeText
N/A
N/A
N/A
OnAfterMakeText
N/A
N/A
N/A
OnAfterMakeDateTimeFilter
Codeunit
41
OnAfterMakeDateTimeFilter
OnAfterMakeDateFilter
Codeunit
41
OnAfterMakeDateFilter
OnAfterMakeTextFilter
Codeunit
41
OnAfterMakeTextFilter
OnAfterMakeCodeFilter
N/A
N/A
N/A
OnAfterMakeTimeFilter
Codeunit
41
OnAfterMakeTimeFilter
OnAfterAutoFormatTranslate
Codeunit
45
OnAfterAutoFormatTranslate
OnAfterCaptionClassTranslate
Codeunit
42
OnAfterCaptionClassTranslate
OnAfterGetGlobalTableTriggerMask
Codeunit
49
OnAfterGetGlobalTableTriggerMask
OnAfterOnGlobalInsert
Codeunit
49
OnAfterOnGlobalInsert
OnAfterOnGlobalModify
Codeunit
49
OnAfterOnGlobalModify
OnAfterOnGlobalDelete
Codeunit
49
OnAfterOnGlobalDelete
OnAfterOnGlobalRename
Codeunit
49
OnAfterOnGlobalRename
OnAfterGetDatabaseTableTriggerSetup
Codeunit
49
OnAfterGetDatabaseTableTriggerSetup
OnAfterOnDatabaseInsert
Codeunit
49
OnAfterOnDatabaseInsert
OnAfterOnDatabaseModify
Codeunit
49
OnAfterOnDatabaseModify
OnAfterOnDatabaseDelete
Codeunit
49
OnAfterOnDatabaseDelete
OnAfterOnDatabaseRename
Codeunit
49
OnAfterOnDatabaseRename
OnAfterHasCustomLayout
Codeunit
44
OnAfterHasCustomLayout
OnAfterReportGetCustomRdlc
Table
9650
OnAfterReportGetCustomRdlc
OnBeforeOnDatabaseInsert
Codeunit
49
OnBeforeOnDatabaseInsert
OnBeforeOnDatabaseModify
Codeunit
49
OnBeforeOnDatabaseModify
OnBeforeOnDatabaseDelete
Codeunit
49
OnBeforeOnDatabaseDelete
OnBeforeOnDatabaseRename
Codeunit
49
OnBeforeOnDatabaseRename
OnEditInExcel
Codeunit
6710
OnEditInExcel
OnInstallAppPerDatabase
N/A
N/A
N/A
OnInstallAppPerCompany
N/A
N/A
N/A
OnCheckPreconditionsPerDatabase
Codeunit
9900
OnCheckPreconditionsPerDatabase
OnCheckPreconditionsPerCompany
Codeunit
9900
RaiseOnCheckPreconditionsPerCompany
OnUpgradePerDatabase
Codeunit
9900
OnUpgradePerDatabase
OnUpgradePerCompany
Codeunit
9900
OnUpgradePerCompany
OnValidateUpgradePerDatabase
Codeunit
9900
OnValidateUpgradePerDatabase
OnValidateUpgradePerCompany
Codeunit
9900
OnValidateUpgradePerCompany

Stay Tuned for more….

 

How to modify standard page layout using extension

15

In this blog we will see how we can modify  standard page by adding few fields and modify property of existing fields.

Adding customize fields in page layout 

For this I assume table extension is already created and now would like to add fields in page layout by creating page extension

In page layout for adding fields you can mention whether you want add fields before/after specified fields or addfirst/addlast in page.

In following example I am adding fields after field VAT Prod. Posting group

pay1

Once you press Shift+F5 then you can see result in page as follows.

pay2

Modifying existing  fields properties  in page layout 

One can modify properties of existing field using modify option in page extension

In this example changing visible property of one of the field in page as per below example

Original page display the field as below

pay3Now we would like to hide this field using visible property so in page extension you can write as below

pay4

Even you can add trigger and write you routine to execute.

Add Action in Page Layout

For adding action once can write following 

pay5

Here is the result in client.

pay6

Hope this help and stay tuned for more.

How to Protect IP Code in Business Central

15Now I know you already started developing app using VS Code and now questions is that how to protect app for viewing the code while debugging or downloading.

However extension development package provide setting for IP protection for viewing or downloading the code of extensions but you can also control by just adding one line code  in app.json file.

app.json file containing setting called showMyCode which controls whether it is possible to debug the code ,By default it is set to false which means debugging in extension code not allowed.

If you want to allow to show extension code then add the line as below in app.json file as by default this setting is not added in app.json file when it is created.

appjson

By adding this setting, you enable debugging into an extension to view the source code when that extension is set as a dependency.

Stay tuned for more.