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.
      1. Stop the service.
      2. Run <install_dir>\paa\bin\PAAAgentDelete.bat.
      3. Run <install_dir>\paa_agent\bin\PAAAgentSetJavaHome.bat.
      4. 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
  • Review \pa_workspace_install\config\paw.env (or paw.ps1) file
Connectivity-Related Errors:
  • 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)

  • In the web browser, verify that the SSL Certificate is valid
    See: https://www.ibm.com/support/pages/node/6562425
  • 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?
  • Does your PAA Agent use custom SSL?
  • Does your TM1 Admin Server and TM1 Server use custom SSL?
    • Were the certificates imported into the PAA Agent keystore?
Other problems encountered with the PAA Agent might require extra debugging to be enabled for review.

 

Enable PAA Agent Debug Logging:
  • Stop the IBM Planning Analytics Administration Agent service
  • Update the \paa_agent\wlp\usr\servers\kate-agent\bootstrap.properties file to include
    • com.ibm.ws.logging.trace.specification=”*\=audit\:com.ibm.pa.kate.agent.*\=all”
    • com.ibm.ws.logging.console.log.level=ERROR
  • Start the IBM Planning Analytics Administration Agent service
  • Replicate the problem as required
  • Review the files in \paa_agent\wlp\usr\servers\kate-agent\logs\

 

More information:

https://www.ibm.com/support/pages/planning-analytics-administration-agent-not-reachable

https://www.ibm.com/support/pages/how-troubleshoot-planning-analytics-administration-agent

https://www.ibm.com/support/pages/how-obtain-planning-analytics-tm1-server-certificate 

https://www.ibm.com/docs/en/planning-analytics/2.1.0?topic=only-configure-agent-windows 

https://www.ibm.com/docs/en/planning-analytics/2.1.0?topic=cloud-configuring-premises-agent

If you find this error in the message.log for PAA agent instead;

[5/5/26, 17:04:14:303 CEST] 000003d9 bm.pa.kate.agent.service.fileManager.LocalFileManagerService E Failed to CREATE the ‘model_upload’ folder, err:
java.nio.file.NoSuchFileException: d:\tm1 data\faptest\Data\;.\Data_SysSettings\model_upload
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.

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.

 

More Information:

https://code.cubewise.com/blog/4-ways-to-speed-up-your-processes-in-ibm-tm1-and-planning-analytics/

https://www.ibm.com/docs/en/planning-analytics/2.1.0?topic=tf-process-control-turbointegrator-functions

https://aggregated.blogspot.com/2015/02/running-tm1-processes-from-outside-tm1.html

https://www.ibm.com/docs/fi/planning-analytics/2.0.0?topic=mtf-logoutput-1

 

Product:
Planning Analytic 2.1.19  tm1server = 11.8.03500.6

Microsoft Windows 2019 server

Issue:

How use SUBST instead of STR function in a process?

In PAL 2.1.18 STR function does not truncate a string when a length parameter is passed. The original value is returned as a string.

Solution:

This should give the same result

sTestA = STR(1000000, 4, 0) ;
sTestB = SUBST (numbertostring (1000000) , 1, 4) ;

 

Syntax for SUBST is:

SubSt(String, Beginning, Length)​

  • ​String = A text string​
  • Beginning = Substring starting position​
  • Length = Length of the string that we want to keep

 

More Information:

 

Product:

Planning Analytics 2.1.14
Microsoft Windows 2022 server

Issue:

How replace \ with / in a string in a TM1 TI process?

Solution:

Enter below code in you prolog:

vTemp = '';
vChar = '';
k=1;
WHILE( k <= LONG(pFilePath) );
  vChar = SUBST(pFilePath, k, 1);
  IF(vChar @= '\');
    vChar = '/';
  ENDIF;
  vTemp = vTemp | vChar;
  k = k + 1;

END;
NewFilePath = vTemp;

Content in pFilePath will be updated to NewFilePath variable.

More information:

WHILE Function: How to Use, Syntax, and Examples

https://cubewise.com/functions-library/tm1-function-for-ti-while/ 

Product:
Planning Analytics 2.1.14
Microsoft Windows 2022 Server

Issue:

How call RUSHTI.EXE from TI process when using SSO with IntegratedSecurityMode=5  (CAM)?

https://github.com/cubewise-code/rushti

Solution:

Run the TM1 service  (IBM TM1 Admin Server x64) and TM1 application service (IBM TM1 Server x64 – budget) with a windows account in your domain, that have rights inside your TM1 application (maybe ADMIN).  The ExecuteCommand is run with the user who runs the TM1 service.
Go to Windows service, and for your TM1 service, change the log on from Local System to account (a service account that does not change password) in the domain.

To call RUSHTI from a TI process enter something like this:

sCMD = 'd:\rushti\rushti run --tm1-instance "Budget" --workflow "load data fast" --max-workers 8 --mode opt' ;
ExecuteCommand(sCMD, 1);

 

https://github.com/cubewise-code/rushti/releases

To install RUSHTI.EXE you need to download the zip file, and unpack it to a folder on your server (d:\rushti)

Installation

  1. Download rushti-windows.zip  (to start with, take this file https://github.com/cubewise-code/rushti/releases/download/v2.0.0/rushti-windows.zip )
  2. Extract to your desired location (keeps directory structure intact)
  3. Copy config/config.ini.template to config.ini and configure your TM1 connections
  4. (Optional) Copy config/settings.ini.template to settings.ini for custom defaults
  5. Run rushti.exe from command line

Note: This build uses PyInstaller’s onedir mode for fast cold starts.
Keep all files in the extracted directory together – the exe requires the bundled libraries.

You must have the files in the _internal folder, the files can not be replaced.

The config.ini contains the information to connect to your TM1 instance. Change for your environment, ports etc:

# The section name (e.g., [Budget]) is used as the instance identifier
# in task files and command-line arguments.
# For SSO set username to blank etc
# Copy this file to config.ini and update with your actual TM1 server details.
# the name of the tm1 application you should work with
[Budget]
# TM1 server hostname or IP address
address=tm1servername.domain.com
# REST API port (check your tm1s.cfg HTTPPortNumber setting)
port=12387
namespace=AD
gateway=http://caservername.domain.com:80/ibmcognos/bi/v1/disp
user=""
password=""
# Set to True if password is base64 encoded
decode_b64=False
# Set to True if TM1 server uses HTTPS (check UseSSL in tm1s.cfg)
ssl=True

 

Settings.ini is the file for defaults of the system to activate collection of data to database etc. It can look like this:

# RushTI Settings Configuration
# ==============================
#
# This file configures RushTI behavior settings, separate from TM1 connection
# settings in config.ini.
#
# Settings Precedence (highest to lowest):
# 1. CLI arguments (e.g., --max-workers 8)
# 2. JSON task file settings section
# 3. This settings.ini file
# 4. Built-in defaults
#
# To use this file:
# 1. Copy to settings.ini in the directory called config
# 2. Uncomment and modify the settings you need
# 3. Delete or leave commented any settings you want to use defaults for
# ------------------------------------------------------------------------------
# [defaults] - Common execution settings
# ------------------------------------------------------------------------------
[defaults]
# Maximum number of parallel workers
# Valid range: 1-100 (start with the same amount of CPU cores you have on the server)
# Default: 4
max_workers = 8

# Number of retries for failed process executions
# Valid range: 0-10
# Default: 0
# retries = 0

# Output file path for execution results summary CSV
# Set to a file path to create a summary CSV (e.g. rushti.csv)
# Leave empty or omit to skip creating the summary CSV
# Default: (empty - no CSV created)
result_file = rushti.csv

# Execution mode: 'norm' (normal) or 'opt' (optimized with dependencies)
# Default: norm
mode = opt

# ------------------------------------------------------------------------------
# [optimization] - Automatic task ordering optimization
# ------------------------------------------------------------------------------
[optimization]

# Enable automatic task optimization during execution.
# When enabled, ready tasks are sorted by estimated runtime (longest first)
# to maximize parallel efficiency. Dependencies are always preserved.
#
# Requires: [stats] enabled = true (needs historical data for estimates)
# Override: Use --no-optimize flag to disable for a specific run
#
# Default: false
# enabled = false

# ------------------------------------------------------------------------------
# [logging] - Enhanced logging settings / you must adjust this file to make it work
# ------------------------------------------------------------------------------
[logging]
# level = INFO
# file = /log/rushti.log

# ------------------------------------------------------------------------------
# [tm1_integration] - TM1 integration for reading taskfiles and logging results
# ------------------------------------------------------------------------------
[tm1_integration]

# Push execution results to TM1
# When enabled, the results CSV is uploaded to TM1 files after each run
# as: rushti_{workflow}_{run_id}.csv
#
# To set up TM1 integration:
# 1. Run: python rushti.py build --tm1-instance tm1srv01
# This creates the required dimensions and cube automatically.
# 2. Set push_results = true and configure default_tm1_instance below
#
# Default: false
push_results = true

# Automatically load results into TM1 cube after push
# When enabled (and push_results = true), calls }rushti.load.results TI process
# on the target TM1 instance after uploading the results CSV.
# The TI process must exist on the target instance.
#
# Default: false
# auto_load_results = false

# Default TM1 instance for reading taskfiles and writing results
# Used when --tm1-instance is specified without an instance, and for auto-upload
# Must be defined in config.ini, set the name for the section in config file.
default_tm1_instance = Budget

# Default cube name for task definitions and results
# The build command creates this cube with dimensions:
# - rushti_workflow: Workflow identifiers
# - rushti_task_id: Task sequence (1-5000 default elements)
# - rushti_run_id: "Input" for definitions, timestamps for results
# - rushti_measure: Task field measures
#
# Default: rushti
default_rushti_cube = rushti

# ------------------------------------------------------------------------------
# [stats] - SQLite stats database for execution history
# ------------------------------------------------------------------------------
[stats]

# Enable the stats database for storing execution history
# The stats database stores execution statistics for:
# - Optimization features (EWMA runtime estimation)
# - TM1 cube logging data source
# - Historical analysis via 'rushti db' commands
# Default: false
enabled = true

# Path to the SQLite database file
# Relative paths are resolved from the application directory
# Default: data/rushti_stats.db
db_path = data/rushti_stats.db

# Number of days to retain execution history
# Valid range: 1-365
# Default: 90
retention_days = 90


To create the RUSHTI cube, you run the command:

rushti build --tm1-instance "Budget"

If not using a CUBE for the tasks, you can use a TXT file. See link.
https://code.cubewise.com/open-source/tm1py/rushti/

To create an HTML file of the run information, enter command like below in the DOS prompt:

rushti tasks visualize  --tm1-instance "Budget"  --workflow "load data fast"  --output dag.html

Open the dag.htlm file in your web browser (with javascript enabled).

In the RUSHTI cube, you can use the predecessors column to tell what process should be finish before this process start. In below example the process number 3 starts first when process 2 is finished.

in process filed, enter the name of the TI process to run.

In parameters field, when you have more parameters than one , they can be formatted like this:

{ "pVersion": "Prognos 1", "pYear": "2025" , "pMonth": "03" }

There is a colon (:) between the prompt and the value, and a comma (,) between the parameters, or the simpler format shown below will work (you need the space before ,):

pVersion=Budget , pYear=2026 , pMonth=01

If you have a path in your parameter, then you need to enter / (forward slash) instead of \. So it should look like this:

{ "pNewCube": "thecubename", "pFilePath": "D:/Tm1 Data/budget/Export/to_other/read/Budget_2026_01.csv" }

You need to create a element in dim Rushti_workflow for your tasks settings, this i called from the rush command. For it to know what task list it should execute on, in the cube. e.g. –workflow “load data fast”

 

 

More Information:

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=pctf-executecommand

https://code.cubewise.com/blog/introducing-the-tm1py-universe/

Full documentation is available at cubewise-code.github.io/rushti/docs

https://code.cubewise.com/downloads/

https://code.cubewise.com/blog/run-processes-in-parallel-using-only-connection/

Product:
Mirantis Docker
Microsoft Windows 2022 server

Issue:

How update the lic file on the docker installation on a Windows server?

Solution:

Buy a new license (Mirantis Container Runtime with LabCare Support) from Mirantis, one per PAW server. You will get a mail with a link, that will download the MCR file direct to your computer.

Then rename the file from like MCR 3xNode LabCare.lic  to docker.lic.

Copy the docker.lic file to your docker folder – normally that is D:\docker on your Planning Analytics Workspace (PAW) server.

 

To check that you have a license, enter below in CMD:

docker info --format '{{.ProductLicense}}'

You should get a text like this ‘Valid until 2026-04-09 for sf0643587264358638568230756MAC’ if all is fine.

 

More Information:

https://docs.mirantis.com/mcr/25.0/single/index.html#install-the-license

You can update the license in your cluster at any time during the week before your license expire.

As per our terms of service – “Users are not authorized to run MCR without a valid license.”, but even if you do not replace the license after the 10th, the docker service will not be forcefully stopped and there won’t be any interruptions to your applications and workloads.

You download Mirantis license (.lic) files from the Mirantis CloudCare Portal (or from a purchase confirmation email, depending on the product):

For MKE / MSR / MKE 4k:

  1. Find the email from Mirantis Support with subject similar to “Welcome to Mirantis’ CloudCare Portal” and log in as instructed. [MKE 3.7 licenseMSR 2.9 license]
  2. In the top navigation bar, click Environments.
  3. Click the Cloud Name associated with the license you need.
  4. Scroll down to License Information and click the License File URL.
  5. In the new tab, click View file to download the .lic file. [MKE 3.8 licenseMSR 2.9 single]

For MCR (Mirantis Container Runtime):

  • If you bought via the Mirantis Store, the license file is available from the link in your purchase confirmation email. Otherwise, you must contact Mirantis Sales/Support to get the file. [MCR 25.0 license]  

For Mirantis Container Runtime (MCR) / Mirantis Docker Engine, the license file must be placed in the daemon data directory and named docker.lic.

On Windows (default path):

Install MKE offline – Mirantis Kubernetes Engine

Index of win/static/stable/x86_64

By default, MCR automatically records and transmits data to Mirantis for monitoring and analysis purposes. The data collected provides the Mirantis Customer Success Organization with information that helps us to better understand the operational use of MCR by our customers. It also provides key feedback in the form of product usage statistics, which enable our product teams to enhance Mirantis products and services.

When antivirus and antimalware software products scan files in use by MCR, these files can lock in a way that causes Docker commands to hang or causes orphaned snapshots to leak disk space. To circumvent these problems, you can add the Docker data directory to the software’s exclusion list, which is by default /var/lib/docker on Linux systems and %ProgramData%\docker on Windows Server systems. As a result of this action, though, viruses or malware in local Docker images, writable layers of containers, or volumes will go undetected.

Product:
Planning Analytics Workspace 2.1.14
Microsoft Windows 2022 server

Issue:

How do i easy copy one book in PAW to other TM1 instance?

Solution:

Copy the JSON code between the TM1 applications.

Go to the book, click on the Swedish keyboard CTRL+Q+’     (That is the * key left of the carriage-return key.)

This opens up the JSON code that describe the book. This can be copied to notepad for editing, or direct to other PAW book.

 

More Information:

https://www.acgi.com/blog/copying-tabs-across-books-in-ibm-planning-analytics-workspace

https://community.ibm.com/community/user/blogs/george-tonkin/2023/02/18/copying-a-tab-from-one-paw-book-to-another

https://www.ibm.com/docs/da/planning-analytics/2.0.0?topic=books-create-book

Product:
Microsoft Excel 365
Planning Analytics TM1 perspective

Issue:

How unhide rows in excel?  I need to find the data for the formulas tm1rptview.

Solution:

To unhide rows in Excel is through the Ribbon:

  1. Open your spreadsheet in Excel.
  2. Click on the triangular Select All button in the upper left corner in your spreadsheet, or press CTRL + A.
  3. In the Home tab, go to the Format section > Hide & Unhide > Unhide Rows.

  • A row can look hidden if its height is set to zero, even if you didn’t hide it manually. So even if you right-click and choose Unhide, it won’t work in this case.

    Here’s how to fix this:

    1. Select the rows around the missing one.

    2. Go to Home > Format > Row Height (or right-click the row number and choose Row Height).

    3. Set the height to 15 (Excel’s default).

    4. Click OK, and the row should appear again.

  • If you have the Freeze Panes option on, try disabling it to see if the static state of panes is preventing the rows from completely showing up.
  • Filters can hide rows based on criteria, sometimes unintentionally. To remove filters:1)Go to the Data tab on the Ribbon.2) Click on “Filter” to toggle off any active filters, revealing any rows hidden by these filters.3) Removing filters can instantly bring back a significant portion of your “missing” data.

 

More Information:

https://xodo.com/blog/how-to-unhide-all-rows-in-excel 

https://www.xelplus.com/hide-unhide-excel/

https://www.simplesheets.co/blog/how-to-unhide-all-rows-in-excel

https://blog.octanesolutions.com.au/dynamizing-dynamic-reports-hacks

How to Create a List Report using a TM1 Dynamic Report

https://www.ibm.com/docs/sl/planning-analytics/2.0.0?topic=wf-tm1rptrow

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=functions-tm1rptview

 

TM1RPTVIEW defines the view displayed in a Dynamic Report.

Syntax

TM1RPTVIEW(ViewID,ZeroSuppression,TM1RPTTITLE,...) 

Argument

Description

Required/Optional
ViewID A name for the view using the format server:cube:unique_id. Required
ZeroSuppression A Boolean flag to turn on or off the zero suppression property for the view. 1 = on, 0 = off Required
TM1RPTTITLE For each title dimension in the Dynamic Report, include a reference to a TM1RPTTITLE function as an argument to TM1RPTVIEW. Required
FormatRange The formatting range for the Dynamic Report. You can use a cell reference or a named range for this parameter.

When you create a Dynamic Report, a named range called TM1RPTFMTRNG is created to include all formatting range cells. You can use this named range as an argument.

Required
IDColumn The column in the Dynamic Report that contains format IDs. You can use a cell reference or a named range for this parameter.

When you create a Dynamic Report, a named range called TM1RPTFMTIDCOL is created to include all formatting range cells. You can use this named range as an argument.

Required

 

TM1RptRow sets the Active Form control row definition. The control row definition governs the behavior of all rows in the Active Form. This worksheet function is used to create Active Forms.

This worksheet function is valid in worksheets only.

Syntax

TM1RptRow(ReportView, Dimension, Subset, SubsetElements,
Alias, ExpandAbove,MDXStatement, Indentations, ConsolidationDrilling)

Argument

Description

ReportView A reference to a cell that contains a TM1RptView formula.
Dimension A dimension, specified using the format tm1_server_name:dimension_name.
Subset A named subset. If this argument is empty, all elements of the dimension will be used.
SubsetElements A cell range reference that specifies a list of elements to constitute a subset.

When this argument is supplied, the named subset specified by the Subset argument is ignored.

If this argument is empty, the elements from the subset specified by the Subset argument are used.

Alias A string that defines the alias used for the subset.

When this argument is supplied, it overrides the default alias property defined by the subset specified by the Subset argument.

If this argument is empty, the alias from the subset specified by the Subset argument are used.

ExpandAbove A Boolean flag to turn on or off the subset Expand Above property. When this argument is supplied, it overrides the default Expand Above property defined by the subset specified by the Subset argument.

