web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested Answer

Upgrade from BC14 to BC17 (OnPrem)

(0) ShareShare
ReportReport
Posted on by 948

Dear All, 

Just want to get an idea from all of you. 

My database is successfully upgraded to BC14 from NAV2009 (technical and Data). It has few customizations such as added new fields to the customer, sales header & line, Purch Header & Line, Table 81, and many a few more. 

I want to upgrade (Technical & Data) this database to BC17(onprem). But my problem is existing custom fields. Do I need to create separate extensions first? Or is there any method to convert C/AL objects as AL Extensions?

I would like to get all of yours Idea on this. 

Thank you.

I have the same question (0)
  • Suggested answer
    THE Italian Profile Picture
    on at

    First things first. If you want to upgrade, is better if you do to 18.x instead of 17.x. You will have longer lifecycle (17.x will be out of support in 1 year as per modern lifecycle).

    Back to your question. There might be several ways to move data from your C/AL table into your AL table.

    The cleanest and bulletproof one

    1. Once you have an up and running version 14.x, it is time to do some magic and move the content of C/AL custom table fields into AL table extension fields

    a. Refactor your AL extension for 17.x (18.x) in order to cope with 14.x and be sure that AL table extension fields does not have the same ID and Name of the C/AL custom table fields. Obviously captions and all the rest stays the same and AL code is referencing the AL field names and IDs.

    b. Publish and install the AL extension

    c. Create another AL extension (e.g. Called TableExtensionDataTransfer extension) that has a dependency on the extension at point a. e.g.

     "dependencies": [

       {

         "id": "499ec319-ef73-463a-8d31-d66a58e1234a",

         "name": "My Extension with Table Extension",

         "publisher": "yourpublishername",

         "version": "1.2.3.4"

       }

     ],

    This will download also symbols from the extension at point a.

    Within this extension, create a codeunit that move the content from C/AL custom table fields into AL table extension fields and a page (or page extension – up to you -) with an action to run this codeunit.

    d. Publish and install this TabelExtensionDataTransfer

    e. Run the client (windows or web, it does not matter) and perform the data transfer

    f. Check the result in SQL Server and be sure that data are correctly moved from C/AL custom table fields into AL table extension fields

    g. Uninstall and unpublish in clean mode TableExtensionDataTransfer (silent, swift and deadly: leave no trace)

    h. Take an FOB file with all standard table and synchronize with Force (this will delete all custom C/AL fields)

    i. Regenerate symbols reference to have back the right symbols in Object Metadata table

    3. Now that 14.x is completely standard application and you do not have any C/AL Customization but AL extension, you can perform the upgrade from 14.x to 17.x (18.x) as per Upgrading Unmodified C/AL Application

  • ShanAbeywicrema Profile Picture
    948 on at

    Hi Duilio,

    Thank you for your advice.

    I am not clear about this process

    a. Refactor your AL extension for 17.x (18.x) in order to cope with 14.x and be sure that AL table extension fields does not have the same ID and Name of the C/AL custom table fields. Obviously captions and all the rest stays the same and AL code is referencing the AL field names and IDs.

    Does this means, Do I need to create all the extensions in version 14.x ? For example, if we have custom fields in Customer tables, let's say 50000 - 50020, Do I need to create a new extension for this? or can we convert the existing table as an extension?

  • THE Italian Profile Picture
    on at

    Obviously yes.

    So in shorts you have to transform your C/AL objects (report, codeunit, etc.) into AL.

    Then you have to create the equivalent table extension of your C/AL field customization and be sure that all your AL objects are referencing the table extension. It is trivial to say that you have to renumber that.

  • ShanAbeywicrema Profile Picture
    948 on at

    Hi Duilio,

    I have created extensions for all the modified objects. But when I publish the extension I am getting an error.
    pastedimage1621197343157v1.png

    I have run 
    finsql.exe Command=generatesymbolreference, Database="MyDBBC", ServerName=MYSever

    but in navcommandresult.txt file it shows many errors. 

    pastedimage1621197439470v2.png

    This Database is upgraded in 2009. But in BC14, RTC and web client is working perfectly. What could be the reason for this, Am I missing something ?

  • Suggested answer
    THE Italian Profile Picture
    on at

    Contact your CSP or Reseller and have them open a request to Microsoft support. There might be chances that you have messed up few things in the platform that needs a deeper analysis.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 2,664

#2
YUN ZHU Profile Picture

YUN ZHU 960 Super User 2025 Season 2

#3
Jainam M. Kothari Profile Picture

Jainam M. Kothari 773 Super User 2025 Season 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans