Friday, 13 March 2020

Socket Programming in Navision and Business Central On-Premises

Hello Everyone,

In this article, we would discuss about Socket Programming.

Socket programming is a way of connecting two nodes on a network to communicate with each other. 

A Socket is an End-Point of To and From (Bidirectional) communication link between two programs (Server Program and Client Program ) running on the same network.

A Server Socket Program running on a computer has a socket that bound to a Port Number on the same computer and listening to the client's incoming requests.

A Client Socket Program have to know the IP Address (Hostname) of the computer that the C# Server Socket Program resides and the Port Number assign for listening for client's request .

Communication protocol used for Socket Programming is TCP/IP ( Transmission Control Protocol/Internet protocol).

Code:

I have created a dll for the same which takes Input as IpAddress, PortNumber and Input Message and returns Response Message.

Variable Declaration:


Navision Code:


.Net dll Code:


Code Download Link: Socket Programming


That's it !!!

I hope this would help you a lot. Please also let me know your views.

Your valuable comments and feedback are appreciated.

Wednesday, 3 July 2019

Migrate Data from Business Central On Premises to Business Central On Cloud with Extensions

Hello Everyone,

In this article, we would discuss about migrating data from Business Central On Premises to Business Central On Cloud using Intelligent Cloud with Extensions.

Reference Link: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/about-intelligent-edge

Important Notes:

1) Before setting up the connection to the intelligent cloud, ensure that at least one user in the system that has SUPER permissions. This is the only user that will be allowed to make changes in the Business Central tenant.

2) The amount of data that can be replicated for any tenant is limited to 150 GB. If your database is larger than 150 GB, try reducing the number of companies you are replicating data for. (Current Limitation)


3) SQL Business Central On Premises Database Compatibility Level: 130

Step by Step Instructions:

1 - Business Central On Cloud - Assisted Setup





2 – Setup Intelligent Cloud




3 – Intelligent Cloud Setup



4 – Replicate Data From Business Central


5 – SQL Database Connection


Server={SQL Server Name};Database={Database Name};User Id={SQL Server Authenticated UserName};Password={SQL Server Authenticated Password};

Server=SERVER01\SQLSERVER2016;Database=Base DB BC Spring 2019 Build 29530 Cloud;User Id=sa;Password=xxxx;



6 – Self Hosted Integration Run-time

Copy the Authentication Key in Notepad as it would be used in later steps. Download and install Self Hosted Integration Run-time from link in the screenshot. Complete Steps 7, 8, 9 and 10 before clicking Next in Step 6. After clicking Next in Step 6 Go-to Step 11.



7 – Install Microsoft Integration Run-time



8 – Authentication Key - Register

Copy and Paste the Authentication key that was saved in Step 6.



9 – Integration Run-time Registered Successfully



10 – Integration Run-time Configuration Manager



11 – Replicate Companies from Business Central On Premises



12 – Schedule Replication



13 – Intelligent Cloud Setup Completed



14 – Setup Intelligent Cloud Completed



15 – Replication Initialization Completed



16 – Company CRONUS Canada, Inc. – Created Successfully – On Cloud



17 – Intelligent Cloud Management – Run Replication Now

This process would replicate data from Business Central On Premises to Business Central On Cloud.



18 – Replication Triggered Successfully



19 – Replication Results



20 – Replication Statistics



21 – Replication Status Information

Data Replicated Successfully.



22 – Extension – Business Central On Premises - Item Table

Now we have created a simple Extension extending Item Table and created a new Custom Table in On Premises Environment. We have also inserted sample data for same in On Premises Environment.



23 – Extension – Business Central On Premises – Custom - Intelligent Cloud Table



24 – Extension – Business Central – On Cloud

We have installed the same Extension created above in Business Central On Cloud Environment.



25 – Run Replication – On Cloud

Now as same Extension is installed in Business Central On Premises and Business Central On Cloud, this process would replicate data for same.



26 – Replication Completed Successfully



27 – Data – Item Table – Business Central On Cloud



28 – Data – Custom Intelligent Cloud Table – Business Central On Cloud



That's it !!!


I hope this would help you a lot. Please also let me know your views.

Your valuable comments and feedback are appreciated.

Tuesday, 19 March 2019

Business Central - Record Size Limitation - C/AL & AL Comparison


 Hello Everyone,

As we all know that Tables - Maximum record size limitation is 8000 bytes for NAV Developer Environment in C/AL. With VS Code new Developer Environment – AL Language there is no Tables – Maximum record size limitation (*). Kindly find below Tables Maximum Record Size Limitation - C/AL & AL Comparison summary.




Kindly see below screenshots for reference. Let me know your thoughts on same.


1 – C/AL – Record Size Limitation











2 – AL – Table Extension – Sandbox Environment












3 – AL – Table Extension – Production Environment














4 – AL – Table Extension – On-Premises Environment














5 – AL – Custom Table – Sandbox Environment












6 – AL – Custom Table – Production Environment











7 – AL – Custom Table – On-Premises Environment


Monday, 16 July 2018

Data Upgrade from NAV 2013 to NAV 2018 CU5

Hello Everyone,

In this article, we would discuss about Data Upgrade from NAV 2013 to NAV 2018 CU5 (Build 21836). 

Microsoft Link for Data Upgrade to NAV 2018: https://docs.microsoft.com/en-us/dynamics-nav/upgrading-the-data

Task 1: Prepare the old database

1) Use the Microsoft Dynamics NAV 2013 Development Environment to build all application objects


Build Server Application Objects

2) Unlock all application objects

Filter - Locked True in object designer.

Select all Locked Objects and From File Select Force Unlock.

3) Synchronize the database schema by compiling all Objects

Task 2: Create a full SQL backup of the NAV 2013 database on SQL Server

Task 3: Uninstall all V1 extensions

As it is an NAV 2013 database there are no Extensions so skip this step.

Task 4: Upload the Microsoft Dynamics NAV 2018 license to the NAV 2013 database

- In the NAV 2013 development environment, on the File menu, point to Database, and then choose Alter.

- In the Alter Database window, choose Integration, and then select Save license in database.

- Restart Microsoft Dynamics NAV 2013 Server instance


Upload License

Task 5: Delete all objects except tables from the NAV 2013 database

- Select All Objects in Object Designer and Mark All Objects.
- Select Tables in Object Designer, Select All and UN-mark all tables.
- From View Select Marked only and select all in Object Designer.
- Delete all Objects (marked Objects).

Task 6: Uninstall (optional) the old product (NAV 2013) and install the new product (NAV 2018 CU 5)

- Along with Installation of NAV 2018 CU 5, create a service for NAV 2018 CU 2
- Increase the SQL Command Time Out from 00:30:00 to 20:00:00 for both Services (One Service for NAV 2018 CU 2 and one Service for NAV 2018 CU 5)

Task 7: Clear Dynamics NAV Server instance and debugger breakpoints records from NAV 2013 database

1) Stop NAV 2013 Service

2) Using SQL Server Management Studio, open and clear the dbo.Server Instance and dbo.Debugger Breakpoint tables of the NAV 2013 database

DELETE FROM [NAV2018_TEST].[dbo].[Server Instance]

DELETE from [NAV2018_TEST].[dbo].[Debugger Breakpoint]

where NAV2018_TEST is my Databasename

Task 8: Convert the NAV 2013 database to the Microsoft Dynamics NAV 2018 CU 2 Database

- Open NAV 2018 CU 2 Developer Environment - Run as Administrator
- Open the NAV 2013 database in NAV 2018 CU 2 Development Environment
- Follow the conversion instructions
- Important: Do not run schema synchronization at this time.

Task 9: Import the upgraded application objects (NAV 2018 CU 2) and upgrade toolkit objects into the converted database

- Import Merged objects from NAV 2018 CU 2 Object Merge in the database. (Select Replace all)
- Do not run table synchronization (Select Later if asked)
- Import Upgrade Toolkit Objects (Upgrade7001100.fob) in Database
- Do not run table synchronization (Select Later if asked)

