Migration Process

Migration Process

Below is how to migrate a project using the FIN Migrate tool. If you have a FIN 4.5 project backup, but don't have FIN 4.5 installed, look at step 2 below on how to migrate that without the FIN 4.5 service. It is recommended to do the Manual Migration over this tool as it is a lot quicker and provides logging information like errors and other useful information.

Alarm History, Browser Cache, Bookmark, FIN desktop shortcut

Before migrating, the user should be prepared to let their customers know few issues they may encounter after migration and how to resolve them if they do come across them. Those issues involve alarm history, browser cache, bookmarks, and/or FIN desktop shortcut. If they don't come across them, it is still recommended to clear browser cache.

Alarm History
Alarm history is not migrated over. That means historical alarms are not copied over to FIN 5.0. Programs that generate the alarms are still there just can’t see older alarms records that were created.

Browser Cache
To resolve the browser cache, they would have to follow the below steps to clear browser cache:

  1. On the Chrome browser, hit the F12 key on the keyboard (opens up the Developer tools)

    1. If F12 doesn't work, they can go to browser Settings (top right corner)

    2. Select "More tools"

    3. Then select "Developer tools"

  2. Then right-click on the browser refresh icon

  3. Select "Empty Cache and Hard Reload"

  4. Once the page reloads, they can close the Developer tools window and that's it for the browser cache

Bookmark and FIN desktop shortcut
To resolve this, they can follow this doc on how to Launch Specific Project.

1) FIN Stack 5.0 Installed

First, the user will have to have FIN Stack 5.0 installed on the machine. Look at Windows Installation for how to install FIN 5.0.

2) Stop both FIN Stack Services

Then, the user will have to stop both FIN Stack 4.5 and FIN Stack 5.0 services. In order for migration to work, both services cannot be running. In the Services app, the FIN 4.5 service is called "FIN Stack service", while FIN 5.0 is called "FinStack5 service".

No FIN 4.5 Service Installed

If the user doesn't have FIN 4.5 installed, they can still migrate a backup project. The user will want to unzip the project if its zipped. Also know where its located on the machine. We recommend having it on the desktop for quick find but not necessary. Make sure its the project itself with its contents, not the project inside another folder with same name. Sometimes that happens when unzipping. Then continue the rest of the steps.

3) Navigate to bin folder in FIN Stack 5.0

Next, the user will need to navigate the 'bin' folder inside the FIN Stack 5.0 directory. It should look something like below but with your version.

Bin folder Path: C:\Program Files (x86)\FIN Stack\FIN Stack 5.5.1153\bin

4) Initiating migration using finmigrate.bat

Once inside the 'bin' folder, the user will find the 'finmigrate.bat' file. They will right click on it and select to run as administrator.

Then you might get a prompt if you want to allow the app to make changes to the device. Select Yes to continue.

5) Selecting project to migrate

Next, two popup windows will appear. One will be a command prompt (leave open, but ignore it) and the other will be the project migration tool. The user will select the "Open..." button and then navigate to the FIN 4.5 project the user wants to migrate to FIN 5.0. The user will select the actual project folder itself, then select OK to start migration. This will start executing the commands needed to migrate the project. Just wait until it is done.

In our example below, we want to migrate our "demo" project. We select the "demo" folder under the db folder to migrate.

Note: If you have multiple projects and you want to migrate them at the same time, you can select the parent 'db' folder itself. That will migrate all the projects under the db folder at once.

The FIN 4.5 db folder path should be something like this but with your version: C:\Program Files (x86)\FIN Stack\FIN Stack 4.5.851\db

No FIN 4.5 Service Installed

Those without FIN 4.5 installation would just select the project folder wherever it may be located.

6) Migration Complete

Once the migration is complete, the user should see something similar to the below with a message indicating it is complete. It shouldn't be running any more commands. On the command prompt, it should end with something along the lines of "http started on port 8080" and "Steady state". The user can then close both popup windows.

 

