In the latest release of TM1 10.2.2 you now have the capability to use Java as a scripting language to further extend the capability of TurboIntegrator processes within TM1. It can operate Java libraries and it can be used like any other Java method.
The key advantages of these Java Extensions are:
- Ease of use as it utilises TurboIntegrator calls as compared to using the TM1 Java API
- It gives you the ability to create more complex algorithms
- You can protect your company’s IP by encapsulating your algorithms within a compiled Java extension
WEB EXCHANGE EXAMPLE
A typical manual process for a TM1 system is sourcing exchange rates. This entails the user downloading an exchange rate file and then either manually keying in the data or import the data using a Turbo Integrator process. So as part of the testing of this new software version, I created a Java extension that imports daily exchange rates from a web service using JSON with no manual intervention from the user.
This example uses exchange rates to illustrate the ease with which external data can now be retrieved and imported using the Java extensions. But this example could be expanded to include other data sources.
I used the openexhangerates web service to retrieve the exchange rates. More information on using this web service can be found at http://openexchangerates.org.
After creating the extensions that connects to the web service and imports the exchange rate data the following steps were followed on the TM1 Server.
- Modify the TM1s.cfg to include the JavaJVMPath parameter and point it at the location of the JVM. (The path below is where java is located on my local machine)
- JavaJVMPath=C:\Program Files\Java\jre7\bin\server\jvm.dll
- Updated the javaextensions.policy file to allow the extension to access the web service. I add the following line which removes all restrictions. (This file is located in the TM1_64 directory)
- permission java.security.AllPermission;
- Create the required extension directories as follows and copy the extension into the user directory.
- Create a Turbo Integrator process to call the extension.
- When the extension is called for the first time, it will create a currency dimensions and cubes.
- The cube will then be updated with the exchange rate data for the day that is sent in as a parameter.
Java’s versatility and flexibility are now available in the new release of TM10.2.2 via this new extension functionality. It no longer is a self-contained analytical program but has the adaptability to scrape websites, import data from any data sources and the capability to allow you to build complex algorithms.
Please contact me if you would like to learn more about TurboIntegrator Java Extensions.