If the argument value is 1, consolidated elements expand upward when drilling.

If the argument value is 0, consolidated elements expand downward when drilling.

If this argument is empty, the Expand Above property from the subset specified by the Subset argument is used.

MDXStatement An MDX statement that applies to the subset specified by the Subset argument.

When this argument is supplied, it overrides the default MDX filter defined by the subset specified by the Subset argument.

If this argument is empty or omitted, the elements from the subset specified by the Subset argument are used.

Indentations An integer value to indicate how many indentations are applied to each level when drilling down on a consolidated element. If the argument value is 0, no auto-indentation is performed.

This is an optional argument. When the value is missing, one indentation is applied to each level as you drill down on a consolidated element.

ConsolidationDrilling A Boolean flag to turn on or off drilling on consolidated elements.

When this argument value is 1, users can drill down on consolidated elements in the Active Form.

When this argument value is 0, users can not drill down on consolidated elements in the Active Form.

This is an optional argument. When the argument is missing, the default behavior is to allow drilling on consolidated elements.

Product:

Planning Analytics 2.1.14

Microsoft Windows 2022 server

Issue:

CUB file size does not shrink when we remove a dimension element, like a year from a cube. Why?

Solution:

You need to update a data value in the cube, for TM1 to recognize the data change, and then after you do a SaveDataAll the cub file is smaller.

 