7) Start up FIN Stack 5.0 service

The user can then start the FIN Stack 5.0 service and be able to hit the project(s) via browser. Should be something like this for specific project "ip:port/finMobile/<projName>" or for host home "ip:port/home".

Thats it, the whole migration process has been completed and can check out the project(s).

The funcs that were executed while migrating were below. If for some reason, things look off, they can be executed manually in folio with bacnetServerMigrate being optional if being used in project:

  • finMigrateFilterIds() - this would update the id's on certain filters such as graphicOn, programOn etc. If not updated, those records wouldn't appear or function without proper id format. For example a floor graphic usually only runs on a single floor so its graphicOn would be an id of a floor. They would have to be updated manually or using the function. If the user notices that the id's weren't updated, then can run the function in folio to update them. Then check to see if it worked. If not, contact your distributor.

    • Example use: finMigrateFilterIds()

  • finMigrateFinFile() - this would update the id's on virtualPoints, bindings, query tags inside graphics, programs etc. This however may not update id's in a program/event inside a graphic. Those would have to be updated manually if there are any hardcoded in there. This can also be ran in folio if they weren't updated.

    • Example use: readAll(fin5).each x => x.finMigrateFinFile() OR finMigrateFinFile(@record_Id)

  • bacnetServerMigrate() - this would update the below bacnet tag names to the new tag names in FIN 5.0. This would be for projects using bacnetServer in FIN 4.5. The ext needs to be enabled.

    • bacnetNetwork → bacnetServerNetwork

    • bacnetLocalAddress → bacnetServerLocalAddress

    • bacnetMacAddress → bacnetServerMacAddress

    • bacnetDevice → bacnetServerDevice

    • bacnetInstance → bacnetServerInstance

    • bacnetCovIncrement → bacnetServerCovIncrement

      • Example use: bacnetServerMigrate()

8) Program Status

Once the FIN service is running, open the project and go to Folio app. The user now needs to remove the "programStatus" tag from the program records. To do this, go to Folio app and run the below query.

  • Example run this query: readAll(program).toRecList.map(r => r.diff({-programStatus})).commit

  • If you get an error with previous query, run this one: readAll(program).toRecList.map(r => r.diff({-programStatus}, {transient})).commit

9) Users App Access

The users "Application Access" will need to be updated if there were restrictions to certain apps for certain users. The superuser would go to the Users and edit the users who need restrictions to certain apps and update the "Application Access" property. If they didn't have restrictions to any app, then they are fine.

10) Actions

If the user has modified their actions due to them being unique Niagara Network actions and used this doc Haystack Niagara Network Actions, then they need to update them. The change is a simple text of ".parseRef" appended after haystackWrite. You can use the Action Category Permission tool to mass update them.

11) Email SMTP Settings

The user will need to re-enter the email SMTP settings if they had that enabled for use in FIN 4.5. In the Home page after logging in to FIN 5, go to the Settings tab on the top. Then enter the email SMTP settings in the top section of that page.

12) Bacnet Connector Tag

If the user has Bacnet connectors and they have the "bacnetForcePolling" marker tag on them, then they would want to remove that tag from the connectors as its no longer supported in FIN 5. It was replaced with "bacnetDisableCov" marker tag and that goes on a tuning policy that is applied to the Bacnet connectors. If you don't have the bacnetForcePolling tag applied to the Bacnet connectors, you can skip this step.

  1. Go to DB Builder and select the Tuning Policies tree

  2. Select the tuning policy that is applied to the Bacnet connectors (this is assuming the Bacnet connector(s) already have one. If not, create one and apply it to them)

  3. Then click on the 'i' icon next to it on the left side under the Essentials column

  4. Add the "bacnetDisableCov" marker tag and save it

  5. Then disable the Bacnet Connectors

  6. After disabling, re-enable a handful of Bacnet connectors at a time

Thats it, the project(s) should be good to go.