-
Notifications
You must be signed in to change notification settings - Fork 3
Upgrade Guide
Follow these steps to upgrade Bedrock 5.
- In this repository, go to the
installation_filesfolder. - Download the file
bedrock-v11.json. - Upload
bedrock-v11.jsonto the TM1 Database File Manager.- For navigation steps, see Step 3 in the Installation Guide.
Create a new TurboIntegrator process in IBM Planning Analytics with the following configuration:
Add 11 string variables in this exact order:
v1v2v3v4v5v6v7v8v9v10v11
Paste the following code:
sError = '';
sAuthenticationMode = 'BASIC_API_KEY';
# BASIC API KEY AUTHENTICATION PARAMETERS
user = 'apikey';
password = '<api_key_value>';
region = '<region>';
tenant_id = '<tenant_id>';
database_name = '<database_name>';
base_url = 'https://'|region|'.planninganalytics.saas.ibm.com/api/'|tenant_id|'/v0/tm1/'|database_name;
auth_url = '';
##########################################################################################
# Region - _construct_service_and_auth_root (Convert Python to TI)
##########################################################################################
# Region - _construct_all_version_service_and_auth_root_from_base_url (Convert Python to TI)
sEndsWith = '/api/v1';
nEndsWith = LONG( sEndsWith );
IF( SCAN( 'api/v1/Databases', base_url ) <> 0 );
IF( auth_url @= '' );
sError = 'Authentication Method was determined to be: "' | sAuthenticationMode | '" and base_url includes "api/v1/Databases", which requires "auth_url". However, "auth_url='|auth_url|'".';
LogOutput( 'ERROR', sError );
ProcessBreak();
ENDIF;
ELSEIF( SUBST( base_url, LONG( base_url ) - nEndsWith, nEndsWith ) @= sEndsWith );
auth_url = base_url | '/Configuration/ProductVersion/$value';
ELSE;
base_url = base_url | sEndsWith;
auth_url = base_url | '/Configuration/ProductVersion/$value';
ENDIF;
# EndRegion
##########################################################################################
# EndRegion
##########################################################################################
base_url = base_url | '/Processes';
# List of Keys required for a Process to be created from HTTP Request
sJsonKeyList = '[
"Name",
"PrologProcedure",
"MetadataProcedure",
"DataProcedure",
"EpilogProcedure",
"HasSecurityAccess",
"UIData",
"DataSource",
"Parameters",
"Variables",
"VariablesUIData"
]';
# Create the Variable Mapping based on List of Keys
sVarMapping = '{}';
nListSize = JsonSize( sJsonKeyList );
i = 0;
WHILE( i < nListSize );
sKeyName = JsonToString( JsonGet(sJsonKeyList, i ) );
sVarMapping = JsonAdd( sVarMapping, 'v' | NumberToString( i + 1 ), StringToJson ( '/' | sKeyName ) );
i = i + 1;
END;
# Datasource Variables
DataSourceJsonVariableMapping = sVarMapping;
DataSourceType = 'JSON';
DataSourceJsonRootPointer = '/data';
DatasourceNameForServer = 'bedrock-v11.json';
DatasourceASCIIQuoteCharacter = '';
➡ Update lines 6–9: Replace:
<api_key_value><database_name><region><tenant_id>
with the correct values.
To locate them, see Steps 8–10 in the Installation Guide.
Paste the following code:
sStandardProcessJson = '{}';
i = 0;
WHILE( i < nListSize );
sKeyName = JsonToString( JsonGet(sJsonKeyList, i ) );
sProcessBodySection = EXPAND( '%v' | NumberToString( i + 1 ) | '%' );
sStandardProcessJson = JsonAdd( sStandardProcessJson, sKeyName, sProcessBodySection );
i = i + 1;
END;
sProcessName = JsonToString( JsonGet( sStandardProcessJson, 'Name' ) );
TextOutput( 'bedrock_process_comparison.txt', sProcessName );
ExecuteHttpRequest( 'GET', base_url | '(''' | sProcessName | ''')', '-u '|user|':'|password, '-h User-Agent:BedrockInstaller', '-h Content-Type:application/json; odata.streaming=true; charset=utf-8', '-h Accept:application/json;odata.metadata=none,text/plain', '-h TM1-SessionContext:BedrockInstaller', '-k' );
sCurrentProcessJson = HttpResponseGetBody(); nStatusCode = HttpResponseGetStatusCode();
sPrcoessPartsList = '[
"Name",
"PrologProcedure",
"MetadataProcedure",
"DataProcedure",
"EpilogProcedure",
"DataSource",
"Parameters",
"Variables"
]';
nPrcoessPartsListSize = JsonSize( sPrcoessPartsList );
nDifferent = 0;
i = 0;
WHILE( i < nPrcoessPartsListSize );
sKeyName = JsonToString( JsonGet( sPrcoessPartsList, i ) );
sStandardProcessJsonSection = JsonGet( sStandardProcessJson, sKeyName );
sCurrentProcessJsonSection = JsonGet( sCurrentProcessJson, sKeyName );
IF( JsonTest( sStandardProcessJsonSection, sCurrentProcessJsonSection ) = 0 );
TextOutput( 'bedrock_process_comparison.txt', sKeyName );
nDifferent = 1;
ENDIF;
i = i + 1;
END;
IF( nDifferent = 0 );
TextOutput( 'bedrock_process_comparison.txt', 'NO DIFFERENCE' );
ENDIF;
TextOutput( 'bedrock_process_comparison.txt', '' );
-
Save and run the process.
-
Open
bedrock_process_comparison.txtto see which processes differ.This file provides a comprehensive list of all Bedrock process differences. If there are no differences for a given process, it will be marked "NO DIFFERENCE" below the process name. If differences exist, only the specific components that differ will be listed.
The process components that may differ include:
- PrologProcedure
- MetadataProcedure
- DataProcedure
- EpilogProcedure
- DataSource
- Parameters
- Variables
-
Navigate back to the
installation_filesfolder in this repository. -
Download the file
bedrock.json. -
Inside that file, locate the
"data"key — this is a JSON array. -
In the array, find any JSON object where
"Name"equals the process you do not want to overwrite. -
Remove that JSON object from the array.
For help with JSON structure, see JavaScript JSON Basics.
Return to Step 3 in the Installation Guide and proceed with the standard installation steps.