Community perspective: Monitor activity in your models using an action log
Model actions are a useful tool when it comes to automating routine tasks in Anaplan. They enable a wide range of applications such as data integration, list management, or model maintenance. To keep track of action-related activity in a model, we can rely on the Start Date and Time (UTC) column in the Actions pane:
A limitation of this table, however, is that the timestamp displayed only reflects the last instance when a process or action was run. The full details are available in the Model History, but it is only accessible to Workspace Admins and downloading it can lock other users out for extended periods. This article presents a method for creating an Action log by inserting a custom Import action in existing processes.
1. Action log list
The first step is to create a new numbered list (e.g. FL – Log#) that we will use to store the log entries:
Along with the list we need to need to create a set of properties that will hold the metadata associated with each log entry:
At this stage the module LOG01 does not exist so the formula for Display Name will have to be completed after the next step is done.
2. Action log module
The action log module (e.g. LOG01 – Log Properties) displays the properties of each log entry and will constitute the user-facing output of the log to be displayed in dashboards and pages.
Notice the Last non-blank summary method for Item field, which will come in handy when snapshotting KPIs.
3. New log entry module
This module (e.g. LOG02 – New Log Entry) is the source of the import actions that will add new entries to the action log list. It is dimensioned using the Users list so we can keep track of which user is running the process.
In the blueprint view, make sure to set the Users List property to: “Show All Users: Off”
If your model does not have the current date (e.g., SYS02 – Time.Today), you can refer to this community article on how to implement it using CloudWorks: Easily Get Current Date Using CloudWorks - Anaplan Community
The formula for the Code line item generates a Text value using the format: yyyy-mm-dd:# where # corresponds to the number of entries for a given day. For example, if there are 2 log entries on 2022/10/19, the code for the first one shall be 2022-10-19:1 while the code for the second one shall be 2022-10-19:2.
TEXT(YEAR(Date)) & "-" & TEXT(MONTH(Date)) & "-" & TEXT(DAY(Date)) & ":" & TEXT('LOG03 - Log Entries x Day'.Count[LOOKUP: Date] + 1)
To count the number of entries for each day, we rely on a separate module (e.g., LOG03 – Log Entries x Day) that uses the numbered list and a daily time scale as dimensions:
Back in the LOG02 module, we need to create distinct line items for each type of action that we intend to track in the Action Log. In this example, we are set up to track integrations with the Accounting and HRIS systems. Any action that can be run by including it in a Process can be monitored using this method:
4. New log entry import actions
To prepare for the import action, we create a saved view in the LOG02 module with users as rows and line items as columns:
A separate view is needed for each process we intend to track in the log. The only difference between the views is the line item mapped to the Action property, which holds the description that will appear in the log (e.g., Action: Update P&L Actuals from Accounting).
Finally, we create a new Import action into the numbered list from the newly created saved view and insert it in the process we want to include in the log.
5. Optional: KPI snapshotting
Beyond tracking the simple execution of a process, the numbered list can be used as a dimension in a snapshot module where we import current values every time a process is run.
For example, if we want to log the quarterly totals for this P&L:
- a module (e.g. P&L02 – P&L Log) with the line items we want to snapshot and the numbered list as dimension:
- a saved view in the P&L01 module that will serve as the source for the import:
Note the formula for the Current Log Entry line item which relies on the property we have created earlier in the LOG01 module. It shows as a subsidiary view because the Time Scale has been set to Not Applicable (it is the same value regardless of the quarter).
- An import action that maps the saved view with the P&L02 module:
By including this import action in existing processes, we can take a snapshot of the P&L every time said process is run: