How to record Events in Business Central

I know you all started working with AL development and extension. As you are converting your product or customization every time need to deal with base application code as during C/AL days you already added business logic in required codeunits,tables,pages etc.

Now when you are dealing with extension you need to move your customization to AL development using events subscription. It is always painful to find events associate with every business process and need to search right event to write customization did.

In business central there is feature available to see which events are executed during process you ran and one can record this events using event recorder .These events are not stored like permission set .This will disappear once you close the page.

We will see how we can use this . For recording you need to have two browser open in which one will do recording and other will execute business process.

  1. Search for Event recorder.

SearchEventR

2. Click On Event recorder which will show as below

EventScreen

3. Click on Record Events–> Start

EventStart

Go to another browser and start executing the required process . In this example I am creating one purchase order

PurchaseOrder

Now go back first browser and click on record Events–>Stop

StopEvents

Once you click ‘Yes’ then it will display all events executed during purchase order creation.

EventRecorded

Go to the last columns i.e. Get AL Snippets where you will get AL code for the events

Snippets

This will really helpful while moving your program to AL from C/AL

Too Cool.

Stay tuned for more updates.

 

 

Advertisements

Business Central :Web Client Improvement

Really amazed by looking at web client of Business central and found one of the great change which was really required by my customer as it not look good when page get opens

And I am talking about the action functions available on subpage.

Till NAV 2018 it is showing directly on ribbon which is not looking good and if you have more subpages then it looks more weird.

 

NAV2018

Now if you see business central web client it will show in subpage and it exactly show where it should be with nice options.

B365

There are so many things which changed like you can go previous and next transaction from same page .no need to close page and open another transactions for view/modify..

Kudos to MS team for this change.

Will come up with more .Stay tuned .

 

How to Include Permission Set in Business Central Extension

15

So everybody aware that including permission set in app development is mandatory ,By using this permission one can use designated app.

Today we will see how we can create permission set and include in your extension.

Go to Role tailored client and create new permission set.(This can done by either manually or by recording permission

I created simple permission set as below

cronusper

Once permission set is create then you need to export this to .xml file which can be used to create permission set in Business central via extension.

For exporting newly created permission set I used PowerShell command as below.

Import-Module ‘C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\Microsoft.Dynamics.Nav.Apps.Tools.psD1’
Export-NAVAppPermissionSet -Path C:\SourceFolder\demopermissions.xml -PermissionSetId DEMOSET -ServerInstance DynamicsNAV110 -Force -PassThru

Above command will create .xml file in designated folder.

Now copy this file and paste it in you app folder where all extensions file are stored

After copy this file publish the app and check in permission set of business central. One can see newly created permission set added.

demoset

How cool and simple is this…

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

 

What’s New in Business Central October 18 release

15

Everybody is aware that Business central was live in month of April 2018 and now Microsoft is geared up for October 2018 release which will available in cloud, on-premises and in hybrid deployments. This version will come up with new and rich features which will make business users to interact more efficiently with product and get rid of day to day processes.

Roadmap for business central

roadmap

New features in business central

Refreshed desktop experience :- With a fresh new look it is easier to use business central .It is focused on layout of data, better data visibility ,new look and feel refreshpage

Improved productivity on lists :- Available the features like show/hide more columns, freeze pane, limit totals, row based copy paste. All the lists in the product feature now a new, refreshed layout with more flexible grid customization,
tile view available everywhere and with quick access to search and view. This allows users to get better and faster access to the data whenever it is needed.

 list

List Lookup Improved Search :- Get your data faster with improved search for pages,reports . The Search field replaces the Search for Page or Report field. You can use it to find objects such as pages and reports, but also to find actions and product documentation.

search

Advance Filtering :-The powerful filtering capabilities in Business Central accelerate list-related tasks by providing absolute control over filtering in a modern and intuitive experience.

search1

The filter pane allows you to:
• Get an overview of the currently applied filters, and see if they were set by you, by a filtered view, or by the application itself.
• Add as many filtered columns as you like by typing to quickly search for more fields on the source table.
• Get assistance with specifying filter values using lookups or the field’s data type.
• Create complex filters using operators, ranges, variables, and shorthand.
• Filter to the current cell value in the list.

Limit Totals:- Most popular and useful features of NAV makes entry in Business central

Copy and Paste :-This enables you to
• Copy one or more rows in a list and paste them to the same (or similar) list.
• Copy one or more rows and paste them into Microsoft Excel, including the column captions.
Not using Excel? Most applications such as Microsoft Outlook allow pasting tabular content
where the column captions will be displayed.
• Copy one or more rows from Excel and paste them into  Business Central.

Enhanced Power BI embed experience :- Enhancements to the current Power BI embed experience include an automatic deployment of Power BI reports, default report selection, and the ability to manage their Power BI reports without ever requiring them to leave Business Central.

Permission sets are editable :- End users can customize the permission sets and give them a structure that meets the specific needs of their business.

Intelligent edge :-Connect your on-premises Dynamics SMB solution to the intelligent cloud through Dynamics 365 Business Central, and get access to Power BI, Microsoft Flow, PowerApps, machine learning, and others.

edge

and many more new features has been added in this release such as enhancement in AL development which will share in next blog.

Stay tuned for more updates…

 

Source :- Business release notes

 

 

 

 

 

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.