Why Canvas?

TM1 is famous for his speed, it has a world-class calculation engine. Over the years, its engine has been improved significantly with the introduction of the skipcheck algorithm, parallel processing and MTQ.

Building reports in Excel and then upload them into TM1 Web is a great way to build applications quickly with the existing skills of business users. There are limits however to how far you can take TM1 Web. Things like client side validation, dialog boxes and menu systems are difficult and sometimes impossible. 

The TM1 REST API was introduced in version 10.2 of TM1 enabling a developer friendly way of accessing all of the goodness in TM1 models. The REST API is however targeted at developers who have a programming/engineering background. 

Cubewise decided that we wanted to give traditional TM1 developers / system administrators the ability to build beautiful dashboards and planning applications using their existing knowledge. Canvas was born, a new way to build applications on top of TM1.

What is Canvas:

The Canvas platform is a combination of client side components and an application server that simplifies requests to TM1. Canvas has numerous components / controls that have been based on existing TM1 functionality, such as: DBR, DBRW, DBRA, SUBNM and Active Forms. The goal is to leverage the knowledge of TM1 and add to that mix technologies that are broadly supported in the web development world.

Canvas has its own simplified REST API that obfuscates the complexities that are present in the TM1 REST API. Examples:

  • Get a value from a cell: /api/dbr/<instance>/<cube>/<element1>,<element2>,...,<elementN>
  • Save a cell value: /api/dbs/<instance>/<value>/<cube>/<element1>,<element2>,...,<elementN>
  • Get the contents of a subset: /api/dimension/<instance>/<dimension>/<subset>

In 95% of cases you will never need access the API directly, instead you will use the Canvas client side components:

  • tm1-ui-chart: A flexible chart that uses a collection of TM1 cells as a datasource.  
  • tm1-ui-dbr: A TM1 cell value that can be displayed and updated (write-back) and supports pick lists and commentary.
  • tm1-ui-dbra: Display the attribute of the TM1 element.
  • tm1-ui-export: Export the contents of a HTML table to CSV.
  • tm1-ui-login: A component to allow a user to login to a TM1 server.
  • tm1-ui-process: Execute a TM1 process.
  • tm1-ui-repeat: Return a list of items either from a dimension, view or MDX statement that can be leveraged in other parts of the page.
  • tm1-ui-session: Display the session information for each TM1 instance/server.
  • tm1-ui-store: Store client-side settings in TM1 to allow users to customise their pages.
  • tm1-ui-subnm: Display a dimension or subset as a drop-down list or collection of radio buttons.
  • tm1-ui-web: Display TM1 Websheets or cube views within a Canvas page.