A Developer's Perspective - Navigating the Transition to TM1 v12

A Developer's Perspective - Navigating the Transition to TM1 v12

In the ever-evolving landscape of IBM Planning Analytics with Watson (“Planning Analytics”) development, the release of IBM Planning Analytics Engine (“TM1 v12”) brings challenges and exciting opportunities for developers.

In this blog post, we'll delve into the perspective of a Planning Analytics developer, focusing on critical areas such as deprecated functionality, the migration process from v11 to v12, and noteworthy changes and additions.

It is important to note that from an end-user standpoint, very little has changed in TM1 v12, where you have already migrated to IBM Planning Analytics Workspace (“PAW”) and IBM Planning Analytics for Excel (“PAfE”).

Deprecated Functionality & Impact on Legacy Code

TM1 v12 bids farewell to certain functionalities, urging developers to reevaluate and adapt their existing codebase. The deprecation of specific features prompts a careful examination of legacy code to ensure a seamless transition. This section will guide developers through some deprecated elements, emphasizing the importance of a thorough code review. While this section focuses more on existing TM1 v11 implementations transitioning to v12, it will also urge developers to think critically about their development approach in new TM1 v12 implementations.

The first thing that comes to mind when I think about Planning Analytics development is TurboIntegrator (TI) processes. There is a whole slew of deprecated TI functions in TM1 v12. The ones that jumped out at me in my most recent TM1 v12 implementation were:

  • CubeGetLogChanges
  • CubeSetLogChanges
  • CubeSaveData
  • SaveDataAll

These functions are no longer needed because transaction logging is always on in v12. There is no longer the need to turn transaction logging on and off when loading large amounts of data via TI.? Every transaction is logged, which supports the magic of high-availability replicas with failover in v12. Logging is accessed via IBM Log Analysis, which will be discussed later in this article.

Likewise, because every transaction is logged in v12, there is no need to run CubeSaveData or SaveDataAll manually.

One other noteworthy TI function that has been deprecated is ExecuteCommand. My jaw dropped when I heard about this, but rest assured, there is a replacement for this TI function, which will be discussed later in the New Functionality section of this article.

In addition to TI functions, there are other deprecated functionalities like access to the classic APIs, certain database configuration options, and a handful of TM1 control cubes. Check out the complete list of deprecated functionality here.

v11 to v12 Migration Utility

Navigating the migration journey from v11 to v12 can be complex but essential. We'll explore the migration utility provided by IBM, shedding light on its capabilities and limitations. A step-by-step approach will empower developers to streamline the migration process, minimizing potential application disruptions.

Cloud Pak for Data customers can download the migration utility from IBM Passport Advantage, while IBM Planning Analytics as a Service customers can download the utility directly from PAW.

It’s important to keep in mind that certain objects are not migrated to the IBM Planning Analytics Engine, such as:

  • Sandboxes
  • Objects whose name is not a valid UTF-8 encoded string
  • Objects with names containing invalid characters.? Invalid characters are \/:*?"<>|';,
  • Data files in client directories

There are several preparation steps to ensure that your TM1 v11 database is ready for migration to v12, such as ensuring you have enough free disk space and RAM to perform the migration. The complete list of preparation items can be found here.

Performing the migration is relatively straightforward. It requires a Git installation and can be performed on a Linux or Windows machine. In a Linux terminal window or Windows Git Bash window, run a simple command that executes the migration utility and identifies the source (TM1 v11) location and target location for the output data set you will later load into the IBM Planning Analytics Engine. The output data set is a compressed .tar.gz file that can be uploaded to PAW and loaded as the source for your new TM1 v12 server.

The utility logs everything and identifies any minor or fatal errors that might cause the migration to fail. Find out everything you need to know about the v11 to v12 migration utility here.

Changed Functionality: IBM Log Analysis & File Manager

TM1 v12 introduces changes in functionality that can impact how developers approach their tasks.

We'll touch on the enhanced IBM Log Analysis capabilities, enabling more insightful debugging and troubleshooting. Additionally, we'll explore modifications to file access through File Manager, providing developers with a comprehensive understanding of these changes.

As mentioned earlier, transaction logging in v12 is always on. Logging is no longer done on the TM1 server, but platform logs can be enabled and accessed via a service called IBM Log Analysis.? The IBM account administrator for your organization can enable platform logs in your IBM Cloud account and set up access to the logs via IBM Log Analysis. Once enabled, permissions can be granted to other users to access the logs. See everything you need to know about enabling platform logging here.

Another change to mention is file access on the TM1 server. In IBM Planning Analytics as a Service, TM1 developers no longer have access to the file system on which the TM1 server is installed.? However, a new File manager feature exists where import/export and other files can live in the Planning Analytics content directory. File manager can be accessed via Planning Analytics Workspace by right-clicking on the TM1 server name > File manager. It can also be accessed via REST API using Postman or Python.

