Tuesday, December 18, 2018

ERROR : MSDYN365BC - Publish Extension Error - NetFx40_LegacySecurityPolicy is enabled and must be turned off.

How to publish App in Business Central without PowerShell ?

While publishing the app I was getting 2 issues :-

Issue 1 :

It was not getting updated and nothing was happening in Output Window. I had installed it via 

PowerShell and it was working for me fine. But there was a problem we need to install several 

versions of same APP. And it was a very lengthy process.

Issue 2 :

While publishing it was giving me error 

MSDYN365BC - Publish Extension Error - NetFx40_LegacySecurityPolicy is enabled and must be turned off.


Step 1 :

Go to this file in Service Folder as Shown in Screenshot. (Remember you need to run your system as administrator)

Step 2. Open File in Notepad and find Runtime and make the property to false as shown.

Step 3. Now Restart your NAV Service and Come to visual studio code in your project.
Press F5 or goto View -> Command Pallete -> AL:Publish
Your extension must be published.

If still its not publishing you can comment below.

Monday, December 10, 2018

What is the TempBlob table and why should we use it?

TempBlob  Record Table in Detail

To help you as a developer when writing code to manage import and export of files, you can use the table TempBlob (99008535).

The TempBlob table contains the following fields:

  • Primary Key (integer)
  • Blob (BLOB)

The TempBlob table contains the following functions:

  • WriteAsText
  • ReadAsText
  • ReadAsTextWithCRLFLineSeparator
  • StartReadingTextLines
  • StartWritingTextLines
  • MoreTextLines
  • ReadTextLine
  • WriteTextLine
  • ToBase64String
  • FromBase64String
  • GetHTMLImgSrc
  • GetImageType
  • GetXMLAsText

You should use this table as a temporary table, by setting the Temporary property on the record variable. This makes sure that changes made to the temporary table are not stored in the database. Examples of how to use the TempBlob table are available in codeunit 419 File Management.

Saturday, December 8, 2018

How to implement Event , Publisher and Subscription in AL Visual Studio Code for Business Central?

Dear Readers ,

Today I got one requirement for using Events , Subscription and Publishers in AL Development

environment. Lets start by creating a new Visual Studio Code.

Step 1. Open Visual Studio Code and create a new project and download symbols. To check this you

can go to my this blog. And follow till Step 8.

Step 2. Create a new file Validations.al and then create a Codeunit using snippet tcodeunit.

Step 3. Create a simple function Using a tprocedure

Step 4. And write a Simple code to find out + in Address field.

Step 5. Then type tEventSub for Event Subscriber structure of code and change the values for

customer table as shown in Screen shot.

Step 6. Publish your extension and install to check the Result Dynamics 365 Business Central.

Tuesday, December 4, 2018

How to : Create a Codeunit in AL Visual Studio?

How to create a Codeunit in AL Visual Studio?

How to define Triggers on page?

How to define Option String in AL Language?

How to publish my App in AL via Power Shell?

PS C:\WINDOWS\system32> Import-Module "${env:ProgramFiles}\Microsoft Dynamics 365 Business Central\130\Service\NavAdminTool.ps1"
PS C:\WINDOWS\system32> Publish-NAVApp -ServerInstance BC130 -Path 'C:\Users\BEG-ASSET-026\Documents\AL\ALProject4\Cronus International_Data Types_1.0.0.0.APP' -skipver

How to define List in AL using visual studio code?


The List data type can be compared with an array. The List can only be used with fundamental types and represents a strongly type list of values that can be accessed by index. So, you can have a List of [Integer], but you cannot have List of [Blob]. A List doesn’t require you to define upfront how many elements you would like to store. A List doesn’t support multi-dimensions as well. This List data type is using the System.Collections.Generic.List<T> Class from the .NET Framework, and this enables you to use some built-in methods.
Before we discuss the methods available on a List, let’s first see how to create a new variable of type List.
List Data Type
The data type List has some methods that are used a lot.

List Functions

When you work with the List data type, there are a number of functions you can apply on that data type. These functions can be used to add items to and remove items from a list, determine the length of the list, find a certain item in the list, etc.
  • ADD(X)
  • GET(index)
  • SET(index, X)
  • INSERT(index, X)
  • Remove(X)
  • RemoveAt(index)
  • Count
  • AddRange(X, [X], [X], …)
  • GetRange(index, count, List of [X])
  • RemoveRange(index, count)
  • IndexOf(X)
  • LastIndexOf(X)
  • Reverse

The ADD(X) function adds an item X to the end of the list.
The CONTAINS(X) function checks if an item X exists in the list. It returns a Boolean value, true if found, false if not found.
The GET(index) function gets an item from the list by a certain index and returns that item.
SET(index, X)
The SET(index, X) function updates an item in the list by a certain index. It sets the value X on the item at a certain index.
INSERT(index, X)
The INSERT(index, X) function inserts an item in the list, on a certain index. All the next items are moved one index further.
The REMOVE(X) function removes the first occurrence of an item in the list based on the value of X. This function returns a Boolean value.
The REMOVEAT(index) function removes the item on a certain index. This function returns a Boolean value.
The COUNT(index) function returns the number of items in a list.
ADDRANGE(X [,X] [,X] [, …])
The ADDRANGE(X) function adds multiple items to the list at the same time.
GETRANGE(index, count)
The GETRANGE(index, count) function retrieves a number of items (count), starting on a certain index. The result is a List of [X].
REMOVERANGE(index, count)
The REMOVERANGE(index, count) function removes a multiple items (count), starting on a certain index. This function returns a Boolean value.
The INDEXOF(X) function returns the index of the first occurrence of an item based on the value of X.
The LASTINDEXOF(X) function returns the last index of an item based on the value of X.
The REVERSE function reverses the order of the elements in the list.