Product:

Microsoft SQL 2019 server standard
Microsoft Windows 2022 server datacenter

Issue:

How take a backup that does not affect the night differentiation backups etc ?

Solution:

Take a full backup and select copy-only backup in general.

In this example, a copy-only backup of the test database is backed up to disk at the default backup location.

  1. In Object Explorer, connect to an instance of the SQL Server Database Engine and then expand that instance.
  2. Expand Databases, right-click test, point to Tasks, and then select Back Up….
  3. On the General page in the Source section, check the Copy-only backup checkbox.
  4. Select OK.

 

 

More Information:

https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/copy-only-backups-sql-server?view=sql-server-ver16

https://www.mssqltips.com/sqlservertip/1772/copy-only-backup-for-sql-server/ 

https://www.ninjaone.com/blog/copy-only-backup-in-sql-servers-explained/ 

Product:
Planning Analytics 2.0.9.18
Microsoft Windows 2019 server

Issue:

Error in TI process when run at random times.

Suggested solution:

Error: Prolog procedure line (9): Unable to register subset
Can be that the destroy of the subset did not work, as a view is around using that subset.
Check what views you have open.

Error: Prolog procedure line (103): Subset “xxx” not found in dimension “Period”
Can be that the subset is not around anymore, the subset have already been deleted.
Can be if you use the SubsetCreate(‘Region’, ‘Northern Europe’, 1);
Change to 0 (zero) in the TI process and see if that helps.

SubsetCreate(DimName, SubName, [AsTemporary]);

AsTemporary
This is an optional argument that specifies whether the subset being created is temporary. 1 indicates a temporary subset, 0 indicates a permanent subset. If this argument is omitted, the subset is permanent.

 

More Information:

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

https://www.ibm.com/support/pages/unable-register-subset-error-when-creating-dynamic-subset-data-tab-ti 

 

Product:
Planning Analytics 2.0.9.18
Microsoft Windows 2019

Issue:
The time value in log file is not correct.

Solution:

Add

# Specify GMT or Local timezone
log4j.appender.S1.TimeZone=Local

to your tm1s-log.properties file that should be in the same folder as your tm1s.cfg file.

This should give you have logfiles with same time stamp as the clock on the server.

To test create a TI process with this in PROLOG:

 

In the log file you will see lines like this:

13972 [4a] INFO 2023-11-03 15:17:41.836 TM1.TILogOutput This is the end of the process !!!
13972 [4a] INFO 2023-11-03 15:17:41.836 TM1.Process Process “S. 10 Test of time value”: finished executing normally, elapsed time 0.02 seconds
When GMT is set, the time in the logfile will be ENGLISH TIME (GMT), and depending on time difference it will differ from the server time. Check https://24timezones.com/difference/gmt/stockholm
15296 [4a] INFO 2023-11-03 16:27:43.826 TM1.TILogOutput This is the end of the process !!!
15296 [4a] INFO 2023-11-03 16:27:43.826 TM1.Process Process “S. 10 Test of time value”: finished executing normally, elapsed time 0.00 seconds

With Local set in the file – the time in the logfile should be the same as the windows server clock.

In the text file will the time be shown as above – this is always the computer time of the server. Function NOW give the server time.

The Chore is run at local time when you select local. If UTC is selected it will run at the GMT time shown.

18032 [4] INFO 2023-11-04 07:14:29.923 TM1.Chore Registering chore: “S. 10 test of time” Start time: 2023/11/04 06:15:45 Frequency: 01:00:00:00
15736 [] INFO 2023-11-04 07:15:45.050 TM1.Chore Chore “S. 10 test of time” executed by scheduler

15736 [] INFO 2023-11-04 07:15:45.050 TM1.Process Process “S. 10 Test of time value” executed by chore “S. 10 test of time”
15736 [] INFO 2023-11-04 07:15:45.053 TM1.TILogOutput This is the end of the process !!!
15736 [] INFO 2023-11-04 07:15:45.053 TM1.Process Process “S. 10 Test of time value”: finished executing normally, elapsed time 0.00 seconds
15736 [] INFO 2023-11-04 07:15:45.053 TM1.Chore Chore “S. 10 test of time” time = 0.00 seconds
15736 [] INFO 2023-11-04 07:15:45.054 TM1.Chore Chore “S. 10 test of time” finished executing

