Implementing Enhanced Business Function Logging in TM1
Posted: Mon Mar 07, 2022 9:59 pm
Hi,
In this topic, I am going to share with you an approach that I have been using for years in order to implement Enhanced User Action Logging in TM1 Models.
I have a cube called User Action Logging with 3 DImensions: User Action, Line Item and a Measure dim: Also I create a cube with }Processes as one of my dimensions, another dimension to be used to map the Process Name to a User Friendly User Action Name and also names of all Parameters (up to 30 params) used in the process. In the cube above (zSYS - ControlProcesses), the first 5 Items are populated manually, and the Parameter Items are loaded with a TI Process, which parses the respective PRO File of the process to identify the Param Names used in the process. The process is parameterized and it should be executed only if the process parameter names have changed. Usually after the Process is deployed.
In all the Processes that get executed by a user or admin, there is a section of Generic Code in Prolog Tab and another generic section in Epilog, which captures the values of each parameter (Thanks to EXPAND Function) and it stores them in the next line item available (Up to 1000 Line Items and once the Last Line Item is filled, it will re-use Item 1 again)
In the User Interfaces (Websheets) I show the Last Execution Time Stamp, and I have established Dill Rules and Drill Processes to show the User the details of each execution: The approach explained here has helped our users (and myself) a lot to troubleshoot production issues and I thought some other people from this forum might find it useful.
In this topic, I am going to share with you an approach that I have been using for years in order to implement Enhanced User Action Logging in TM1 Models.
I have a cube called User Action Logging with 3 DImensions: User Action, Line Item and a Measure dim: Also I create a cube with }Processes as one of my dimensions, another dimension to be used to map the Process Name to a User Friendly User Action Name and also names of all Parameters (up to 30 params) used in the process. In the cube above (zSYS - ControlProcesses), the first 5 Items are populated manually, and the Parameter Items are loaded with a TI Process, which parses the respective PRO File of the process to identify the Param Names used in the process. The process is parameterized and it should be executed only if the process parameter names have changed. Usually after the Process is deployed.
In all the Processes that get executed by a user or admin, there is a section of Generic Code in Prolog Tab and another generic section in Epilog, which captures the values of each parameter (Thanks to EXPAND Function) and it stores them in the next line item available (Up to 1000 Line Items and once the Last Line Item is filled, it will re-use Item 1 again)
In the User Interfaces (Websheets) I show the Last Execution Time Stamp, and I have established Dill Rules and Drill Processes to show the User the details of each execution: The approach explained here has helped our users (and myself) a lot to troubleshoot production issues and I thought some other people from this forum might find it useful.