Task 10: Connect a Microsoft Dynamics NAV 2018 CU 2 Server instance to the converted database

- Connect to NAV 2018 CU 2 service that we created in Task 6

Task 11: Compile all objects that are not already compiled

- Filter Objects with compiled false.
- Compile objects with Synchronization Schema Later.

If you get errors on the following table objects, use the Object Designer to delete the objects because they are no longer used.

Table 470 Job Queue (replaced by the Task Scheduler)
Table 824 DO Payment Connection Details
Table 825 DO Payment Connection Setup
Table 827 DO Payment Credit Card
Table 828 DO Payment Credit Card Number
Table 829 DO Payment Trans. Log Entry
Table 1510 Notification Template

When you delete following table object, in the Delete confirmation dialog box, set the Synchronize Schema option to Force. 

- Test Runner Codeunits
Codeunit - 130400 - CAL Test Runner
Codeunit - 130402 - CAL Command Line Test Runner

OnBeforeTestRun - Verify parameter FunctionTestPermissions


Before Test Run

OnAfterTestRun - Verify parameter FunctionTestPermissions

After Test Run

Task 12: Run the schema synchronization on the imported objects - NAV 2018 CU 2

From Tools - Sync. Schema for all Tables - With Validation


Sync Schema With Validation

Task 13: Run the data upgrade process - NAV 2018 CU 2

- Open NAV 2018 CU 2 Development Environment as an administrator. 
- On the Tools menu, choose Data Upgrade, and then choose Start and follow the instructions. 
- To view the progress of the data upgrade, on the Tools menu, choose Data Upgrade, and then choose Show Progress. 


Data Upgrade

Data Upgrade


Below Tasks A to I are for NAV 2018 CU 2 ==> NAV 2018 CU 5

Microsoft Link: https://docs.microsoft.com/en-us/dynamics-nav/upgrading-to-microsoft-dynamics-nav


Data Upgrade


Task A: Create a full SQL backup of the NAV 2018 CU 2 database on SQL Server

Task B: Stop NAV 2018 CU 2 Service

Task C: Convert the NAV 2018 CU 2 database to the Microsoft Dynamics NAV 2018 CU 5 Database

- Open NAV 2018 CU 5 Developer Environment - Run as Administrator
- Open the NAV 2018 CU 2 database in NAV 2018 CU 5 Development Environment
- Follow the conversion instructions
- Important: Do not run schema synchronization at this time.

Task D: Import the upgraded application objects (NAV 2018 CU 5) into the converted database

- Import Merged objects from NAV 2018 CU 5 Object Merge in the database. (Select Replace all)
- Do not run table synchronization (Select Later if asked)
- Do not run table synchronization (Select Later if asked)

Task E: Connect a Microsoft Dynamics NAV 2018 CU 5 Server instance to the converted database

- Connect to NAV 2018 CU 5 service that we created in Task 6

Task F: Compile all objects that are not already compiled

- Filter Objects with compiled false.
- Compile objects with Synchronization Schema Later.

Task G: Run the schema synchronization on the imported NAV 2018 CU 5 objects

From Tools - Sync. Schema for all Tables - With Validation


Sync Schema With Validation

Task H: Run the data upgrade process - NAV 2018 CU 5

- Open NAV 2018 CU 5 Development Environment as an administrator. 
- On the Tools menu, choose Data Upgrade, and then choose Start and follow the instructions. 
- To view the progress of the data upgrade, on the Tools menu, choose Data Upgrade, and then choose Show Progress. 


Data Upgrade

Data Upgrade

Task I: Create a full SQL backup of the NAV 2018 CU 5 database on SQL Server


Task 14: Import upgraded permission sets and permissions by using the Roles and Permissions XML ports

Task 15: Set the language of the customer database

In the development environment, choose Tools, choose Language, and then select the language of the original customer database.

Task 16: Register client control add-ins

- To use these add-ins, they must be registered in table 2000000069 Client Add-in.