Recommend to use Local time setting in chores, if you do not have servers in different time zones.

The line in log file for when you set the start time will always be in GMT time, like Registering chore: “S. 10 test of time” Start time: 2023/11/04 06:25:45 Frequency: 01:00:00:00, even do you have selected local server time in the chore and choose to start at 7:25 AM.

To setup a chore:

  1. In the Server Explorer, select the Chores icon beneath the server on which you want to create the chore.
  2. Choose ChoresCreate New Chore.

    The Chore Setup Wizard opens.

  3. In the Available list, select the process for which you want to create a chore.
  4. Click the right arrow icon.
  5. Click Next.
  6. Click a date on the calendar to specify a start date for the initial execution of the chore.
  7. Enter a time to specify the start time for the initial execution of the chore.
  8. Set the fields in the Chore Execution Frequency box to define the interval at which the chore is executed.
  9. Select a Run Chore Time option.
    • Local Server Time – Runs at the local server time, including during Daylight Saving Time/Summer Time periods.
    • UTC Time – Always runs at UTC, regardless of local Daylight Saving Time/Summer Time.
  10. Fill the Chore Schedule is Active box.
  11. Click Finish.

    The Save Chore As dialog box opens.

  12. Enter a name for the chore and click Save.

 

More Information:

https://exploringtm1.com/changing-tm1-server-log-time-zone-stamp/ 

https://everanalytics.wordpress.com/2015/07/23/write-to-tm1server-log-file-from-turbo-intergrator-ti-process-in-cognos-tm1/ 

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

https://exploringtm1.com/date-and-time-functions-for-easy-date-manipulation/ 

https://www.ibm.com/docs/el/planning-analytics/2.0.0?topic=turbointegrator-scheduling-process-automatic-execution-chores 

https://tm1up.com/9-chores-in-tm1.html 

How to set up Turbo Integrator Chores to run Advanced Scheduling

https://www.bihints.com/pushing-data-iseries-tm1 

Product:
Cognos Analytics 11.1.7
Microsoft Windows 2019

Problem:

User can not login to CA11, they get a blank page or spinning icon.

Possible Solution:

Ensure the user URL they enter in the web browser end with / and not only /bi

Valid URL for Cognos:

http://servername.domain.com/ibmcognos/bi/

http://servername.domain.com/ibmcognos/bi/v1/disp/

NOT valid URL:

http://servername.domain.com/ibmcognos/bi

The last word in the URL is considered a file, that need to exist, in that folder (D:\Program Files\ibm\cognos\analytics\webcontent) – if the URL does not end with /.

 

 

Clear the cache in the users web browser or try a different web browser like chrome.

If it does not help, check the cognos server log file for more information: D:\Program Files\ibm\cognos\analytics\logs\cognosserver.log

More Information:

https://www.ibm.com/support/pages/how-set-sample-custom-login-page-ca-112x 

https://www.ibm.com/docs/en/cognos-analytics/11.1.0?topic=settings-defining-authentication-parameters-login-urls 

https://pmsquare.com/analytics-blog/2023/6/13/the-ultimate-guide-to-cognos

https://www.ibm.com/docs/en/cognos-analytics/11.1.0?topic=gateway-configure-cognos-analytics-your-web-server

https://www.ibm.com/support/pages/blank-screen-when-logging-https-enabled-cognos-analytics-1117-environment

https://www.ibm.com/docs/en/cognos-analytics/11.1.0?topic=services-configuring-iis-in-cognos-analytics

Product:
Planning Analytics Workspace version 88

Issue:

How to select the lowest leaf members in the subset editor in workspace?

Suggested Solution:

On the left side, select all leaves to list only the members.

Click on replace icon, to move all selected on left to the right, and replace any previous values there.

Click Apply to update the view with the new subset.

 

More Information:

https://pmsquare.com/analytics-blog/2022/5/5/new-cube-viewer-set-editor-in-planning-analytics 

https://revelwood.com/ibm-planning-analytics-tips-tricks-new-parameters-for-turbo-integrator/ 

https://community.ibm.com/community/user/businessanalytics/blogs/stuart-king1/2021/12/13/planning-analytics-workspace-new-cube-viewer-and-s 

Product:

Microsoft SQL server Azure