More Information:

https://www.ibm.com/docs/en/planning-analytics/2.1.0?topic=functions-savedataall

You have to do a data (not metadata) change that “flags” to TM1 whether it needs to re-save a particular cube. If there has been no change flagged since the last data save, then the cube will not be saved even if you do a Save All. This is a time saving feature, since it would be pointless for TM1 to re-save each and every cube regardless of whether it had changed. After all, the save process is often the primary performance bottleneck. You don’t actually lose much by retaining the data in the .cub file; all that will happen upon startup is that the data that no longer has a valid element will fail to load.

The deletion of data via the deletion of elements is not (flagged as) an actual data change. (Were it otherwise, after each metadata change the server would need to somehow go through and see whether any populated cells had been lost, which would be a ridiculously time consuming task.) Consequently the cube would not be flagged for a save after you made your change, and thus it retained the same size. If you checked the time and date of the .cub file it would have been from the save prior to you deleting the elements.

Remember that the RAM TM1 reports to the OS as being “in use” is just the RAM it has reserved for use. TM1 doesn’t tend to give back RAM that it has allocated (again, a bias toward speed and not efficiency), so you’re unlikely to see a drop in reserved RAM, even if it is no longer used.

 

https://exploringtm1.com/tm1-file-extensions-understand-the-files-in-your-tm1-model/

https://blog.octanesolutions.com.au/tm1-object-extensions

https://www.ibm.com/docs/en/planning-analytics/2.1.0?topic=SSD29G_2.1.0/com.ibm.swg.ba.cognos.tm1_dg_dvlpr.2.0.0.doc/c_tm1_dev_ob_app_on_svr_n5730.htm

https://exploringtm1.com/tm1-health-how-to-keep-your-tm1-server-optimized/ 

https://www.linkedin.com/pulse/limits-tm1-christoph-hein

Product:

Planning Analytics Workspace

Microsoft Windows 2022 server

Issue:

Check if port is used by docker or other process?

Solution:

On the PAW server login and start the CMD prompt;

Enter below to check if port 53 (default port for docker is used)

 netstat -ano | findstr ":53"

the ‘LISTENING’ status means it’s in use, and the PID (Process ID) shows which application, which you then check with tasklist /fi “PID eq [PID_number]” to identify the service.

 

Ensure that all ports in paw.ps1 file is open in the local firewall on the PAW server to ensure smooth operation.

More information:

https://learn.microsoft.com/en-us/windows-server/networking/dns/network-ports

https://simpledns.plus/kb/47-error-message-could-not-start-dns-service-on-ip-address-port-53-udp-port-is-used

https://kb.synology.com/en-global/DSM/tutorial/Whether_TCP_port_is_open_or_closed

https://www.ninjaone.com/blog/how-to-find-dns-servers-used-in-windows-11/