Great discussion!
@Marcus Jänicke, one thing our clients find useful is leveraging SPACE's Python capabilities to handle integration and orchestration. It allows you to connect virtually any AWS service (S3, RDS, APIs, etc.) with IBM Planning Analytics in both directions, while managing triggers, batching, retries, and data flows outside of TM1. You can also call Python scripts directly from TI processes, which keeps things flexible while still fitting into existing TM1 workflows.
@Martin Hermes, thanks for sharing, very insightful and practical approach. We often see similar restrictions around Python as well, although in many cases the concern is more about uncontrolled scripting environments. With SPACE, Python is embedded directly into PAW within a sandboxed, user-aware environment (with access control, auditability, etc.), and being SOC 2 compliant helps address those security concerns and get approval more easily compared to standalone scripts. This approach generally aligns better with enterprise security and governance expectations.
------------------------------
Vlad Didenko
Founder at Succeedium
TeamOne Google Sheets add-on for IBM Planning Analytics / TM1
https://succeedium.com/teamone/Succeedium Planning Analytics Cloud Extension
https://succeedium.com/space/------------------------------
Original Message:
Sent: Fri March 27, 2026 04:43 AM
From: Martin Hermes
Subject: TM1 SaaS AWS – Experiences with Data Load, Triggering, Logging, and Performance
Hello Marcus,
These very issues, particularly the topic of orchestrating TM1 processes and workflows, are among the challenges we are also dealing with. I can therefore briefly explain how we currently handle data loading and the execution or triggering of processes and jobs.
- Environment setup
- We use a hybrid approach and run IBM Planning Analytics in the IBM Cloud as SaaS. The data sources are hosted on-premises and the data is loaded into the cloud environment via the IBM Satellite Connector.
- We do not load data from file formats such as CSV. We first pre-process this data relationally via ETL pipelines and transfer it to a relational data mart (Oracle database). Therefore, I cannot comment on the performance and reliability of loading data from files (ExecuteHttpRequest / stream-like approach).
- Data Loading Methods
Loading data – even large volumes – from relational sources via the Satellite Connector works smoothly and reliably for us.
We use only pull methods from relational data sources, then process the data further in TI processes and load the TM1 cubes. For our standard processes, we use chores, which are executed on a scheduled basis. - Workflows and Orchestration
When it came to triggering loading or calculation processes on an ad hoc basis (intrady), we faced precisely this question: how can workflows be initiated in the IBM PA Cloud environment and how can the processing be integrated into the relational pre-processing of the data?
As we are unable to use Python scripting for company policy reasons, I built a PowerShell-based framework to trigger the processes in the IBM PA Cloud environment via the REST API.
Broadly speaking, our processing looks as follows:
- Relational pre-processing via ETL (data warehouse → data mart → calculations) is initiated
- Following successful pre-processing, individual TM1 processes, process chains or chores are initiated in TM1
- Establishing a connection to the TM1 Cloud environment via the REST API (health check and authentication)
- Checking whether the process/chore exists and executing the processes, process chains or chores with detailed information and error output in the PowerShell console (e.g. `tm1.ExecuteWithReturn` for processes. With chores, it is slightly more complicated, as the chore does not return a value via `tm1.Execute`, so one does not know exactly when the chore has finished)
- Detailed logging and log archiving of the execution in the file system (Logging cubes could be built, but this is overkill for our requirements)
- In addition, I have incorporated functions into the framework to, for example, retrieve all existing processes on the environment/instance, read cube information, or display the latest processing entries from the log system to provide monitoring and documentation
- Example: RunId=074832 | Status=SUCCESS | Mode=Execute | Start=2026-01-15T07:48:35 | End=2026-01-15T07:50:08 | Duration=94s | FailedProcess=.
I hope this description of our best practice methods helps you find the right solution for your needs.
Best regards,
Martin
------------------------------
Martin Hermes
------------------------------