Issue:

How to sum the amount in one column?

Solution:

Inside SSMS enter this, to sum column [amount] all rows that have active=”y’ and date = 20221201.

SELECT SUM(amount)
FROM [DM].[table1]
where [Active] = 'Y'
and [sDate] = '20221201'

 

To list all rows from two identical tables, including duplicates enter:

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2

 

List number of rows from a table, from a selection:

select count(*)
FROM [DM].[table1] WHERE [Active] = 'Y'

 

How copy a number of rows into a new table:

SELECT *
INTO [DM].[table1]
FROM [DM].[table2]
WHERE [active] = 'N';

 

More information:

https://www.w3schools.com/sql/sql_sum.asp

https://www.w3schools.com/sql/sql_union.asp

https://www.w3schools.com/sql/sql_update.asp

Product:
Planning Analytics Workspace Version 88
PAA Agent version 2.0.88.1607  ( version found in file D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\version.txt)

Issue:

Planning Analytics Workspace Administration page can not display information about the TM1 instances.

You need to check the PA Administration Agent log files to get more information.

The message.log files are found in folder D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\logs on the TM1 server.

You have some TM1 instance that there name is shown in garbage character – you are probably using a character only used in your language, and not in English.

Even that you stop your TM1 instance with the none-english name, the PAW administration page does not give you access to the other TM1 instances.

Error message in log file:

[10/6/23 9:30:58:542 CEST] 00000069 SystemErr R ERROR:status.py:Exception while getting windows registry details:
Traceback (most recent call last):
File “kateagent/scripts\status.py”, line 904, in get_win_registry_detail_batch
p = subprocess.Popen([“powershell.exe”, service_cmd],
File “D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\apps\expanded\PA_KATE_AGENT.war\WEB-INF\lib\jython-standalone-2.7.2.jar\Lib\subprocess.py”, line 892, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File “D:\Program Files\ibm\cognos\tm1_64\paa_agent\wlp\usr\servers\kate-agent\apps\expanded\PA_KATE_AGENT.war\WEB-INF\lib\jython-standalone-2.7.2.jar\Lib\subprocess.py”, line 1361, in _execute_child
args = [fileSystemDecode(arg) for arg in args]
UnicodeDecodeError: ‘utf-8’ codec can’t decode bytes in position 437-438: invalid data
[10/6/23 9:30:58:542 CEST] 00000069 com.ibm.pa.kate.agent.scheduler.ScheduledTask E Error occurred while updating the server info json file
Traceback (most recent call last):
File “kateagent/scripts\status.py”, line 1025, in <module>
configPaths = get_win_registry_detail_batch(allServers)
File “kateagent/scripts\status.py”, line 922, in get_win_registry_detail_batch
return mapped
UnboundLocalError: local variable ‘mapped’ referenced before assignment

 

Suggested Solution:

The PAA agent will run a python script status.py to check for what Tm1 instance exist and other information, on line 922 it will read the windows registry to find the started TM1 instances – in key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services – check at that location in REGEDIT.EXE program. If there is any non-english character, like in service name or “DisplayName”=”IBM Cognos TM1 Server … then this can be the issue.

The error say it found a character that it can not understand with UTF-8, and therefor have problem scanning for more information.

Inside Cognos Configuration for Planning Analytics, remove the application with the strange name, and register it again with a name that only use English characters.

It can be that you have created the TM1 instance from the command prompt and not from the Cognos Configuration program, then it can be registered with wrong codepage.

Like;

tm1sd.exe -install -n”TM1 Production Server” -z”C:\Program Files\Cognos\TM1\Custom\TM1Data\PData”

Check that the values in registry is readable, and then restart the kate-agent (IBM Planning Analytics Administration Agent)

More information:

https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/ 

https://www.ibm.com/docs/en/planning-analytics/2.0.0?topic=rtso-setting-up-tm1-server-run-as-windows-service 

https://www.ibm.com/support/pages/setting-tm1-server-run-service 

The python code to find the information;

def get_win_registry_detail_batch(service_names):
paths = []
for n in service_names:
paths.append("'HKLM:\SYSTEM\CurrentControlSet\Services\{}'".format(n))
service_cmd = "Get-ItemPropertyValue -Path {} -Name ConfigPath".format(", ".join(paths))
try:
p = subprocess.Popen(["powershell.exe", service_cmd],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out, err = p.communicate()
vettedResults = [line.strip()
for line in out.replace('\r', '').split('\n')
if line != '' and re.match(r'^.:\\', line)]
mapped = zip(service_names, vettedResults)
if p is not None and p.poll() == None:
p.kill()
if err and out is None:
logger.error('Error while getting windows registry details: {}'.format(err))
except Exception as e:
logger.exception('Exception while getting windows registry details: {}'.format(e.message))
return mapped

 

 

Product:

Planning Analytics Workspace

Problem:

List of versions that match other parts like the server and the workspace.

Solution:

Check the web for a list of matches.

https://www.ibm.com/support/pages/node/6519826

 

 

*IBM recommends that those who use Custom Reports and Dynamic Reports upgrade to Planning Analytics for Excel 2.0.89 immediately. For more details, see this Flash Alert.

*IBM recommends that customers upgrade to Planning Analytics Local 2.0.9.18. For more details, see this Flash Alert.

The version of PAW to use with PAX is the same version number or one above or one below. For example, if you have PAX version 2.0.50 installed, then use PAW version 2.0.49, 2.0.50 or 2.0.51.

New version for Planning Analytics Workspace, Planning Analytics for Excel comes out every 15-40 days, for Planning analytics new version comes out every 3-6 months.

 

More Information:

https://exploringtm1.com/planning-analytics-version-management/ 

https://www.tm1forum.com/viewtopic.php?t=16128 

https://blog.octanesolutions.com.au/pa-paw-pax-version-conformance

Product:
Planning Analytics workspace version 88
Microsoft Windows 2019 server

Issue:

OS report that all memory is used on the Windows server.

Solution:

First check the task manager to find what application is eating the memory.

It can be the anti-virus program is using all memory. If registry or msmpeng.exe is using all page pools then that can be that (anti-virus) program who is using all memory.

Exclude the TM1 PAW folders from the anti-virus scanning and restart the windows server.

D:\Docker

D:\PAW88

C:\ProgramData\docker

C:\Program Files\docker

 

The docker program is listed as dockerd.exe in task manager.

More information:

https://www.minitool.com/news/microsoft-defender-antivirus-service-high-memory.html 

https://www.ibm.com/docs/en/SSD29G_2.0.0/com.ibm.swg.ba.cognos.tm1_prism_gs.2.0.0.doc/tm1_prism_gs.pdf 

https://exploringtm1.com/planning-analytics-workspace-scripts/ 

Product:

Microsoft SQL Azure

Issue:

Want a new column on a table, that is needed only for the SP.

Want two column to be a new one, so we do not need to join on the two columns later.

Suggested Solution:

In a separate query , that you run before your SP,  check if the column exist and if not create it with SQL like this:

IF COL_LENGTH('[Stage].[tablename]','cDate') IS NOT NULL
PRINT 'Column Exists';
ELSE
BEGIN;
ALTER TABLE [Stage].[tablename] ADD cDate AS ( Year + '-' + Month + '-01') PERSISTED;
END;

Or even this will work:

IF COL_LENGTH('[Stage].[tablename]','cDate') IS NULL
BEGIN;
ALTER TABLE [Stage].[tablename] ADD cDate AS ( Year + '-' + Month + '-01') PERSISTED;
END;

You can find out better SQL to this problem.

Should give a new column with data:  2023-09-01, if the Year contain 2023 and Month contain 09.

Then you can compare a date formatted column with your cDate column.

PERSISTED will store the value of the calculation in the table, so it does not need to be calculated when asked for later.

More Information:

https://learn.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-ver16 

https://www.sqlshack.com/an-overview-of-computed-columns-in-sql-server/ 

SQL Server Computed Columns

https://database.guide/add-a-computed-column-to-an-existing-table-in-sql-server/ 

https://www.sqlservercentral.com/articles/using-computed-columns 

https://www.tsql.info/ex/sql-check-if-column-exists-in-a-table.php 

https://www.geeksforgeeks.org/how-to-check-if-a-column-exists-in-a-sql-server-table/ 

https://blog.sqlauthority.com/2017/07/29/sql-server-check-column-exists-sql-server-table/ 

https://www.sqlshack.com/sql-if-statement-introduction-and-overview/