To make a forecast happen, you need to have a few tings setup in your TM1 model. This is a list of suggestions that may be needed.
The cube you are doing the forecast must have a TIME dimension. This are in TM1 Architect set on the cube properties.
The dimension for time, need to be in a format that TM1 understands.
Like Only years, or Year – quarters – months hierarchy.
Forecasting requires the time dimension to be placed on the column.
You must have data in all the periods, if you only have data in Quarters, but the dimension contain blank months, the predict may not work. You can get a message like:
Too many missing or zero values in the historical data.
The historical data must represent at least double what is being forecasted. If you forecast 2 years, you need 4 years of old data.
The view need empty periods where the prediction can be created. If you want to look 5 years forward, your TIME dimension need to contain empty elements for 5 years.
To begin forecasting, click an exploration view in a book, then click Forecast and click either Univariate or Multivariate, depending on which type of forecast you want to generate. A univariate forecast predicts the future values of a single variable based on historical data, using the Holt-Winters model.
Use the Set up tab to define the start date and end date for your forecast.
Right-click the Dimensions node in your database on the Databases tree, then click Create time dimension.
Alternatively, you can create a time dimension by clicking the Configure time dimension option when you create a new dimension. The Configure time dimension option is only available for a dimension with one hierarchy and no members.
If required, enter a name for the dimension.
Select the Start year for the dimension.
Select the End year for the dimension.
Answer the How frequently do you plan? question by selecting the granularity of the dimension.
Months
This option gives you three levels: Months, Quarters, Years.
Quarters
This option gives you two levels: Quarters, Years.
Years
This option gives you one level: Years.
Check the preview to confirm that it matches your expectation, then click Save.
You can modify the time dimension in the dimension editor after you create it.
Forecasting requires the time dimension to be placed on the column. The algorithm requires the time dimension members to be organized in order of increasing time, where each member of a level represents a consistent unit of time. Members within the dimension definition that do not conform to this requirement, for example calculated year-to-date member, can be hidden. Relevant time periods can be chosen to be ignored, resulting in a linear interpolation of values to be predicted from. Forecasting also supports hierarchical time dimensions and nested dimensions as time: year, quarter, and month dimensions.
One consequence of this is that leaves with multiple parents along the time series would result in non-contiguous time, so special care must be taken in these cases. If possible, it is advised to consider adding a special hierarchy for time series forecasting to support the required time configuration.
This document provides a script and/or step-by-step manual instructions for generating and deploying new applixca TM1 SSL certificates. The script can be used to automate the generation of new certificates. The manual steps are available to help with an understanding of the steps that the script has automated.
Install to the default location: C:\Program Files\OpenSSL-Win64
The OpenSSL executable will be located at: C:\Program Files\OpenSSL-Win64\bin\openssl.exe
2. Other Requirements
Administrative access to TM1 installation directories
TM1 services stopped before beginning
Important Notes
Password for CA key: applix
Password for Java cacerts: changeit
Password for tm1store: applix
All commands should be run from a Command Prompt with administrative privileges
Automated Script:
For automated execution of these steps, use the included update-applixca-certs.bat script. The script performs all the above steps. To run the automated script:
Delete the following files from the bin64\ssl directory:
del /q "%TM1_ROOT%\bin64\ssl\tm1admsvrcert.pem"
del /q "%TM1_ROOT%\bin64\ssl\tm1svrcert.pem"
del /q "%TM1_ROOT%\bin64\ssl\applixca.pem"
del /q "%TM1_ROOT%\bin64\ssl\applixca.der"
del /q "%TM1_ROOT%\bin64\ssl\applixca.crl"
Update the Java cacerts keystore with the new CA certificate (password: changeit):
cd "%TM1_ROOT%\bin64\jre\7.0\bin"
REM Remove existing applixca alias (ignore errors if not present)
keytool.exe -delete -alias applixca -keystore "..\lib\security\cacerts" -storepass changeit
REM Import new CA certificate
keytool.exe -import -trustcacerts -noprompt -file "%TM1_ROOT%\bin64\ssl\applixca.pem" -keystore "..\lib\security\cacerts" -storepass changeit -alias applixca
Find and Update All Other cacerts Files
Search for all cacerts files in the TM1 installation (excluding backups):
cd "%TM1_ROOT%"
dir /s /b cacerts | findstr /v /i "_bkp\ _backup\ backup\"
For each cacerts file found (other than the one just updated), copy the updated cacerts:
Update the tm1store keystore with the new CA certificate (password: applix):
cd "%TM1_ROOT%\bin64\jre\7.0\bin"
REM Remove existing applixca alias (ignore errors if not present)
keytool.exe -delete -alias applixca -keystore "%TM1_ROOT%\bin64\ssl\tm1store" -storepass applix
REM Import new CA certificate
keytool.exe -import -trustcacerts -noprompt -file "%TM1_ROOT%\bin64\ssl\applixca.pem" -keystore "%TM1_ROOT%\bin64\ssl\tm1store" -storepass applix -alias applixca
Find and Update All Other tm1store Files
Search for all tm1store files in the TM1 installation (excluding backups):
cd "%TM1_ROOT%"
dir /s /b tm1store | findstr /v /i "_bkp\ _backup\ backup\"
For each tm1store file found (other than the one just updated), copy the updated tm1store:
For native TM1 access, ensure the HTTPPortNumber are set in tm1s.cfg for your applications. If you use Admin with password apple, ensure that account exist in all your TM1 applications with the same password.
Go to folder C:\ide\tm1_ide\config and create the text file servers.json in notepad++
Enter below text, and adjust it to your ip number to your TM1 server, and the user and password to use.
TM1 IDE has been replaced by vscode-tm1, a Visual Studio Code extension for TM1. While many of the ideas from this project have been carried forward into vscode-tm1, this project has been deprecated and will be left here for reference.
Old Description
Still pending official name – for now TM1 IDE will be used. The goal of TM1 IDE is to implement a development environment with a desktop feel for both rules and processes. With the onset of the IBM provided Rest API, there has been a proliferation of web-based editors, but nothing that provides a true native experience for the more traditional developer. This project aims to cut through the feature overload that has become increasingly popular, and provide the average developer with a simple, clean interface that stays out of their way.
How to use
Ensure NodeJS/npm is installed.
Open a shell (Powershell in this example) and run the following after cloning to install project dependencies:
TM1 IDE — The Complete IDE for IBM Planning Analytics / TM1
Author: flameY3T1
TM1 IDE turns VS Code into a full development environment for IBM Planning Analytics / TM1. Write TI processes and rules with real autocomplete and a server-backed compile check, browse and edit cubes and dimensions visually, run MDX, trace process call graphs, test processes without touching your data, and mirror everything to Git — all from one tree, across as many servers as you like.
If you’ve been switching between Architect, PAW, and a text editor, TM1 IDE replaces all three with a single, modern, keyboard-driven workflow. No prior VS Code experience required — this guide gets you running.
Why TM1 IDE
Most TM1 editors stop at “edit a process, push it back.” TM1 IDE goes further:
Visual cube & dimension editing — pivot cubes, write back values, spread, and restructure hierarchies by drag-and-drop. Not just code.
Server compile-check on save — bad code never reaches the server. The save is blocked, not silently broken.
Configurable linter + formatter — per-server rule sets and severities: strict on Prod, relaxed on Sandbox.
Call-graph & references — see the blast radius of a process before you change it.
Git mirror — materialize processes and rules as files, with drift detection and diff.
Fully localized — complete English and German UI.
Getting Started
Step 1 — Install
Open your favorite IDE (VS Code, Kiro, …).
Open Extensions (Ctrl+Shift+X), search for “TM1 IDE”, click Install.
Fully restart the IDE — a window reload is not enough.
A new TM1 Explorer icon appears in the activity bar — your main entry point.
Root cause: PAW validates all logins against one specific TM1 server — the TM1 Login Server — configured in PAW Admin Console → Configuration → TM1 Login Server URI. Users created on any other server are invisible to PAW auth.
Fix shipped:
Added PAW_LOGIN_SERVER to .env and .env.example
All 10 user/group routes in server.js now always target PAW_LOGIN_SERVER regardless of selected workspace server
README updated with new “PAW Login Server” section
V12 note: TM1 Login Server is a V11-only concept. User management in the IDE must be adapter-aware — disabled or routed to IdP on V12/OIDC environments.
2. PAW Architecture — Key Facts
PAW is not a separate user store — in TM1 native auth mode, TM1 }Clients IS the user store
PAW has one designated TM1 Login Server for auth — all logins validated there (V11 only)
PAW discovers TM1 servers via the TM1 Admin Host (port 5895 HTTP / 5898 HTTPS) — a separate service acting as a server registry. TM1 servers register themselves on startup
PAW V12 replaces the TM1 Login Server concept with OIDC — identity comes from the IdP, not }Clients
The TM1 Login Server constraint is V11-only
Admin Host discovery API (direct, reliable):
GET http://{adminhost}:5895/api/v1/Servers
GET https://{adminhost}:5898/api/v1/Servers
Included in the IBM Postman collection but explicitly noted as “not exposed through the PAW proxy”. Do not depend on this without testing on your instance. tm1_paw_tree documents: “PAW has no endpoint to list TM1 server names”.
3. Arc vs Our IDE — Connection Model
Arc connects directly to TM1 via the Admin Host, bypassing PAW entirely. For IBM Cloud / AWS, Arc uses IBM IAM API keys → Bearer tokens — direct Admin Host is blocked by cloud firewalls.
Key discovery: the TM1 OData path suffix is identical across all deployment types:
Only the auth mechanism, base URL, and PAW API version prefix change. Our existing PAW-proxy architecture is the right shape — it just needs pluggable auth underneath.
by Roger·Comments Off on How edit text in excel cell
Product:
Planning Analytics 2.1.19 for excel
Microsoft Windows 2022 server
Issue:
In a PAFE (PAX) report where a cell have a formula with @DBRW the cell is not updateable, you have to write the full value again. Is there a way to edit the text in a cell without destroying the formula?
Solution:
Place the cursor in the cell to update.
In Excel press F2 followed by F9 and then edit text in cell, press enter when done.
If you publish the excel report to TM1WEB, then in TM1WEB you can edit the cell direct and the values are stored in the cube.
Planning Analytics 2.1.19
Microsoft Windows 2022 server
Issue:
How dynamically set the data source to a tm1 view?
Solution:
In prolog build up the subset and view, and then add
#--- set the view to use
DataSourceType = 'VIEW' ;
DatasourceNameForServer = Cube ;
DatasourceNameForClient = Cube ;
DatasourceCubeview = ViewName ;
# Change to get semicolon in the text file
# DatasourceASCIIQuoteCharacter='';
# DatasourceASCIIDelimiter = ';';
# Change to get comma in the text file
DatasourceASCIIDelimiter = ',';
DatasourceASCIIDecimalSeparator = '.';
DatasourceASCIIQuoteCharacter = '"';
When you create or edit a TurboIntegrator (TI) process in Planning Analytics Workspace (PAW), TM1 Architect often fails to read the code properly due to a known compatibility issue. When opened in Architect, the process can appear blank on certain tabs.
In latest version of PAW, you should have most of the functions you need – and therefor the need to use TM1 architect should be limited.
The Root Cause
This occurs because of a few structural differences between the two editors:
• Variable Mapping: PAW does not always send data source variable names and types to Architect properly.
• Auto-generated Code Comments: Architect relies on auto-generated comments (like the lines defining data source parameters in the Prolog/Data tabs). When you open a PAW-built process, Architect attempts to add them, which can wipe out existing code or leave the screen blank.
Take a full backup of the installed folders, by copy them to an other drive. That is folder: D:\Program Files\ibm\tm1_64
and D:\Program Files\ibm\cognos\tm1web
Take screen shoot how it looks like to login to TM1WEB, PAW and IIS. In case you have customize any web pages, so you can see when you have it back correct.
Take a backup of the TM1 applications, like zip the data folder to a other drive. Run SaveDataAll before you zip the data folder for the TM1 instance.
by Roger·Comments Off on Error occurred while updating the server info json file java.lang.NullPointerException: Cannot invoke “java.lang.String.length()” because “s” is null
Product:
Planning Analytics Workspace 2.1.19
Microsoft Windows 2022 server
Issue:
PAA agent is not connecting to PAW.
The file serversinfo.json in folder D:\Program Files\IBM\tm1_64\paa_agent\paaAgentCache should contain the names of your Tm1 instances. If it is empty, the python script have maybe not been able to read the windows services information.
Error in messages file in folder D:\Program Files\IBM\tm1_64\paa_agent\wlp\usr\servers\kate-agent\logs
[5/5/26, 15:56:20:933 CEST] 00000046 com.ibm.pa.kate.agent.scheduler.ScheduledTask E Error occurred while updating the server info json file
java.lang.NullPointerException: Cannot invoke “java.lang.String.length()” because “s” is null
at org.python.core.PyString.charsFitWidth(PyString.java:122)
at org.python.core.Py.fileSystemEncode(Py.java:786)
at org.python.core.PySystemState.initArgv(PySystemState.java:1324)
[5/5/26, 15:57:40:994 CEST] 00000046 ice.notification.PaKateServerUnresponsiveNotificationService E Error occurred while getting latest servers info from json file
java.lang.NullPointerException: Cannot read field “modules” because the return value of “org.python.core.Py.getSystemState()” is null
at org.python.core.PyModule.module___init__(PyModule.java:64)
at org.python.core.PyModule.<init>(PyModule.java:47)
at org.python.util.PythonInterpreter.<init>(PythonInterpreter.java:104)
Solution:
Restore to the bootstrap.properties file that was installed with the upgrade.
Do not use a backed up file of bootstrap.properties – only add the SMTP parameters you need manually to the new bootstrap.properties.
SMTP_EMAIL_START_TLS_ENABLE=FALSE
SMTP_EMAIL_PASSWORD=
SMTP_EMAIL_PORT=25
SMTP_EMAIL_AUTH=FALSE
SMTP_EMAIL_USERNAME=
PAA_EMAIL_ADDRESS=yourname@domain.com
SMTP_EMAIL_HOST=smtp.yourcompany.domain.com
SEND_GRID_API_KEY=””
Start the PAA agent from the bat file: D:\Program Files\IBM\tm1_64\paa_agent\bin\PAAAgentStart.bat
If above does not work also check this:
Re-register/Re-register the Agent Service: If upgrading to PAW 2.0.41 or higher, the agent must be updated.
Stop the service.
Run <install_dir>\paa\bin\PAAAgentDelete.bat.
Run <install_dir>\paa_agent\bin\PAAAgentSetJavaHome.bat.
Run <install_dir>\paa_agent\bin\PAAAgentRegister.bat.
Fix Java Path Issue: If the agent fails to start, run PAAAgentSetJavaHome.bat in <install_dir>\paa_agent\bin to ensure the correct Java home is set.
Generic:
Ensure the PAA Agent is updated to match the version of PA Workspace in use. If not, then download the newer PAA Agent .zip file from PA Workspace administration UI.
Review \paa_agent\wlp\usr\servers\kate-agent\bootstrap.properties for PAA Agent configuration errors
In \paa_agent\wlp\usr\servers\kate-agent\bootstrap.properties verify SERVERS_DIR points to the parent folder of the TM1 data directories, not directly to one specific data directory.
Review \paa_agent\wlp\usr\servers\kate-agent\server.xml for WLP-related errors
Review \paa_agent\wlp\usr\servers\kate-agent\logs\ for errors
Review \pa_workspace_install\logs\monitor\ for errors *The monitor service is what the PA Workspace Administration page uses to communicate with the PAA Agent
Ensure that the IBM Planning Analytics Administration Agent service is running
Ensure that the IBM Planning Analytics Administration Agent service account is configured with english locale
Verify that the PAA Agent URL is accessible in a web browser where PAA Agent is installed (ignore the SSL certificate warning)
URL: https://localhost:9012
If available, PAA Agent just responds “NOT FOUND The application or context root for this request has not been found” *PAA Agent runs on Port 9012 and uses SSL by default
Verify that PAA Agent is accessible from inside the docker virtual network of PA Workspace. Open Powershell and run these commands:
docker exec -it monitor Powershell
cd curl*
cd bin
.\curl -v telnet://paa_agent_servername ipaddress:9012
Replace “paa_agent_servername” by the exact server name specified in \config\paw.ps1 for “TM1Location” parameter (since PA Workspace finds PAA Agent server from TM1 Admin Server location)
Verify that the PAA Agent URL is also accessible through the Planning Analytics Workspace host by using browser or curl command
URL: https://paa_agent_servername:9012
Verify that PAA Agent is listening on port 9012: from Windows start menu, run “resmon.exe”, select “Listening Ports”, and verify “javaw.exe” is listening on port 9012
In Planning Analytics Administration Tool page, verify the IP addresses returned for the Admin Host and TM1 Server
URL: http://workspace_servername:8888
Does your PAA Agent bootstrap.properties file contain a AGENT_API_KEY setting?
at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.WindowsFileSystemProvider.createDirectory(Unknown Source)
Then you have more than one DATA folder, and the model_upload folder is created in wrong data folder. PAW PA Agent does not support more than one DATA folder listed in TM1S.CFG file.
by Roger·Comments Off on Add sleep (1001) to runprocess to make the updates work
Product:
Planning Analytics 2.1.14
Microsoft Windows 2022 server
Issue:
How many RUNPROCESS can you run in parallel on a server?
RunProcess lets you run TurboIntegrator processes in parallel, each on its own thread that is managed by TM1® Server. This approach speeds up data load and other operations where TurboIntegrator processes are used to divide the work.
Suggested Solution:
You can only run, same number of virtual CPU cores you have on the server, with the RUNPROCESS command, to ensure proper data handling.
If you run more RUNPROCESS command than CPU cores, you may get that CELLPUTN command will not be executed, and you will not get a error. The process continue as all is fine. On the other hand ASCIIOUTPUT maybe will work fine, so to run more RUNPROCESS in parallel to only create csv files works better.
If you have the ASCIIOUTPUT in the Data tab, and then the CELLPUTN in the Epilog tab of your TI process that you call from a RUNPROCESS command,
add a SLEEP (1001) before the CELLPUTN line, will in some cases solve the issue.
The solution is to add a delay somewhere in the processes, to make the server catch up with what you try to do.