Skip to main content

MicroStrategy: Event Triggered Intelligent Cube Refresh

I recently had a need to trigger Intelligent  Cube refresh based on a certain event. That certain event was ETL completion. My ETL writes begin and end times to a log. I could easily have a service run that would periodically monitor the log and refresh the Intelligent Cube.

That seems to be too much of an overhead when I can simply call the Command Manager to execute the cube refresh from the ETL.

Image Source: https://www.rubiks.com/solve-it/3x3
Image Source: https://www.rubiks.com/solve-it/3x3



You will need to create a MicroStrategy Event, MicroStrategy Schedule, schedule Intelligent Cube Refresh, create Script file, create Batch file and that pretty much sums it all!

Create an Event
Select New, Event and name it – Events are an empty object - as in they do not do anything, it is just an empty shell. Call this event a proper name. In my case, it is aclled Batch Cube Refresh - Short Form.




Create a Schedule that uses the new Event
Select New > Schedule

Name the schedule, in my case 'Batch Cube Refresh'

Click Next and select Event Triggered

Click Next and assign appropriate Start and End date/times

Click Next and Select the event to Trigger (one that you created in previous steps)

Click Next and then Finish



Schedule The Intelligent Cube To Be Refreshed

Right click on the Intelligent Cube and select Schedule Delivery To > Refresh Cube

Under Schedule, select the schedule name that we created above


Batch Statement

Next, we need a script for the Batch file (.bat) to run from SQL Server. This batch file will execute a Script (.scp) via Command Manager. Note: You might need to install Command Manager on the server/machine where the batch file will be executed.

Script File (.scp):
CONNECT SERVER "BizIntServerNameHere" USER "Administrator" PASSWORD "P4ssw0rdHere";
TRIGGER EVENT "Your Event Name From Above Steps Here"; 
DISCONNECT SERVER;

Batch File (.bat):
cmdmgr -connlessmstr -f "\\Fully Qualified Path\ScriptFileName.scp" -o "\\Fully Qualified Path\Output FileName Of Your Choice.log"



Executing Batch File

Execute the Batch File that we created above as the last step of your ETL process.


SUCCESS!




Comments

Unknown said…
Very useful information.thank you for sharing Microstrategy Online Training
Lavanya said…
Thank you for sharing wonderful information with us to get some idea about that content.
Microstrategy Certification
Microstrategy Online Training Hyderabad
Lavanya said…
with us to get some idea about that content.Thanks for sharing
Microstrategy Certification
Microstrategy Online Training Hyderabad

The Popular Ones

Using SQL To Calculate XIRR (Internal Rate of Return)

Thanks to binaryworld.net , I was finally able to get a sql way to calculate XIRR. After 2 long hours of search I found this site and the logic as well as the code works perfectly well! XIRR is a function in excel that calculates Internal Rate of Return based on payments/income over a period of time. Without further ado, here is the code (a slightly modified version from BinaryWorld.net. Happy XIRRing! -- First, CREATE XIRR Table to store values CREATE TABLE XIRRTempData( amt float, dt datetime, guid varchar(128) ) go create function dbo.XIRR( @d datetime, @GUID varchar(128) ) returns decimal(18,10) as begin /* USAGE: select @IRR = dbo.xirr(null, guid) select @IRR IRR, @IRR * 100 'IRR %' Note: Leave the first parameter (date) null if you wish to see the XIRR calculated as of the maximum date in the dataset provided else provide a specific date to see the XIRR calculated as the given date. Created By: Ankeet Shah Created On: 7/16/2008 */ IF @d is null SELECT @d = max(d) from Inc

Alternating Row Background Color For SSRS Matrix (Pivot Table)

I had a tough time to apply alternate row colors to a SSRS Matrix and finally figured out! Without further ado, here it is... Assume you have a matrix with more than 1, lets say 2 row groupings; RG1 and RG2. 1. Right-click on RG2 (innermost row group), and select "Insert Group"; for simplicity call it "RowColorGroup" 2. In the "Group On" section, add some constant value - for example ="" or ="ankeet" etc... you get the idea! 3. Select the newly created group "RowColorGroup" and enter the following in its "Value" property: =iif(RunningValue(Fields!RG1.Value & Fields!RG2.Value,CountDistinct,Nothing) Mod 2, "LightSteelBlue", "White") 4. Select the "BackgroundColor" property of "RowColorGroup" and enter "=Value" 5. Set the width of "RowColorGroup" to 0pt and "CanGrow" to false 6. Select the data cell(s) and set their "BackgroundColor" pro

cannot create a column accessor for OLE DB provider "ibmdasql" for linked server

I have a linked server from Microsoft SQL 2008 to a DB2 server. Today when I tried to run a SELECT statement based on the linked server, I hit this error, "cannot create a column accessor for OLE DB provider "ibmdasql" for linked server". Earlier in the day, we had restarted the SQL Server Service. Running the following script on the 'affected' sql server should fix the issue. USE [master] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[usp_enum_oledb_providers] AS exec sp_enum_oledb_providers GO sp_procoption 'usp_enum_oledb_providers', 'startup', 1 Restart the sql server service after running above script.