(old) Migrating the Content Store from 2.1 or 2.0

1. Update Existing UX from Version 2.0/2.1.X to 2.2 process

1.1. Migrating view definitions into the content store

In this section, you will convert the current ‘}apq c3 canvas view cube’, to the new JSON structure.

This require installing a TI on your current instance. You will then export all the Apps which you like to exist in the content store and run on 2.2.

  • In your current “Data” instance, deploy the objects needed for the migration, using provided online package (via Pulse)

 or the offline package, manually.

  • Login into the Data instance and execute process “}APQ.UX.Dim.CanvasView.JSON.Upgrade”  This will transform your view definition into the new JSON based format:
  • In pInstance paramenter input the name you have assigned (or you plan to assign) to this data instance inside UX, for example “UX_Dev”. This name has to match with the one you have configured for this “data” instance inside the instances.json file (see section 1.2). Note: the application name is case sensitive!
  • Execute process “}APQ.UX.Dim.CanvasView.Export.All”
  • Again, use the save value you have used before for the pInstance parameter. You can also specify a custom directory where to place the export files. This process will export all the view definition in JSON format into text files
  • Install Apliqo UX 2.2 in a different folder than the one in which your current UX version is located (to not overwrite it). Detailed instructions are provided in section “1.1 Installation”. Be also sure to use a different port from the one used by old Canvas installation or, if you wish to keep the same port number, then stop or uninstall Canvas.
  • Deploy the TM1 “UX_ContentStore” instance coming with UX installer into one of your TM1 machines (you can find it in the installation directory in “db” subfolder). Detailed instructions are available in section “1.2 – PA server is placed on different Machine.”.


  • The next steps are to import the view definitions now stored in this file into the “UX_ContentStore” instance..
  •  The out of the box “UX_ContentStore” instance comes with example view definitions. To keep everything clean we remove these views before the import. To do so, login into the Content store instance and execute process “}APQ.UX.Server.Clean"
  • Set pAreYouSure parameter to 1 and pClearApps to 1 as well, to delete all the demo apps from the instance.
  • Run the import of your views using process “}APQ.UX.Dim.App.Import.All
  • In pFilePath, use the path where you have exported (or moved, if necessary) the text files, while in pInstance parameter use the same instance name you have used during the export process (i.e. “UX_Dev”).
  • The removal of all the apps at the previous point has also removed a general default home page (the general setting is sitting on “Admin” user). Since it is mandatory to have one, it is now necessary to choose one of the imported view as the default home page for the admin user. To do this, open cube }APQ UX UserPreference, pick the user “Admin” and set a home page. Refer to section 2.1.1 for additional details:

1.2. Advanced Options

1.2.1. Move custom objects and functions into the new instance


  • Create a new Apliqo_UX instance as detailed in sections 1.3 and 1.2. Be sure to edit the instance.json file properly to point to the “UX_ContentStore” instance you have just prepared and to the TM1 “Data” instance in which your data is. Remember to give this instance in the instance.json file the same name you have used when exporting views definition.
  • Move your custom files and objects into the apq-c3-custom subfolder of your UX application:
  • When doing this, keep in mind the following points
    • Old subfolder (placed inside apq-c3-custom) named “Config” is now named “js”
  • Therefore, move your custom .js files from “Config” subfolder into this new subfolder
    • default.constant.js file has now a different structure, so it is not possible to migrate the old one, including your changes, if any. You should replicate those changes into the new file.
    • The old UX version was only supporting one TM1 instance that was referred to as instance “c3”. Now multiple instances are possible and you can assign a custom name to each of them: review your custom .js files and replace every reference to “c3” instance to the instance name you are actually using for your “data” instances.
    • When calling settings service in your js functions, consider the new setting syntax in version 2.2 is like $InstanceName.Dimension.HierarchyName and not any longer just $Dimension.Amend your custom code to reflect this new instance and be sure to use each time the a variable corresponding to the right instance, since there are multiple setting service for all the TM1 instances you are connected to!
  • Fore example the following code

Becomes ...


Add your comment

E-Mail me when someone replies to this comment