Migrating To FIN 5.0

4.5 or earlier version of FIN cannot be manually migated, click on the following link for more information: https://www.j2inn.com/migrate-to-5

Migrating To FIN 5.0

Below we'll be covering the migrating process from FIN 4.5 to FIN 5.0. A FIN 4.5 project cannot just be loaded to FIN 5.0 and vice versa. Once migrated to FIN 5.0, a project can no longer be reverted back to FIN 4.5. The only way to have a project running back in FIN 4.5 is the backup made prior to migrating, which if the user does do this will lose any historical data and other stuff from the time it was down and using the FIN 5.0 project version.

Preparing Project For FIN 5.0

Prior to migrating, we want to prepare the project and make sure we're ready to start the migration process as smoothly as possible. The user will first want to go through the Prepping Project for FIN 5.0 documentation. We recommend to migrate the project(s) manually as it is a lot quicker and provides logging information like errors and other useful information that occurred during migration.

Manual Migration

Once the user has prepped the project and ready to migrate to FIN 5.0, they can begin the Manual Migration steps.

Migrating Project To FIN 5.0

The user can also use our tool we created to make it easier. The downside is it takes longer and no useful information is provided about what occurred during migration. To use the tool, they can begin the Migration Process.

After Migration

After the migration of a project, the user can check the project out in the browser after logging in. Then follow and do the below steps to complete the migration process. 

1) Funcs to execute

Funcs to execute in folio with bacnetServerMigrate being optional if being used in the 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()

2) Program Status

After running the funcs above, 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 use: readAll(program).toRecList.map(r => r.diff({-programStatus}, {transient})).commit

3) 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.

4) 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.

5) 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.

6) 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 this 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.