The following TI functions, previously used to interact with files in the file system, now interact only with files in the database content directory (File manager):

  • AsciiDelete
  • AsciiOutput
  • AsciiOutputOpen
  • FileExists
  • SetOutputEscapeDoubleQuote
  • TextOutput
  • WildcardFileSearch

New Functionality: ExecuteHTTPRequest & RunProcess Support Functions

Embrace the power of innovation as TM1 v12 introduces new functionalities catering to the evolving needs of developers. We'll shine a light on the ExecuteHTTPRequest function, unlocking possibilities for seamless integration with external systems. Furthermore, including RunProcess support functions expands developers' capabilities, allowing for more dynamic and efficient processes.

Sometimes, there is a need to execute a Python, PowerShell, batch, or other script on the TM1 server.? In legacy TM1 implementations, this was done via a TI function called ExecuteCommand. The ExecuteCommand TI function is deprecated in TM1 v12, as there is no access to the file system. IBM has introduced a new TI function called ExecuteHTTPRequest to replace this functionality. The ins and outs of this new function are explored in a separate blog post, but it gives the ability to execute an HTTP request to fetch data or execute a remote script. It has a series of support TI functions (HttpResponseGetStatusCode, HttpResponseGetHeader, and HttpResponseGetBody). More info about ExecuteHTTPRequest can be found here.

A few years back, IBM introduced the RunProcess TI function. This is similar to ExecuteProcess, but each RunProcess call is executed on a separate thread. The introduction of RunProcess was groundbreaking as it gave TM1 developers a native ability to do multi-threading. The one caveat was that there was no native ability to track each executed thread. This prompted TM1 developers to develop their custom approaches to thread tracking. IBM has introduced a series of TI functions in v12 that give native ability to track RunProcess threads.? These include:

  • CancelJobs
  • GetJobStatus
  • WaitForAllJobs
  • WaitForAnyJobs
  • WaitForInternalJobs

See more details about each of these new TI functions here.

Conclusion

TM1 developers embarking on the journey with IBM Planning Analytics Engine (TM1 v12) face a landscape of change and progress. By addressing deprecated functionality, migration strategies, changed features, and new capabilities, this blog post aims to equip developers with the insight needed to effectively navigate and harness the potential of TM1 v12. Embrace evolution, adapt your skills, and pave the way for a future of dynamic Planning Analytics development.

Cubewise has had the privilege to embark on several of the first TM1 v12 implementations, in the United States and globally. Reach out to us to satisfy your curiosity as you explore and consider the next generation of IBM Planning Analytics.

Cubewise Innovation Week

Join us for our upcoming webinar series where we will dive deep into our recent implementation experiences on v12 with IBM Planning Analytics Engine on AWS.

Register here: https://code.cubewise.com/cubewise-innovation-week

Robby Meyers

Vice President, Financial Systems at CBRE

1 年

What capability exists to have backup snapshots? ?There is no SaveDataAll now but how would you go about taking a data snapshot that you could restore from? ?More in the case of a user doing something wrong and needing to recover. Sometimes rolling back their entries is not easy to do. Or possibly the situation of an and unintended hierarchy modification that causes data loss.?

Alen Mesic

Servant Leadership | Finance Transformation | Process Improvement | Customer Experience Optimization | Coaching | Training | Project Sourcing | Project Management | Enterprise Systems

1 年

Very insightful, Shane Thanks for sharing!

Chris Wetzel

Regional Account Director

1 年

What an excellent article empowering TM1 developers to navigate and harness the potential of TM1 v12 effectively! The release of IBM Planning Analytics Engine (TM1 v12) brings forth challenges and exciting opportunities.?Thank you Shane for sharing and discussing crucial aspects such as deprecated functionality, migration from v11 to v12, and introducing new features like ExecuteHTTPRequest and RunProcess support functions.

Ryan C.

Sr. Data Engineering Manager | Empowering data driven organizations | Mentoring the next generation of engineers

1 年

The other large ones that stand out to me is the deprecation of ExecuteCommand, dropping support for the old mdx short hand, and major changes to accessing logs. ExecuteCommand stands out though, as it tends to be the foundation for all system to system integration and will require the most refactoring.

要查看或添加评论,请登录

Shane Bethea的更多文章

  • Multi-instance Syncing and the Power of TM1py

    Multi-instance Syncing and the Power of TM1py

    Have you ever found yourself needing to quickly synchronize a set of dimensions or cube data between your Dev and Prod…

    6 条评论

社区洞察

其他会员也浏览了