mooW
=mooW(“[VARIABLE_NAME]([DIMENSION1_NAME] '[DIMENSION_VALUE]')”, [VALUE], [OPTION])
Enables cell based write back of data to an Oracle OLAP variable within an Analytic Workspace.
Syntax
=mooW("[VARIABLE_NAME]([DIMENSION1_NAME] '[DIMENSION_VALUE]')", [VALUE], [OPTION])
Return Value
OBJECT
Arguments
The mooW function is called through three arguments:
Qualified Data Reference
The first component is a qualified data reference indicating a unique triangulated coordinate within an Oracle OLAP Analytic Workspace variable.
=mooW("UNITS_CUBE_COST ( customer 'ACCOUNT_BAVARIAN IND' TIME 'MONTH_2006.02' channel 'TOTAL_TOTAL' product 'TOTAL_TOTAL')", 10, 0)
In the example above we are triangulating within the UNITS_CUBE_COST to a single cell, the intersection of the specified Customer, Channel, Time and Product dimensions.
User Supplied value.
This is the value you wish to upload to the specified intersecting co-ordinates within the OLAP variable.
=mooW("UNITS_CUBE_COST ( customer 'ACCOUNT_BAVARIAN IND' TIME 'MONTH_2006.02' channel 'TOTAL_TOTAL' product 'TOTAL_TOTAL')", 10, 0)
This can be a cell reference to a value within another Excel cell, worksheet or workbook.
Option
=mooW("UNITS_CUBE_COST ( customer 'ACCOUNT_BAVARIAN IND' TIME 'MONTH_2006.02' channel 'TOTAL_TOTAL' product 'TOTAL_TOTAL')", 10, 0)
The third argument tells the mooW function what you want to do:
Option 0
Passing 0 does nothing on re-calculation of the Excel formula, other than display the value passed as the User Supplied value.
This can be useful when working disconnected from the Oracle OLAP data source.
Option 1
Passing 1 writes the User Supplied value back to the Oracle Analytic workspace variable to the intersection supplied in the Qualified Data
Reference.
Option 2
Passing 2 essentially converts the mooW function into the mooQ function and retrieves the data supplied by the Qualified Data Reference
from the intersecting co-ordinates within the Oracle OLAP Analytic Workspace variable.
Data Types permissible with mooQ
ALL (with the exception of RAW)
Example
Option 0 Show the local user supplied value
=mooW("UNITS_CUBE_COST ( customer 'ACCOUNT_BAVARIAN IND' TIME 'MONTH_2006.02' channel 'TOTAL_TOTAL' product 'TOTAL_TOTAL')", 10, 0)
Option 1 write the user supplied value back to the database
=mooW("UNITS_CUBE_COST ( customer 'ACCOUNT_BAVARIAN IND' TIME 'MONTH_2006.02' channel 'TOTAL_TOTAL' product 'TOTAL_TOTAL')", 10, 1)
Option 2 shows the database value
=mooW("UNITS_CUBE_COST ( customer 'ACCOUNT_BAVARIAN IND' TIME 'MONTH_2006.02' channel 'TOTAL_TOTAL' product 'TOTAL_TOTAL')", 10, 2)
Example Output
10
10
10
Notes
• mooW can be seen interacting with the OLAP engine through the Oracle OLAP RECAP DML statement.
• myObjectiveOLAP supports retrieving and writing of data using mooW on Oracle OLAP cubes of all dimension numbers.
• No mechanism is supplied to permanently store the written data within the Analytic workspace. This could easily be accomplished by the end-user or
developer by using a VBA macro which makes a call through the
run_nonQ function to attach the AW RW, followed by the data upload, an update; commit and a call to mooAWDetach.
Alternative controlled and audited write back is available as part the mooServer or Escendo server side products.