Microsoft.Dynamics.Nav.Client.BusinessChart 
Microsoft.Dynamics.Nav.Client.DynamicsOnlineConnect
Microsoft.Dynamics.Nav.Client.FlowIntegration
Microsoft.Dynamics.Nav.Client.OAuthIntegration
Microsoft.Dynamics.Nav.Client.PageReady 
Microsoft.Dynamics.Nav.Client.PingPong 
Microsoft.Dynamics.Nav.Client.SocialListening 
Microsoft.Dynamics.Nav.Client.TimelineVisualization
Microsoft.Dynamics.Nav.Client.VideoPlayer 
Microsoft.Dynamics.Nav.Client.WebPageViewer

Task 17: Publish and install/upgrade extensions

Database = nav2018_test
Server Instance = nav2018_test
Database Server = NAVDB

You can find Extensions in NAV 2018 CU 5 DVD ==> ..\NAV.11.0.21836.W1.DVD\Extensions\
My Folder Path = C:\Prerequisites\Extensions\

Extensions Folder Path

You can download Microsoft_Application_11.0.19738.0.app using below link
Microsoft_Application_11.0.19738.0.app

You can find ModernDev in NAV 2018 CU 5 DVD 
..\NAV.11.0.21836.W1.DVD\ModernDev\program files\Microsoft Dynamics NAV\110\Modern Development Environment

My Folder Path = C:\Prerequisites\Extensions\ModernDev\

Modern Dev Folder Path


1) Open Microsoft Dynamics NAV Administration Shell - Run as Administrator
Run below commands:

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\ModernDev\System.app" -PackageType SymbolsOnly

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\ModernDev\Test.app" -PackageType SymbolsOnly

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\ModernDev\Microsoft_Application_11.0.19738.0.app" -PackageType SymbolsOnly

2) Update Custom Setting file parameter "EnableSymbolLoadingAtServerStartup" = True

3) Restart Microsoft Dynamics NAV 2018 CU 5 Server instance

4) Generate the application symbol references for running Running C/SIDE and AL Side-by-Side

5) Open command prompt - Run as Administrator
Run below command:

cd "C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client"
finsql.exe Command=generatesymbolreference, Database=nav2018_test, ServerName=NAVDB

Verify results after 5 minutes at location
C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\navcommandresult.txt
"[0] [07/07/18  3:08:25 AM] The command completed successfully in '268' seconds."


6) V1 extensions have the file type .navx. V2 extensions have the file type .app

7) Open Microsoft Dynamics NAV Administration Shell - Run as Administrator
Run below commands:

For V1 Extensions:
Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\Ceridian.navx"

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\MSWalletPayments.navx"

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\PayPalPaymentsStandard.navx"

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\QuickBooksDataMigration.navx"

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\QuickbooksPayrollFileImport.navx"

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\SalesAndInventoryForecast.navx"


For V2 Extensions:
Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\C52012DataMigration.app"

Publish-NAVApp -ServerInstance nav2018_test -Path "C:\Prerequisites\Extensions\ImageAnalysis.app"

For V2 Extensions - Sync
Sync-NAVApp -ServerInstance nav2018_test -Name "C5 2012 Data Migration" -Version 1.0.21836.0
Sync-NAVApp -ServerInstance nav2018_test -Name "Image Analyzer" -Version 1.0.21836.0

Extensions

Task 18: Update the Dynamics NAV Web client configuration file (navsettings.json)

If you have installed the Microsoft Dynamics NAV Web Server components, populate the navsettings.json file for the Dynamics NAV Web Server instance with the settings of the NAV 2013 web.config file.

NAV 2013 - web.config file

Web Config Path

NAV 2018 CU 5 - NAVSettings.JSON file

Nav Settings JSON Path

Task 19: Delete the upgrade objects

- At this point, we have upgraded the database to Microsoft Dynamics NAV 2018 CU 5. 

- Now, you can delete the upgrade codeunits and upgrade table objects that you imported in task 9. This task is recommended but not required.

- Filter Objects with Version Tag - UPGTK11.00.00 and delete objects with Force


I hope this would help you a lot. Please also let me know your views.

Your valuable comments and feedback are appreciated.