Craig Grady > Business-Intelligence-MicroStrategy-CommandManager-0.01 > Business::Intelligence::MicroStrategy::CommandManager

Download:
Business-Intelligence-MicroStrategy-CommandManager-0.01.zip

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

NAME ^

Business::Intelligence::MicroStrategy::CommandManager - The MicroStrategy Command Manager module

VERSION ^

Version 0.01

SYNOPSIS ^

use Business::Intelligence::MicroStrategy::CommandManager;

my $foo = Business::Intelligence::MicroStrategy::CommandManager->new();

my $fh; my $script = "script.scp"; open( $fh, ">", $script ) or die( $?, $! );

print $fh $foo->alter_report( REPORT => "Sample Report", LOCATION => '\Public Objects\Reports', ENABLECACHE => "DEFAULT", NEW_NAME => "Modified Sample Report", NEW_LOCATION => '\Public Objects\Reports\Sample Reports', HIDDEN => "FALSE", PROJECT => "MicroStrategy Tutorial" ), "\n";

$foo->set_connect( PROJECTSOURCENAME => "DEV_ISERVER_5", USERNAME => "joe101", PASSWORD => "abc123" );

$foo->set_inputfile($script); $foo->set_break; $foo->run_script;

EXPORT ^

Nothing exported by default.

DESCRIPTION ^

Use this module to create or execute MicroStrategy Command Manager scripts. Every Command Manager command is represented in this module. The syntax is for MicroStrategy Command Manager version 8.1.1 Hotfix 3. The documentation for every method includes the 8.1.1 HF3 Command Manager syntax for the command. If you are using a different version of Command Manager, please verify that your version's syntax matches the 8.1.1 HF3 syntax. The standard installation for Command Manager is C:\Program Files\MicroStrategy\Administrator\Command Manager. There is an Outlines folder in this directory. Within the Outlines folder, there is a file that corresponds to each Command Manager command. This file shows the correct syntax for your installed version of Command Manager.

LISTS OF MICROSTRATEGY OBJECTS USED IN COMMAND MANAGER SCRIPTS ^

List of Configuration Object Types

DBINSTANCE, DBCONNECTION, DBLOGIN, SCHEDULE, USER, GROUP, EVENT

List of Project Object Types

REPORT, DOCUMENT, PROMPT, SECFILTER, CONSOLIDATION, CUSTOMGROUP, DRILLMAP, FILTER, METRIC, SEARCH, TEMPLATE, FACT, HIERARCHY, ATTRIBUTE, FUNCTION, PARTITION, TABLE, TRANSFORMATION, SUBTOTAL, AUTOSTYLE

List of Special Object Types

FOLDER

List of Access Rights

VIEW, MODIFY, FULLCONTROL, DENIEDALL, DEFAULT, CUSTOM

List of Custom Access Rights

BROWSE, READ, WRITE, DELETE, CONTROL, USE, EXECUTE

{ BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY", };

List of Form Types

NUMBER, TEXT, DATETIME, DATE, TIME, URL, EMAIL, HTML, PICTURE, BIGDECIMAL

FUNCTIONS ^

new

Instantiates new object.

example: my $foo = Business::Intelligence::MicroStrategy::CommandManager->new;

set_cmdmgr_exe

Set location of command manager executable.

$foo->set_cmdmgr_exe("path_to_executable");

get_cmdmgr_exe

Get location of command manager executable.

$foo->get_cmdmgr_exe;

set_connect

Sets the project source name, the user name, and the password

        $foo->set_connect(
            PROJECTSOURCENAME => "project_source_name", 
            USERNAME          => "userid", 
            PASSWORD          => "password"
        );

set_project_source_name

Sets the project source name

$foo->set_project_source_name("project_source_name");

get_project_source_name

Gets the project source name

$foo->get_project_source_name;

set_user_name

sets the user name to be used in authenticating the command manager script

$foo->set_user_name("user_name");

get_user_name

$foo->get_user_name;

set_password

Set password

Password = Provides the password for the username.

$foo->set_password("foobar");

get_password

Get password

$foo->get_password;

get_connect

Get ProjectSourceName, Username, Password

$foo->get_connect;

set_inputfile

Inputfile = Identifies the name, and the full path if necessary, of the script file (.scp) to be executed.

If this argument is omitted, the Command Manager GUI will be launched. Probably not the behaviour you want from your script. In almost all cases, you should set this.

$foo->set_inputfile("input_file");

get_inputfile

Inputfile = Identifies the name, and the full path if necessary, of the script file (.scp) to be executed.

gets the input file

$foo->get_inputfile;

set_outputfile

Outputfile = Logs results, status messages, and error messages associated with the script.

Use of the output file switch precludes use of break switch and the results file switch.

$foo->set_outputfile("output_file");

get_outputfile

Outputfile = Logs results, status messages, and error messages associated with the script.

Use of the output file switch precludes use of break switch and the results file switch.

$foo->get_outputfile;

set_resultsfile

RESULTSFILE = Results log file name. Use of the results file precludes use of output file switch and the break switch.

FAILFILE = Error log file name. You may only use the fail file with results file switch.

SUCCESSFILE = Success log file name. You may only use success file with the results file switch.

        $foo->set_resultsfile(
            RESULTSFILE => "results file",
            FAILFILE    => "fail file",
            SUCCESSFILE => "success file"
        );

get_resultsfile

$foo->get_resultsfile;

set_instructions

Displays instructions in the console and in the log files.

$foo->set_instructions;

set_header

Displays header in the log files.

$foo->set_header;

set_showoutput

Displays output on the console.

$foo->set_showoutput;

set_stoponerror

Stops the execution on error.

$foo->set_stoponerror;

set_skipsyntaxcheck

Skips instruction syntax checking on a script prior to execution.

$foo->set_skipsyntaxcheck;

set_error

Displays error and exit codes on the console and in the log file.

$foo->set_error;

set_break

break = Separates the output into three files with the following default file names: CmdMgrSuccess.log, CmdMgrFail.log, and CmdMgrResults.log. Use of the -break switch precludes use of -o and -or, -of, and -os.

$foo->set_break;

display

Displays the contents of a Business::Intelligence::MicroStrategy::Cmdmgr object.

run_script

Executes command manager script.

$foo->run_script;

custom_access_rights

internal use only

join_objects

internal use only

add_attribute_child

$foo->add_attribute_child( ATTRIBUTECHILD => "attributechild_name", RELATIONSHIPTYPE => "ONETOONE" | "ONETOMANY" | "MANYTOMANY", ATTRIBUTE => "attribute_name", LOCATION => "location_path", PROJECT => "project_name" );

ADD ATTRIBUTECHILD "<attributechild_name>" RELATIONSHIPTYPE (ONETOONE | ONETOMANY | MANYTOMANY) TO ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

ADD ATTRIBUTECHILD "Day" RELATIONSHIPTYPE ONETOMANY TO ATTRIBUTE "Month" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_attribute_child( ATTRIBUTECHILD => "Day", RELATIONSHIPTYPE => "ONETOMANY", ATTRIBUTE => "Month", LOCATION => "\\Schema Objects\\Attributes", PROJECT => "MicroStrategy Tutorial" );

add_attribute_form_expression

$foo->add_attribute_form_expression( ATTRIBUTEFORMEXP => "expression", EXPSOURCETABLES => ["sourcetable1", "sourcetable2", sourcetableN"], LOOKUPTABLE => "lookup_table", OVERWRITE => "TRUE" | "FALSE", ATTRIBUTEFORM => "form_name", ATTRIBUTE => "attribute_name", LOCATION => "location_path", PROJECT => "project_name" );

Optional parameters: EXPSOURCETABLES => [ "<sourcetable1>" , "<sourcetable2>" , "<sourcetableN>"], LOOKUPTABLE => "<lookup_table>", OVERWRITE => "TRUE" | "FALSE"

ADD ATTRIBUTEFORMEXP "<expression>" [EXPSOURCETABLES "<sourcetable1>" [, "<sourcetable2>" [, "<sourcetableN>"]]] [LOOKUPTABLE "<lookup_table>"] [OVERWRITE] TO ATTRIBUTEFORM "<form_name>" FOR ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

ADD ATTRIBUTEFORMEXP "ORDER_DATE" TO ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_attribute_form_expression( ATTRIBUTEFORMEXP => "ORDER_DATE", ATTRIBUTEFORM => "ID", ATTRIBUTE => "Day", LOCATION => "\\Schema Objects\\Attributes", PROJECT => "MicroStrategy Tutorial"

);

add_attribute_form

ADD ATTRIBUTEFORM "<form_name>" [FORMDESC "<form_description>"] FORMCATEGORY "<category_name>" FORMTYPE (NUMBER | TEXT | DATETIME | DATE | TIME | URL | EMAIL | HTML | PICTURE | BIGDECIMAL) [SORT (NONE | ASC | DESC)] EXPRESSION "<form_expression>" [EXPSOURCETABLES "<sourcetable1>" [, "<sourcetable2>" [, ... "<sourcetableN>"]]] LOOKUPTABLE "<lookup_table>" TO ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

$foo->add_attribute_form( ATTRIBUTEFORM => "form_name", FORMDESC => "form_description", FORMCATEGORY => "category_name", FORMTYPE => "formtype", SORT => (NONE | ASC | DESC), EXPRESSION => "form_expression", EXPSOURCETABLES => ["sourcetable1", "sourcetable2", "sourcetableN"], LOOKUPTABLE => "lookup_table", ATTRIBUTE => "attribute_name", LOCATION => "location_path", PROJECT => "project_name" );

Optional parameters: FORMDESC => "<form_description>", SORT => (NONE | ASC | DESC), EXPSOURCETABLES => ["<sourcetable1>" , "<sourcetable2>" , "<sourcetableN>"]

ADD ATTRIBUTEFORM "Last Name" FORMDESC "Last Name Form" FORMCATEGORY "DESC" FORMTYPE TEXT SORT DESC EXPRESSION "[CUST_LAST_NAME]" LOOKUPTABLE "LU_CUSTOMER" TO ATTRIBUTE "Customer" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_attribute_form( ATTRIBUTEFORM => "Last Name", FORMDESC => "Last Name Form", FORMCATEGORY => "DESC", FORMTYPE => "TEXT", SORT => "DESC", EXPRESSION => "[CUST_LAST_NAME]", LOOKUPTABLE => "LU_CUSTOMER", ATTRIBUTE => "Customer", LOCATION => "\\Schema Objects\\Attributes", PROJECT => "MicroStrategy Tutorial" );

add_attribute_parent

ADD ATTRIBUTEPARENT "<attributeparent_name>" RELATIONSHIPTYPE (ONETOONE | MANYTOONE | MANYTOMANY) TO ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

$foo->add_attribute_parent( ATTRIBUTEPARENT => "attributeparent_name", RELATIONSHIPTYPE => "ONETOONE" | "MANYTOONE" | "MANYTOMANY", ATTRIBUTE => "attribute_name", LOCATION => "location_path", PROJECT => "project_name" );

ADD ATTRIBUTEPARENT "Month of Year" RELATIONSHIPTYPE MANYTOONE TO ATTRIBUTE "Month" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_attribute_parent( ATTRIBUTEPARENT => "Month of Year", RELATIONSHIPTYPE => "MANYTOONE", ATTRIBUTE => "Mont", LOCATION => '\Schema Objects\Attributes', PROJECT => "MicroStrategy Tutorial" );

add_configuration_ace

ADD ACE FOR conf_object_type "<object_name>" (USER | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]]);

$foo->add_configuration_ace( CONF_OBJECT_TYPE => "conf_object_type", OBJECT_NAME => "object_name", USER_OR_GROUP => (USER | GROUP), USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name", ACCESSRIGHTS => (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM ), ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY", } );

Optional parameters: ACCESSRIGHTS_CUSTOM

ADD ACE FOR SCHEDULE "All the time" USER "Developer" ACCESSRIGHTS FULLCONTROL;

$foo->add_configuration_ace( CONF_OBJECT_TYPE => "SCHEDULE", OBJECT_NAME => "All the time", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "FULLCONTROL" );

ADD ACE FOR SCHEDULE "All the time" USER "Developer" ACCESSRIGHTS DENIEDALL;

$foo->add_configuration_ace( CONF_OBJECT_TYPE => "SCHEDULE", OBJECT_NAME => "All the time", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "DENIEDALL" );

ADD ACE FOR GROUP "Developers" GROUP "Web Users" ACCESSRIGHTS DENIEDALL;

$foo->add_configuration_ace( CONF_OBJECT_TYPE => "GROUP", OBJECT_NAME => "Developers", USER_OR_GROUP => "GROUP", USER_LOGIN_OR_GROUP_NAME => "Web Users", ACCESSRIGHTS => "DENIEDALL" );

ADD ACE FOR SCHEDULE "All the time" USER "Developers" ACCESSRIGHTS CUSTOM GRANT BROWSE, READ, WRITE DENY DELETE, CONTROL, USE, EXECUTE;

$foo->add_configuration_ace( CONF_OBJECT_TYPE => "SCHEDULE", OBJECT_NAME => "All the time", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developers", ACCESSRIGHTS => "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT", READ => "GRANT", WRITE => "GRANT", DELETE => "DENY", CONTROL => "DENY", USE => "DENY", EXECUTE => "DENY" } );

add_custom_group_element

ADD ELEMENT "<element_name>" [(SHOWELEMENTNAME | SHOWITEMSINELEMENT | SHOWITEMSINELEMENTANDEXPAND | SHOWALLANDEXPAND)] EXPRESSION "<expression>" [BREAKAMBIGUITY FOLDER "<local_symbol_folder>" ] [BANDNAMES "<name1>", "<name2>", "<nameN>"] [OUTPUTLEVEL "<attribute_name1>", "<attribute_name2>", "<attributenameN>" IN FOLDERS "<outputlevel_location_path1>", "<outputlevel_location_path2>", "<outputlevel_location_pathN>"] TO CUSTOMGROUP "<customgroup_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

$foo->add_custom_group_element( ELEMENT => "element_name", SHOWELEMENTNAME => "TRUE" | "FALSE", SHOWITEMSINELEMENT => "TRUE" | "FALSE", SHOWITEMSINELEMENTANDEXPAND => "TRUE" | "FALSE", SHOWALLANDEXPAND => "TRUE" | "FALSE", EXPRESSION => "expression", BREAKAMBIGUITY_FOLDER => "local_symbol_folder", BANDNAMES => ["name1", "nameN"], OUTPUTLEVEL => ["attribute_name1", "attributenameN"], LOCATIONS => [ "outputlevel_location_path1", "outputlevel_location_pathN"], CUSTOMGROUP => "customgroup_name", LOCATION => "location_path", PROJECT => "project_name" );

Optional parameters: SHOWELEMENTNAME => TRUE | FALSE, SHOWITEMSINELEMENT => TRUE | FALSE, SHOWITEMSINELEMENTANDEXPAND => TRUE | FALSE, SHOWALLANDEXPAND => TRUE | FALSE, BREAKAMBIGUITY_FOLDER => "local_symbol_folder", BANDNAMES => ["name1", "nameN"], OUTPUTLEVEL => ["attribute_name1", "attributenameN"], OUTPUTLEVEL_LOCATIONS => [ "outputlevel_location_path1", "outputlevel_location_pathN"])

ADD ELEMENT "25-35" EXPRESSION "([Customer Age]@ID Between 25.0 And 35.0)" TO CUSTOMGROUP "Copy of Age Groups" IN FOLDER "\Public Objects\Custom Groups" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_custom_group_element( ELEMENT => "25-35", EXPRESSION => '([Customer Age]@ID Between 25.0 And 35.0)', CUSTOMGROUP => "Copy of Age Groups", LOCATION => "\\Public Objects\\Custom Groups", PROJECT => "MicroStrategy Tutorial" );

ADD ELEMENT "36-45" SHOWELEMENTNAME EXPRESSION "([Customer Age]@ID Between 36.0 And 45.0)" BANDNAMES "Group1", "Group2" TO CUSTOMGROUP "Copy of Age Groups" IN FOLDER "\Public Objects\Custom Groups" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_custom_group_element( ELEMENT => "36-45", SHOWELEMENTNAME => "TRUE" , EXPRESSION => '([Customer Age]@ID Between 36.0 And 45.0)', BANDNAMES => ["Group1", "Group2"], CUSTOMGROUP => "Copy of Age Groups", LOCATION => "\\Public Objects\\Custom Groups", PROJECT => "MicroStrategy Tutorial" );

Following is how to create different types of custom groups using expression text. Notes: [] are used to define a name of an object; the name can include the full path to the object. ^ is used as the escape character to specify a string constant inside an expression. {} are used to indicate a pair of join element list qualification. When it comes to ambiguous objects within an expression, there are two ways to solve it: a. To specify the object with its full path b. Place all of the ambiguous objects in a single folder and specify this folder in the command using the BREAKAMBIGUITY reserved word. When specifying the percentage value using Rank<ByValue=False>, please specify a fraction value between 0 and 1 that corresponds to the percentage value. For example, forty percent (40%) should be specified as 0.4. Examples of different qualitications: 1. Attribute qualification: [\Schema Objects\Attributes\Time\Year]@ID IN ("2003, 2004") [\Schema Objects\Attributes\Time\Year]@ID =2003 [\Schema Objects\Attributes\Products\Category]@DESC IN ("Books", "Movies", "Music", "Electronics") 2. Set Qualification For Metric Qualifications, you need to specify the output level at which this metric is calculated. Three types of functions: Metric Values: [\Public Objects\Metrics\Sales Metrics\Profit] >= 10 Bottom Rank: Rank([\Public Objects\Metrics\Sales Metrics\Profit]) <= 3 Top Rank: Rank<ASC=False>([Revenue Contribution to All Products Abs.]) <= 5 Percent: Rank<ByValue=False>([\Public Objects\Metrics\Sales Metrics\Profit]) <= 0.1 *Note for Rank function: There are two parameters that control its behavior. ASC and ByValue. When ASC is set to true, the ranking results are sorted in ascending order; when its value is set to false, the ranking results are sorted in descending order. When ByValue is set to true, the ranking results represent their value order; whereas, when ByValue is set to false, the ranking results represent their percentage order. 3. Shortcut to a Report Qualification Just specify the report name: [Revenue vs. Forecast] or [\Public Objects\Reports\Revenue vs. Forecast] 4. Shortcut to a Filter Just specify the filter name: [Top 5 Customers by Revenue] ([\Public Objects\Filters\Top 5 Customers by Revenue]) 5. Banding Qualification You need to specify the output level. In addition, you may want to specify the band names. Three types of bandings: Band Size: Banding(Cost, 1.0, 1000.0, 100.0) Band Point: BandingP(Discount, 1.0, 10.0, 15.0, 20.0) Banding Counts: BandingC(Profit, 1.0, 1000.0, 100.0) BandingP(Rank<ByValue=False>([\Public Objects\Metrics\Sales Metrics\Revenue]),0,0.1,0.5,1) Banding([Running Revenue Contribution to All Customers Abs.],0.0,1.0,0.2) 6. Advance Qualification Join Element List Qualification {Year@ID, Category@DESC} IN ({2004, "Books"}, {2005, "Movies"})

add_dbinstance

ADD DBINSTANCE "<DBInstance_name>" TO PROJECT "<project_name>";

$foo->add_dbinstance( DBINSTANCE => "DBInstance_name", PROJECT => "project_name" );

ADD DBINSTANCE "Extra Tutorial Data" TO PROJECT "MicroStrategy Tutorial";

$foo->add_dbinstance( DBINSTANCE => "Extra Tutorial Data", PROJECT => "MicroStrategy Tutorial" );

add_fact_expression

$foo->add_fact_expression( EXPRESSION => "expression", EXPSOURCETABLES => ["sourcetable1", "sourcetableN"], OVERWRITE => "TRUE" | "FALSE", FACT => "fact_name", LOCATION => "location_path", PROJECT => "project_name" );

Optional parameters: EXPSOURCETABLES => ["<sourcetable1>", "<sourcetable2>" , "<sourcetableN>"], OVERWRITE => (TRUE | FALSE)

ADD EXPRESSION "<expression>" [EXPSOURCETABLES "<sourcetable1>", [, "<sourcetable2>" [, "<sourcetableN>"]]] [OVERWRITE] TO FACT "<fact_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

Specify EXPSOURCETABLES and the table names for manual mapping. If EXPSOURCETABLES is not used, the expression is mapped automatically. If one or more candidate tables of this expression are already used by another expression, specify OVERWRITE to map the overlapping tables with this expression. When OVERWRITE is not used, Command Manager only maps those tables that are not overlapping. /* Fact Profit*/ ADD EXPRESSION "([QTY_SOLD] * (([UNIT_PRICE] - DISCOUNT) - [UNIT_COST]))" EXPSOURCETABLES "ORDER_DETAIL" TO FACT "Profit" IN FOLDER "\Public Objects" FOR PROJECT "Microstrategy Tutorial";

$foo->add_fact_expression( EXPRESSION => '([QTY_SOLD] * (([UNIT_PRICE] - DISCOUNT) - [UNIT_COST]))', EXPSOURCETABLES => ["ORDER_DETAIL"], FACT => "Profit", LOCATION => "\\Public Objects", PROJECT => "MicroStrategy Tutorial" );

ADD EXPRESSION "ORDER_AMT - ORDER_COST" TO FACT "Profit" IN FOLDER "\Public Objects" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_fact_expression( EXPRESSION => 'ORDER_AMT - ORDER_COST', FACT => "Profit", LOCATION => "\\Public Objects", PROJECT => "MicroStrategy Tutorial" );

ADD EXPRESSION "ORDER_ID" EXPSOURCETABLES "RUSH_ORDER" OVERWRITE TO FACT "Profit" IN FOLDER "\Public Objects" FOR PROJECT "MicroStrategy Tutorial";

$foo->add_fact_expression( EXPRESSION => 'ORDER_ID', EXPSOURCETABLES => ["RUSH_ORDER"], OVERWRITE => "TRUE", FACT => "Profit", LOCATION => "\\Public Objects", PROJECT => "MicroStrategy Tutorial" );

/*Fact Cost*/ ADD EXPRESSION "([QTY_SOLD] * [UNIT_COST])" TO FACT "Cost" IN FOLDER "\Public Objects" FOR PROJECT "MicroStrategy Tutorial";

ADD EXPRESSION "ORDER_COST" TO FACT "Cost" IN FOLDER "\Public Objects" FOR PROJECT "MicroStrategy Tutorial";

ADD EXPRESSION "ITEM_ID" OVERWRITE TO FACT "Cost" IN FOLDER "\Public Objects" FOR PROJECT "Microstrategy Tutorial";

add_folder_ace

$foo->add_folder_ace( FOLDER => "folder_name", LOCATION => "location_path", USER_OR_GROUP => "USER" | "GROUP", USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name", ACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" | "DEFAULT" | "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY", }, CHILDRENACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" | "DEFAULT" | "CUSTOM", CHILDRENACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY", }, PROJECT => "project_name" );

Optional parameters: ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY", }, CHILDRENACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY", }

ADD ACE FOR FOLDER "<folder_name>" IN FOLDER "<location_path>" (USER | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]]) CHILDRENACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]]) FOR PROJECT "<project_name>";

ADD ACE FOR FOLDER "Subtotals" IN FOLDER "\Project Objects" USER "Developer" ACCESSRIGHTS FULLCONTROL CHILDRENACCESSRIGHTS MODIFY FOR PROJECT "MicroStrategy Tutorial";

$foo->add_folder_ace( FOLDER => "Subtotals", LOCATION => "\\Project Objects", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "FULLCONTROL", CHILDRENACCESSRIGHTS => "MODIFY", PROJECT => "MicroStrategy Tutorial" );

ADD ACE FOR FOLDER "Subtotals" IN FOLDER "\Project Objects" USER "Developer" ACCESSRIGHTS CUSTOM GRANT BROWSE, WRITE, DELETE DENY CONTROL, USE, EXECUTE CHILDRENACCESSRIGHTS MODIFY FOR PROJECT "MicroStrategy Tutorial";

$foo->add_folder_ace(FOLDER => "Subtotals", LOCATION => "\\Project Objects", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT", READ => "GRANT", WRITE => "GRANT", DELETE => "GRANT", CONTROL => "DENY", USE => "DENY", EXECUTE => "DENY"}, CHILDRENACCESSRIGHTS => "MODIFY", PROJECT => "MicroStrategy Tutorial");

ADD ACE FOR FOLDER "Subtotals" IN FOLDER "\Project Objects" USER "Developer" ACCESSRIGHTS CUSTOM GRANT BROWSE, READ, WRITE DENY CONTROL, DELETE, EXECUTE, USE CHILDRENACCESSRIGHTS FULLCONTROL FOR PROJECT "MicroStrategy Tutorial";

$foo->add_folder_ace( FOLDER => "Subtotals", LOCATION => "\\Project Objects", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT", READ => "GRANT", WRITE => "GRANT", DELETE => "DENY", CONTROL => "DENY", USE => "DENY", EXECUTE => "DENY" }, CHILDRENACCESSRIGHTS => "FULLCONTROL", PROJECT => "MicroStrategy Tutorial" );

ADD ACE FOR FOLDER "Subtotals" IN FOLDER "\Project Objects" USER "Developer" ACCESSRIGHTS MODIFY CHILDRENACCESSRIGHTS CUSTOM GRANT BROWSE, READ, WRITE DENY CONTROL, DELETE, EXECUTE, USE FOR PROJECT "MicroStrategy Tutorial";

$foo->add_folder_ace( FOLDER => "Subtotals", LOCATION => "\\Project Objects", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "MODIFY", CHILDRENACCESSRIGHTS => "CUSTOM", CHILDRENACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT", READ => "GRANT", WRITE => "GRANT", DELETE => "DENY", CONTROL => "DENY", USE => "DENY", EXECUTE => "DENY" }, PROJECT => "MicroStrategy Tutorial" );

ADD ACE FOR FOLDER "Subtotals" IN FOLDER "\Project Objects" USER "Developer" ACCESSRIGHTS CUSTOM GRANT BROWSE, READ, WRITE DENY CONTROL, DELETE, EXECUTE, USE CHILDRENACCESSRIGHTS CUSTOM GRANT CONTROL, DELETE, EXECUTE, USE DENY BROWSE, READ, WRITE FOR PROJECT "MicroStrategy Tutorial";

$foo->add_folder_ace( FOLDER => "Subtotals", LOCATION => "\\Project Objects", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT", READ => "GRANT", WRITE => "GRANT", DELETE => "DENY", CONTROL => "DENY", USE => "DENY", EXECUTE => "DENY" }, CHILDRENACCESSRIGHTS => "CUSTOM", CHILDRENACCESSRIGHTS_CUSTOM => { BROWSE => "DENY", READ => "DENY", WRITE => "DENY", DELETE => "GRANT", CONTROL => "GRANT", USE => "GRANT", EXECUTE => "GRANT" }, PROJECT => "MicroStrategy Tutorial" );

add_project_ace

ADD ACE FOR <project_object_type> "<object_name>" IN FOLDER "<location_path>" (USER | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]]) FOR PROJECT "<project_name>";

$foo->add_project_ace( PROJECT_OBJECT_TYPE => "project_object_type", OBJECT_NAME => "object_name", LOCATION => "location_path", USER_OR_GROUP => "USER" | "GROUP", USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name", ACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" | "DEFAULT" | "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY" }, PROJECT => "project_name" );

ADD ACE FOR FACT "MyFact" IN FOLDER "\\Schema Objects\\Facts" "USER" "Developer" ACCESSRIGHTS VIEW FOR PROJECT "MicroStrategy Tutorial";

$foo->add_project_ace( PROJECT_OBJECT_TYPE => "FACT", OBJECT_NAME => "MyFact", LOCATION => "\\Schema Objects\\Facts", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "Developer", ACCESSRIGHTS => "VIEW", PROJECT => "MicroStrategy Tutorial" );

List of Project Object Types: REPORT, DOCUMENT, PROMPT, SECFILTER, CONSOLIDATION, CUSTOMGROUP, DRILLMAP, FILTER, METRIC, SEARCH, TEMPLATE, FACT, HIERARCHY, ATTRIBUTE, FUNCTION, PARTITION, TABLE, TRANSFORMATION, SUBTOTAL, AUTOSTYLE

Optional parameters: ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY" },

add_server_cluster

ADD SERVER "<server_name>" TO CLUSTER;

$foo->add_server_cluster(SERVER => "server_name");

This command can be used only in 3-tier Project Source Names.

ADD SERVER "PROD_SRV" TO CLUSTER;

$foo->add_server_cluster(SERVER => "PROD_SRV");

add_user

ADD USER "<login_name>" [TO] GROUP "<Group_name_1>" , "<Group_name_2>";

$foo->add_user( USER => "login_name", GROUP => [ "Group_name_1", "Group_name_2" ] );

ADD USER "palcazar" TO GROUP "Managers";

$foo->add_user( USER => "login_name", GROUP => ["Managers"] );

add_whtable

ADD WHTABLE "<warehouse_table_name>" [PREFIX "<prefix_name>"] [AUTOMAPPING (TRUE | FALSE)] [CALTABLELOGICALSIZE (TRUE | FALSE)] [COLMERGEOPTION (RECENT | MAXDENOMINATOR | NOMERGE)] TO PROJECT "<project_name>";

$foo->add_whtable( WHTABLE => "warehouse_table_name", PREFIX => "prefix_name", AUTOMAPPING => "TRUE" | "FALSE", CALTABLELOGICALSIZE => "TRUE" | "FALSE", COLMERGEOPTION => "RECENT" | "MAXDENOMINATOR" | "NOMERGE", PROJECT => "project_name" );

Optional parameters: PREFIX => "<prefix_name>",AUTOMAPPING => (TRUE | FALSE),CALTABLELOGICALSIZE => (TRUE | FALSE),COLMERGEOPTION => (RECENT | MAXDENOMINATOR | NOMERGE)

This sample illustrates the manipulation of tables. Warehouse Partition Table and Non_Relational Table are not supported. Warehouse table names are case sensitive; logical table names are not case sensitive Note when you add a warehouse table: 1. Prefix option is similar to that of setting a default prefix in warehouse catalog. If Prefix exists, Command Manager uses it; otherwise, Command Manager creates a new one. 2. Automapping option: If automapping is set to TRUE, the new table will have all the attributes, facts that use one of its columns mapped to it. 3. CalTableLogicalSize: Allows users to calculate the logical size of this table once facts and attributes have been mapped. 4. ColMergeOption RECENT: If a column is discovered in the warehouse, which has the same name as that of an existing column but different data types, the column in the project is updated to have the data type found in the warehouse. MAXDENOMINATOR: Columns with the same name are always treated as the same object if they have compatible data types (i.e., all numeric, all string-text, etc.). The resulting column in the project has a maximum common data type for all the corresponding physical columns. NOMERGE: Two columns having the same name but different data types are treated as two different columns in the project. 5. Default Options: AUTOMAPPING is set to TRUE, CALTABLELOGICALSIZE is set to TRUE, and COLMERGEOPTION is set to RECENT. 6. When adding a new warehouse table into a project, make sure this project has at least one associated DBRole.

ADD WHTABLE "DT_QUARTER" PREFIX "Tutorial" AUTOMAPPING TRUE CALTABLELOGICALSIZE TRUE COLMERGEOPTION MAXDENOMINATOR TO PROJECT "MicroStrategy Tutorial";

$foo->add_whtable( WHTABLE => "DT_QUARTER", PREFIX => "Tutorial", AUTOMAPPING => "TRUE", CALTABLELOGICALSIZE => "TRUE", COLMERGEOPTION => "MAXDENOMINATOR", PROJECT => "MicroStrategy Tutorial" );

ADD WHTABLE "DT_YEAR" COLMERGEOPTION MAXDENOMINATOR TO PROJECT "MicroStrategy Tutorial";

$foo->add_whtable( WHTABLE => "DT_YEAR", COLMERGEOPTION => "MAXDENOMINATOR", PROJECT => "MicroStrategy Tutorial" );

alter_attribute_form_expression

ALTER ATTRIBUTEFORMEXP "<expression>" [OVERWRITE] [LOOKUPTABLE "<lookup_table>"] MAPPINGMODE (AUTOMATIC | EXPSOURCETABLES "<sourcetable1>", [, "<sourcetable2>" [, "<sourcetableN>"]]) TO ATTRIBUTEFORM "<form_name>" FOR ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

$foo->alter_attribute_form_expression( ATTRIBUTEFORMEXP => "expression", OVERWRITE => "TRUE" | "FALSE", LOOKUPTABLE => "lookup_table", MAPPINGMODE => ["AUTOMATIC"] | [ "sourcetable1", "sourcetable2", "sourcetableN" ], ATTRIBUTEFORM => "form_name", ATTRIBUTE => "attribute_name", LOCATION => "location_path", PROJECT => "project_name" );

Optional parameters: OVERWRITE => "TRUE" | "FALSE", LOOKUPTABLE => "lookup_table",

ALTER ATTRIBUTEFORMEXP "ORDER_DATE" MAPPINGMODE AUTOMATIC FOR ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";

$foo->alter_attribute_form_expression( ATTRIBUTEFORMEXP => "ORDER_DATE", MAPPINGMODE => "AUTOMATIC", ATTRIBUTEFORM => "ID", ATTRIBUTE => "Day", LOCATION => "\\Schema Objects\\Attributes", PROJECT => "MicroStrategy Tutorial" );

ALTER ATTRIBUTEFORMEXP "ORDER_DATE" MAPPINGMODE EXPSOURCETABLES "ORDER_DETAIL", "ORDER_FACT" FOR ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";

$foo->alter_attribute_form_expression( ATTRIBUTEFORMEXP => "ORDER_DATE", MAPPINGMODE => [ "ORDER_DETAIL", "ORDER_FACT" ], ATTRIBUTEFORM => "ID", ATTRIBUTE => "Day", LOCATION => "\\Schema Objects\\Attributes", PROJECT => "MicroStrategy Tutorial" );

alter_attribute

ALTER ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" [HIDDEN TRUE | FALSE] [NAME "<new_attribute_name>"] [DESCRIPTION "<description>"] [FOLDER "<new_location_path>"] [REPORTDISPLAYFORMS ("<form1>" [, "<form2>" [,.. "<formN>"]] | NONE)] BROWSEDISPLAYFORMS ("<form1>" [, "<form2>" [,.. "<formN>"]] | NONE)] [ELEMDISPLAY (LOCKED | UNLOCKED | LIMIT <number_of_forms>)] [SECFILTERSTOELEMBROWSING (TRUE | FALSE)] [ENABLEELEMCACHING (TRUE | FALSE)] FOR PROJECT "<project_name>";

$foo->alter_attribute( ATTRIBUTE => "attribute_name", LOCATION => "location_path", HIDDEN => "TRUE" | "FALSE", NEW_NAME => "new_attribute_name", DESCRIPTION => "description", NEW_LOCATION => "new_location_path", REPORTDISPLAYFORMS => [ "form1", "form2", "formN" ] | "NONE", BROWSEDISPLAYFORMS => [ "form1", "form2", "formN" ] | "NONE", ELEMDISPLAY => "LOCKED" | "UNLOCKED" | "LIMIT number_of_forms", SECFILTERSTOELEMBROWSING => "TRUE" | "FALSE", ENABLEELEMCACHING => "TRUE" | "FALSE", PROJECT => "project_name" );

Optional parameters: HIDDEN => TRUE | FALSE, NEW_NAME => "<new_attribute_name>", DESCRIPTION => "<description>" NEW_LOCATION => "<new_location_path>",REPORTDISPLAYFORMS => ("<form1>" , "<form2>" ,.. "<formN>" | NONE),, => "<form2>" ,.. "<formN>",ELEMDISPLAY => (LOCKED | UNLOCKED | LIMIT <number_of_forms>),SECFILTERSTOELEMBROWSING => (TRUE | FALSE),ENABLEELEMCACHING => (TRUE | FALSE)

ALTER ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" NAME "Duplicate_Day" FOLDER "\Schema Objects\Attributes\Time" REPORTDISPLAYFORMS "ID" BROWSEDISPLAYFORMS "ID" ELEMDISPLAY UNLOCKED SECFILTERSTOELEMBROWSING TRUE ENABLEELEMCACHING TRUE FOR PROJECT "MicroStrategy Tutorial";

$foo->alter_attribute( ATTRIBUTE => "Day", LOCATION => '\Schema Objects\Attributes', NEW_NAME => "Duplicate_Day", NEW_LOCATION => '\Schema Objects\Attributes\Time', REPORTDISPLAYFORMS => ["ID"], BROWSEDISPLAYFORMS => ["ID"], ELEMDISPLAY => "UNLOCKED", SECFILTERSTOELEMBROWSING => "TRUE", ENABLEELEMCACHING => "TRUE", PROJECT => "MicroStrategy Tutorial" );

ALTER ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" NAME "Duplicate_Day" FOLDER "\Schema Objects\Attributes\Time" REPORTDISPLAYFORMS NONE BROWSEDISPLAYFORMS "ID" ELEMDISPLAY UNLOCKED SECFILTERSTOELEMBROWSING TRUE ENABLEELEMCACHING TRUE FOR PROJECT "MicroStrategy Tutorial";

$foo->alter_attribute( ATTRIBUTE => "Day", LOCATION => '\Schema Objects\Attributes', NEW_NAME => "Duplicate_Day", NEW_LOCATION => '\Schema Objects\Attributes\Time', REPORTDISPLAYFORMS => "NONE", BROWSEDISPLAYFORMS => ["ID"], ELEMDISPLAY => "UNLOCKED", SECFILTERSTOELEMBROWSING => "TRUE", ENABLEELEMCACHING => "TRUE", PROJECT => "MicroStrategy Tutorial" );

ALTER ATTRIBUTE "Copy of Day" IN FOLDER "\Schema Objects\Attributes" HIDDEN FALSE FOR PROJECT "MicroStrategy Tutorial"; UPDATE SCHEMA REFRESHSCHEMA RECALTABLEKEYS RECALTABLELOGICAL RECALOBJECTCACHE FOR PROJECT "MicroStrategy Tutorial";

alter_configuration_ace

ALTER ACE FOR <conf_object_type> "<object_name>" [(USER | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]] [DEFAULT accessright1 [, accessright2 [, accessrightn]]])];

$foo->alter_configuration_ace( CONF_OBJECT_TYPE => "conf_object_type", OBJECT_NAME => "object_name", USER_OR_GROUP => "USER" | "GROUP", USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name", ACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" | "DEFAULT" | "CUSTOM", ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY" } );

Optional parameters: (USER => | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM GRANT <accessright1> , <accessright2> ,... <accessrightN> DENY <accessright1> , <accessright2> ,... <accessrightN> DEFAULT accessright1 , accessright2 , accessrightn)

List of Configuration Object Types: DBINSTANCE, DBCONNECTION, DBLOGIN, SCHEDULE, USER, GROUP, EVENT

alter_connection_map

ALTER CONNECTION MAP FOR USER "<login_name>" DBINSTANCE "<dbinstance_name>" [DBCONNECTION "<dbConnection_name>"] [DBLOGIN "<dblogin_name>"] ON PROJECT "<project_name>";

    $foo->alter_connection_map(
        USER         => "login_name",
        DBINSTANCE   => "dbinstance_name",
        DBCONNECTION => "dbConnection_name",
        DBLOGIN      => "dblogin_name",
        PROJECT      => "project_name"
    );

Optional parameters: DBCONNECTION => "dbConnection_name", DBLOGIN => "dblogin_name"

ALTER CONNECTION MAP FOR USER "Developer" DBINSTANCE "Tutorial Data" DBLOGIN "Data" ON PROJECT "MicroStrategy Tutorial";

    $foo->alter_connection_map(
        USER       => "Developer",
        DBINSTANCE => "Tutorial Data",
        DBLOGIN    => "Data",
        PROJECT    => "MicroStrategy Tutorial"
    );

ALTER CONNECTION MAP FOR USER "jsmith" DBINSTANCE "MSI_DB" DBCONNECTION "MSI_DB_Conn" DBLOGIN "MSI_USER" ON PROJECT "MicroStrategy Tutorial";

    $foo->alter_connection_map(
        USER         => "jsmith",
        DBINSTANCE   => "MSI_DB",
        DBCONNECTION => "MSI_DB_Conn",
        DBLOGIN      => "MSI_USER",
        PROJECT      => "MicroStrategy Tutorial"
    );

alter_custom_group

ALTER CUSTOMGROUP "<customgroup_name>" IN FOLDER "<location_path>" [NAME "<new_customgroup_name>"] [DESCRIPTION "<new_description>"] [FOLDER "<new_location_path>"] [ENABLEHIERARCHICALDISPLAY (TRUE | FALSE)] [ENABLESUBTOTALDISPLAY (TRUE | FALSE)] [ELEMENTHEADERPOSITION (ABOVE | BELOW)] [HIDDEN (TRUE | FALSE)] FOR PROJECT "<project_name>";

    $foo->alter_custom_group(
        CUSTOMGROUP               => "customgroup_name",
        LOCATION                  => "location_path",
        NEW_NAME                  => "new_customgroup_name",
        DESCRIPTION               => "new_description",
        NEW_LOCATION              => "new_location_path",
        ENABLEHIERARCHICALDISPLAY => "TRUE" | "FALSE",
        ENABLESUBTOTALDISPLAY     => "TRUE" | "FALSE",
        ELEMENTHEADERPOSITION     => "TRUE" | "FALSE",
        HIDDEN                    => "TRUE" | "FALSE",
        PROJECT                   => "project_name"
    );

Optional parameters: NEW_NAME => "new_customgroup_name", DESCRIPTION => "new_description", NEW_LOCATION => "new_location_path", ENABLEHIERARCHICALDISPLAY => "TRUE" | "FALSE", ENABLESUBTOTALDISPLAY => "TRUE" | "FALSE", ELEMENTHEADERPOSITION => "TRUE" | "FALSE", HIDDEN => "TRUE" | "FALSE",

ALTER CUSTOMGROUP "My Custom Groups" IN FOLDER "\Public Objects\Custom Groups" NAME "Modified My Custom Groups" DESCRIPTION "Modified Copy of My Custom Groups" FOLDER "\Public Objects\Custom Groups\Modified Custom Groups" ENABLEHIERARCHICALDISPLAY FALSE ENABLESUBTOTALDISPLAY TRUE ELEMENTHEADERPOSITION ABOVE HIDDEN FALSE FOR PROJECT "MicroStrategy Tutorial";

    $foo->alter_custom_group(
        CUSTOMGROUP => "My Custom Groups",
        LOCATION    => '\Public Objects\Custom Groups',
        NEW_NAME    => "Modified My Custom Groups",
        NEW_DESCRIPTION => "Modified Copy of My Custom Groups",
        NEW_LOCATION => '\Public Objects\Custom Groups\Modified Custom Groups',
        ENABLEHIERARCHICALDISPLAY => "FALSE",
        ENABLESUBTOTALDISPLAY     => "TRUE",
        ELEMENTHEADERPOSITION     => "ABOVE",
        HIDDEN                    => "FALSE",
        PROJECT                   => "MicroStrategy Tutorial"
    );

ALTER CUSTOMGROUP "Copy of Age Groups" IN FOLDER "\Public Objects\Custom Groups" NAME "Modified Age Groups" DESCRIPTION "Modified copy of Age Groups" ENABLEHIERARCHICALDISPLAY TRUE ENABLESUBTOTALDISPLAY TRUE ELEMENTHEADERPOSITION BELOW HIDDEN TRUE FOR PROJECT "MicroStrategy Tutorial";

    $foo->alter_custom_group(
        CUSTOMGROUP               => "Copy of Age Groups",
        LOCATION                  => '\Public Objects\Custom Groups',
        NEW_NAME                  => "Modified Age Groups",
        NEW_DESCRIPTION           => "Modified copy of Age Groups",
        ENABLEHIERARCHICALDISPLAY => "TRUE",
        ENABLESUBTOTALDISPLAY     => "TRUE",
        ELEMENTHEADERPOSITION     => "BELOW",
        HIDDEN                    => "TRUE",
        PROJECT                   => "MicroStrategy Tutorial"
    );

alter_dbconnection

ALTER DBCONNECTION "<dbconnection_name>" [NAME "<new_dbconn_name>" ] [ODBCDSN "<new_odbc_datasource_name>"] [DEFAULTLOGIN "<new_default_login>"] [DRIVERMODE (MULTIPROCESS | MULTITHREADED)] [EXECMODE (SYNCHRONOUS | ASYNCHRONOUS (CONNECTION | STATEMENT))] [USEEXTENDEDFETCH (TRUE | FALSE)] [USEPARAMQUERIES (TRUE | FALSE)] [MAXCANCELATTEMPT <new_number_of_seconds>] [MAXQUERYEXEC <new_number_of_seconds>] [MAXCONNATTEMPT <new_number_of_seconds>] [CHARSETENCODING (MULTIBYTE | UTF8)] [TIMEOUT <new_number_of_seconds>] [IDLETIMEOUT <new_number_of_seconds>];

    $foo->alter_dbconnection(
        DBCONNECTION => "dbconnection_name",
        NEW_NAME     => "new_dbconn_name",
        ODBCDSN      => "new_odbc_datasource_name",
        DEFAULTLOGIN => "new_default_login",
        DRIVERMODE   => "MULTIPROCESS | MULTITHREADED",
        EXECMODE     => "SYNCHRONOUS | ASYNCHRONOUS( CONNECTION | STATEMENT )",
        USEEXTENDEDFETCH => "TRUE" | "FALSE",
        USEPARAMQUERIES  => "TRUE" | "FALSE",
        MAXCANCELATTEMPT => "new_number_of_seconds",
        MAXQUERYEXEC     => "new_number_of_seconds",
        MAXCONNATTEMPT   => "new_number_of_seconds",
        CHARSETENCODING  => "MULTIBYTE" | "UTF8",
        TIMEOUT          => "new_number_of_seconds",
        IDLETIMEOUT      => "new_number_of_seconds"
    );

Optional parameters: NEW_NAME => "<new_dbconn_name>" ,ODBCDSN => "<new_odbc_datasource_name>",DEFAULTLOGIN => "<new_default_login>",DRIVERMODE => (MULTIPROCESS | MULTITHREADED),EXECMODE => (SYNCHRONOUS | ASYNCHRONOUS (CONNECTION | STATEMENT)),USEEXTENDEDFETCH => (TRUE | FALSE),USEPARAMQUERIES => (TRUE | FALSE),MAXCANCELATTEMPT => <new_number_of_seconds>,MAXQUERYEXEC => <new_number_of_seconds>,MAXCONNATTEMPT => <new_number_of_seconds>,CHARSETENCODING => (MULTIBYTE | UTF8),TIMEOUT => <new_number_of_seconds>,IDLETIMEOUT => <new_number_of_seconds>

ALTER DBCONNECTION "DBConn1" NAME "DBConnection2" ODBCDSN "MSI_ODBC" DEFAULTLOGIN "MSI_USER" DRIVERMODE MULTIPROCESS EXECMODE SYNCHRONOUS USEEXTENDEDFETCH TRUE USEPARAMQUERIES TRUE MAXCANCELATTEMPT 100 MAXQUERYEXEC 100 MAXCONNATTEMPT 100 CHARSETENCODING MULTIBYTE TIMEOUT 100 IDLETIMEOUT 100;

    $foo->alter_dbconnection(
        DBCONNECTION     => "DBConn1",
        NEW_NAME         => "DBConnection2",
        ODBCDSN          => "MSI_ODBC",
        DEFAULTLOGIN     => "MSI_USER",
        DRIVERMODE       => "MULTIPROCESS",
        EXECMODE         => "SYNCHRONOUS",
        USEEXTENDEDFETCH => "TRUE",
        USEPARAMQUERIES  => "TRUE",
        MAXCANCELATTEMPT => "100",
        MAXQUERYEXEC     => "100",
        MAXCONNATTEMPT   => "100",
        CHARSETENCODING  => "MULTIBYTE",
        TIMEOUT          => "100",
        IDLETIMEOUT      => "100"
    );

ALTER DBCONNECTION "DBConn1" TIMEOUT 100;

    $foo->alter_dbconnection( DBCONNECTION => "DBConn1", TIMEOUT => "100" );

alter_dbinstance

    $foo->alter_dbinstance(
        DBINSTANCE        => "dbinstance_name",
        NEW_NAME          => "new_dbinstance_name",
        DBCONNTYPE        => "new_dbconnection_type",
        DBCONNECTION      => "dbconnection_name",
        DESCRIPTION       => "description",
        DATABASE          => "database_name",
        TABLESPACE        => "tablespace_name",
        PRIMARYDBINSTANCE => "dbinstance_name",
        DATAMART          => "dbinstance_name",
        TABLEPREFIX       => "table_prefix",
        HIGHTHREADS       => "no_high_conns",
        MEDIUMTHREADS     => "no_medium_conns",
        LOWTHREADS        => "no_low_conns"
    );

Optional parameters: NEW_NAME => "new_dbinstance_name", DBCONNTYPE => "new_dbconnection_type", DBCONNECTION => "dbconnection_name", DESCRIPTION => "description", DATABASE => "database_name", TABLESPACE => "tablespace_name", PRIMARYDBINSTANCE => "dbinstance_name", DATAMART => "dbinstance_name", TABLEPREFIX => "table_prefix", HIGHTHREADS => "no_high_conns", MEDIUMTHREADS => "no_medium_conns", LOWTHREADS => "no_low_conns"

ALTER DBINSTANCE "<dbinstance_name>" [NAME "<new_dbinstance_name>"] [DBCONNTYPE "<new_dbconnection_type>"] [DBCONNECTION "<dbconnection_name>"] [DESCRIPTION "<description>"] [DATABASE "<database_name>"] [TABLESPACE "<tablespace_name>"] [PRIMARYDBINSTANCE "<dbinstance_name>"] [DATAMART "<dbinstance_name>"] [TABLEPREFIX "<table_prefix>"] [HIGHTHREADS <no_high_conns>] [MEDIUMTHREADS <no_medium_conns>][LOWTHREADS <no_low_conns>];

ALTER DBINSTANCE "Production Database" DBCONNTYPE "Oracle 8i" DATABASE "Production" TABLESPACE "managers" HIGHTHREADS 8;

alter_dblogin

This command applies the changes in a 3-tier PSN without having to restart the server.

ALTER DBLOGIN "<dblogin_name>" [NAME "<new_dblogin_name>"] [LOGIN "<new_database_login>"] [PASSWORD "<new_database_pwd>"];

    $foo->alter_dblogin(
        DBLOGIN      => "dblogin_name",
        NEW_NAME     => "new_dblogin_name",
        NEW_LOGIN    => "new_database_login",
        NEW_PASSWORD => "new_database_pwd"
    );

Optional parameters: NEW_NAME => "new_dblogin_name", NEW_LOGIN => "new_database_login", NEW_PASSWORD => "new_database_pwd"

ALTER DBLOGIN "MSI_USER" NAME "MSI_USER2" LOGIN "MSI_USER_login" PASSWORD "resu_ism";

    $foo->alter_dblogin(
        DBLOGIN      => "MSI_USER",
        NEW_NAME     => "MSI_USER2",
        NEW_LOGIN    => "MSI_USER_login",
        NEW_PASSWORD => "resu_ism"
    );

'ALTER DBLOGIN "Data" LOGIN "dbadmin" PASSWORD "dbadmin";

    $foo->alter_dblogin(
        DBLOGIN      => "Data",
        NEW_LOGIN    => "dbadmin",
        NEW_PASSWORD => "dbadmin"
    );

alter_element_caching

This command can be used only in 3-tier Project Source Names.

ALTER ELEMENT CACHING IN [PROJECT] "<project_name>" [MAXRAMUSAGE <number_of_Kb>] [MAXRAMUSAGECLIENT <number_of_kb>] [CREATECACHESPERDBLOGIN (TRUE | FALSE)] [CREATECACHESPERDBCONN (TRUE | FALSE)];

    $foo->alter_element_caching(
        PROJECT                => "project_name",
        MAXRAMUSAGE            => "number_of_Kb",
        MAXRAMUSAGECLIENT      => "number_of_kb",
        CREATECACHESPERDBLOGIN => "TRUE" | "FALSE",
        CREATECACHESPERDBCONN  => "TRUE" | "FALSE",
    );

Optional parameters: MAXRAMUSAGE => "number_of_Kb", MAXRAMUSAGECLIENT => "number_of_kb", CREATECACHESPERDBLOGIN => "TRUE" | "FALSE", CREATECACHESPERDBCONN => "TRUE" | "FALSE",

ALTER ELEMENT CACHING IN PROJECT "MicroStrategy Tutorial" MAXRAMUSAGE 10240 MAXRAMUSAGECLIENT 512 CREATECACHESPERDBLOGIN TRUE CREATECACHESPERDBCONN TRUE;

    $foo->alter_element_caching(
        PROJECT                => "MicroStrategy Tutorial",
        MAXRAMUSAGE            => "10240",
        MAXRAMUSAGECLIENT      => "512",
        CREATECACHESPERDBLOGIN => "TRUE",
        CREATECACHESPERDBCONN  => "TRUE"
    );

ALTER ELEMENT CACHING IN PROJECT "MicroStrategy Tutorial" MAXRAMUSAGE 10240 MAXRAMUSAGECLIENT 512;

    $foo->alter_element_caching(
        PROJECT           => "MicroStrategy Tutorial",
        MAXRAMUSAGE       => "10240",
        MAXRAMUSAGECLIENT => "512"
    );

alter_event

ALTER EVENT "<event_name>" [NAME "<new_event_name>"] [DESCRIPTION "<new_description>"];

    $foo->alter_event(
        EVENT           => "event_name",
        NEW_NAME        => "new_event_name",
        NEW_DESCRIPTION => "new_description"
    );

Optional parameters: NEW_NAME => "new_event_name", NEW_DESCRIPTION => "new_description"

ALTER EVENT "Database Load" NAME "DBMS Load";

    $foo->alter_event( EVENT => "Database Load", NEW_NAME => "DBMS_Load" );

ALTER EVENT "Database Load" NAME "DBMS Load" DESCRIPTION "Modified Database Load";

    $foo->alter_event(
        EVENT           => "Database Load",
        NEW_NAME        => "DBMS_Load",
        NEW_DESCRIPTION => "Modified Database Load"
    );

alter_fact

ALTER FACT "<fact_name>" IN FOLDER "<location_path>" [NAME "<new_fact_name>"] [DESCRIPTION "<new_description>"] [FOLDER "<new_location_path>"] [HIDDEN (TRUE | FALSE)] FOR PROJECT "<project_name>";

    $foo->alter_fact(
        FACT        => "fact_name",
        LOCATION    => "location_path",
        NAME        => "new_fact_name",
        DESCRIPTION => "new_description",
        FOLDER      => "new_location_path",
        HIDDEN      => "TRUE" | "FALSE",
        PROJECT     => "project_name"
    );

Optional parameters: NAME => "new_fact_name", DESCRIPTION => "new_description", FOLDER => "new_location_path", HIDDEN => "TRUE" | "FALSE", PROJECT => "project_name"

ALTER FACT "Revenue" IN FOLDER "\Public Objects" NAME "Copy Revenue" DESCRIPTION "Altered Revenue" FOLDER "\Project Objects" HIDDEN TRUE FOR PROJECT "MicroStrategy Tutorial";

    $foo->alter_fact(
        FACT        => "Revenue",
        LOCATION    => 'Public Objects',
        NAME        => "Copy Revenue",
        DESCRIPTION => "Altered Revenue",
        FOLDER      => '\Project Objects',
        HIDDEN      => "TRUE",
        PROJECT     => "MicroStrategy Tutorial"
    );

alter_filter

ALTER FILTER "<filter_name>" IN [FOLDER] "<location_path>" [NAME "<new_filter_name>"] [EXPRESSION "<new_expression>"] [DESCRIPTION "<new_description>"] [LOCATION "<new_location_path>"] [HIDDEN (TRUE | FALSE)] ON PROJECT "<project_name>";

   $foo->alter_filter(
        FILTER          => "filter_name",
        LOCATION        => "location_path",
        NEW_NAME        => "new_filter_name",
        NEW_EXPRESSION  => "new_expression",
        NEW_DESCRIPTION => "new_description",
        NEW_LOCATION    => "new_location_path",
        HIDDEN          => "TRUE" | "FALSE",
        PROJECT         => "project_name"
    );

Optional parameters: NEW_NAME => "new_filter_name", NEW_EXPRESSION => "new_expression", NEW_DESCRIPTION => "new_description", NEW_LOCATION => "new_location_path", HIDDEN => (TRUE | FALSE)

ALTER FILTER "South Region" IN FOLDER "\Public Objects\Filters" NAME "Southeast Region" EXPRESSION "Region@ID=3" DESCRIPTION "Modified South Region filter" LOCATION "\Public Objects\Filters\South Region" HIDDEN FALSE ON PROJECT "MicroStrategy Tutorial";

    $foo->alter_filter(
        FILTER          => "South Region",
        LOCATION        => '\Public Objects\Filters',
        NEW_NAME        => "Southeast Region",
        NEW_EXPRESSION  => 'Region@ID=3',
        NEW_DESCRIPTION => "Modified South Region filter",
        NEW_LOCATION    => '\Public Objects\Filters\South Region',
        HIDDEN          => "FALSE",
        PROJECT         => "MicroStrategy Tutorial"
    );

ALTER FILTER "On Promotion(CM)" IN "\Public Objects\Filters" HIDDEN FALSE ON PROJECT "MicroStrategy Tutorial";

    $foo->alter_filter(
        FILTER   => 'On Promotion(CM)',
        LOCATION => '\Public Objects\Filters',
        HIDDEN   => "FALSE",
        PROJECT  => "MicroStrategy Tutorial"
    );

ALTER FILTER "West Region" IN "\Public Objects\Filters" NAME "East Region" EXPRESSION "Region@ID=2" ON PROJECT "MicroStrategy Tutorial";

    $foo->alter_filter(
        FILTER   => "West Region",
        LOCATION => 'Public Objects\Filters',
        NEW_NAME       => "East Region",
        NEW_EXPRESSION => 'Region@ID=2',
        PROJECT        => "MicroStrategy Tutorial"
    );

alter_folder_ace

ALTER ACE FOR FOLDER "<folder_name>" IN FOLDER "<location_path>" [(USER | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]] [DEFAULT accessright1 [, accessright2 [, accessrightn]]]) [CHILDRENACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]] [DEFAULT accessright1 [, accessright2 [, accessrightn]]])]] FOR PROJECT "<project_name>";

    $foo->alter_folder_ace(
        FOLDER                   => "folder_name",
        LOCATION                 => "location_path",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        ACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" |
          "DEFAULT" | "CUSTOM",
        ACCESSRIGHTS_CUSTOM => {
            BROWSE  => "GRANT" | "DENY",
            READ    => "GRANT" | "DENY",
            WRITE   => "GRANT" | "DENY",
            DELETE  => "GRANT" | "DENY",
            CONTROL => "GRANT" | "DENY",
            USE     => "GRANT" | "DENY",
            EXECUTE => "GRANT" | "DENY"
        },
        CHILDRENACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" |
          "DENIEDALL" | "DEFAULT" | "CUSTOM",
        CHILDRENACCESSRIGHTS_CUSTOM => {
            BROWSE  => "GRANT" | "DENY",
            READ    => "GRANT" | "DENY",
            WRITE   => "GRANT" | "DENY",
            DELETE  => "GRANT" | "DENY",
            CONTROL => "GRANT" | "DENY",
            USE     => "GRANT" | "DENY",
            EXECUTE => "GRANT" | "DENY"
        },
        PROJECT => "project_name"
    );

Optional parameters: ACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY" }, CHILDRENACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY" },

alter_folder_acl

   $foo->alter_folder_acl(
        FOLDER              => "folder_name",
        LOCATION            => "location_path",
        PROPAGATE_OVERWRITE => "TRUE" | "FALSE",
        RECURSIVELY         => "TRUE" | "FALSE",
        PROJECT             => "project_name"
    );

Optional parameters: PROPAGATE_OVERWRITE => "TRUE" | "FALSE", RECURSIVELY => "TRUE" | "FALSE",

ALTER ACL FOR FOLDER "<folder_name>" IN FOLDER "<location_path>" [PROPAGATE OVERWRITE [RECURSIVELY]] FOR PROJECT "<project_name>";

ALTER ACL FOR FOLDER "Subtotals" IN FOLDER "\Project Objects" PROPAGATE OVERWRITE RECURSIVELY FOR PROJECT "MicroStrategy Tutorial";

alter_folder

   $foo->alter_folder(
        FOLDER          => "folder_name",
        LOCATION        => "location_path",
        NEW_NAME        => "new_folder_name",
        NEW_DESCRIPTION => "new_description",
        HIDDEN          => "TRUE" | "FALSE",
        NEW_LOCATION    => "new_location_path",
        PROJECT         => "project_name"
    );

Optional parameters: NEW_NAME => "new_folder_name", NEW_DESCRIPTION => "new_description", HIDDEN => "TRUE" | "FALSE", NEW_LOCATION => "new_location_path",

ALTER FOLDER "<folder_name>" IN "<location_path>" [NAME "<new_folder_name>"] [DESCRIPTION "<new_description>"] [HIDDEN (TRUE | FALSE)] [LOCATION "<new_location_path>"] FOR PROJECT "<project_name>";

alter_metric

    $foo->alter_metric(
        METRIC          => "metric_name",
        LOCATION        => "location_path",
        NEW_NAME        => "new_metric_name",
        NEW_EXPRESSION  => "new_expression",
        NEW_DESCRIPTION => "new_description",
        NEW_LOCATION    => "new_location_path",
        HIDDEN          => "TRUE" | "FALSE",
        PROJECT         => "project_name"
    );

Optional parameters: LOCATION => "location_path", NEW_NAME => "new_metric_name", NEW_EXPRESSION => "new_expression", NEW_DESCRIPTION => "new_description", NEW_LOCATION => "new_location_path", HIDDEN => "TRUE" | "FALSE",

ALTER METRIC "<metric_name>" IN [FOLDER] "<location_path>" [NAME "<new_metric_name>"] [EXPRESSION "<new_expression>"] [DESCRIPTION "<new_description>"] [LOCATION "<new_location_path>"] [HIDDEN (TRUE | FALSE)] ON PROJECT "<project_name>";

alter_object_caching

This command can be used only in 3-tier Project Source Names.

    $foo->alter_object_caching(
        PROJECT           => "project_name",
        MAXRAMUSAGE       => "number_of_Kb",
        MAXRAMUSAGECLIENT => "number_of_kb"
    );

Optional parameters: MAXRAMUSAGE => "number_of_Kb", MAXRAMUSAGECLIENT => "number_of_kb"

ALTER OBJECT CACHING IN [PROJECT] "<project_name>" [MAXRAMUSAGE <number_of_Kb>] [MAXRAMUSAGECLIENT <number_of_kb>];

alter_project_ace

    $foo->alter_project_ace(
        PROJECT_OBJECT_TYPE      => "project_object_type",
        OBJECT_NAME              => "object_name",
        LOCATION                 => "location_path",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        ACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" |
          "DEFAULT" | "CUSTOM",
        AACCESSRIGHTS_CUSTOM => {
            BROWSE  => "GRANT" | "DENY",
            READ    => "GRANT" | "DENY",
            WRITE   => "GRANT" | "DENY",
            DELETE  => "GRANT" | "DENY",
            CONTROL => "GRANT" | "DENY",
            USE     => "GRANT" | "DENY",
            EXECUTE => "GRANT" | "DENY"
        },
        PROJECT => "project_name"
    );

Optional parameters: USER_OR_GROUP => "USER" | "GROUP", USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name", ACCESSRIGHTS => "VIEW" | "MODIFY" | "FULLCONTROL" | "DENIEDALL" | "DEFAULT" | "CUSTOM", AACCESSRIGHTS_CUSTOM => { BROWSE => "GRANT" | "DENY", READ => "GRANT" | "DENY", WRITE => "GRANT" | "DENY", DELETE => "GRANT" | "DENY", CONTROL => "GRANT" | "DENY", USE => "GRANT" | "DENY", EXECUTE => "GRANT" | "DENY" },

ALTER ACE FOR <project_object_type> "<object_name>" IN FOLDER "<location_path>" [(USER | GROUP) "<user_login_or_group_name>" ACCESSRIGHTS (VIEW | MODIFY | FULLCONTROL | DENIEDALL | DEFAULT | CUSTOM [GRANT <accessright1> [, <accessright2> [,... <accessrightN>]]] [DENY <accessright1> [, <accessright2> [,... <accessrightN>]]] [DEFAULT accessright1 [, accessright2 [, accessrightn]]])] FOR PROJECT "<project_name>";

List of Project Object Types: REPORT, DOCUMENT, PROMPT, SECFILTER, CONSOLIDATION, CUSTOMGROUP, DRILLMAP, FILTER, METRIC, SEARCH, TEMPLATE, FACT, HIERARCHY, ATTRIBUTE, FUNCTION, PARTITION, TABLE, TRANSFORMATION, SUBTOTAL, AUTOSTYLE

alter_project_config

    $foo->alter_project_config(
        DESCRIPTION            => "Project_description",
        WAREHOUSE              => "WH_name",
        STATUS                 => "html_input_file",
        SHOWSTATUS             => "TRUE" | "FALSE",
        STATUSONTOP            => "TRUE" | "FALSE",
        DOCDIRECTORY           => "folder_path",
        MAXNOATTRELEMS         => "no_attribute_elems",
        USEWHLOGINEXEC         => "TRUE" | "FALSE",
        ENABLEOBJECTDELETION   => "TRUE" | "FALSE",
        MAXREPORTEXECTIME      => "no_seconds",
        MAXNOREPORTRESULTROWS  => "no_rows",
        MAXNOELEMROWS          => "no_rows",
        MAXNOINTRESULTROWS     => "no_rows",
        MAXJOBSUSERACCT        => "no_jobs",
        MAXJOBSUSERSESSION     => "no_jobs",
        MAXEXECJOBSUSER        => "no_jobs",
        MAXJOBSPROJECT         => "no_jobs",
        MAXUSERSESSIONSPROJECT => "no_user_sessions",
        PROJDRILLMAP           => "drill_map",
        DRILLMAP_LOCATION      => "drill_map_location_path",
        REPORTTPL              => "report_template",
        REPORTSHOWEMPTYTPL     => "TRUE" | "FALSE",
        TEMPLATETPL            => "template_template",
        TEMPLATESHOWEMPTYTPL   => "TRUE" | "FALSE",
        METRICTPL              => "metric_template",
        METRICSHOWEMPTYTPL     => "TRUE" | "FALSE",
        PROJECT                => "project_name"
    );

Optional parameters: DESCRIPTION => "Project_description", WAREHOUSE => "WH_name", STATUS => "html_input_file", SHOWSTATUS => "TRUE" | "FALSE", STATUSONTOP => "TRUE" | "FALSE", DOCDIRECTORY => "folder_path", MAXNOATTRELEMS => "no_attribute_elems", USEWHLOGINEXEC => "TRUE" | "FALSE", ENABLEOBJECTDELETION => "TRUE" | "FALSE", MAXREPORTEXECTIME => "no_seconds", MAXNOREPORTRESULTROWS => "no_rows", MAXNOELEMROWS => "no_rows", MAXNOINTRESULTROWS => "no_rows", MAXJOBSUSERACCT => "no_jobs", MAXJOBSUSERSESSION => "no_jobs", MAXEXECJOBSUSER => "no_jobs", MAXJOBSPROJECT => "no_jobs", MAXUSERSESSIONSPROJECT => "no_user_sessions", PROJDRILLMAP => "drill_map", DRILLMAP_LOCATION => "drill_map_location_path", REPORTTPL => "report_template", REPORTSHOWEMPTYTPL => "TRUE" | "FALSE", TEMPLATETPL => "template_template", TEMPLATESHOWEMPTYTPL => "TRUE" | "FALSE", METRICTPL => "metric_template", METRICSHOWEMPTYTPL => "TRUE" | "FALSE",

This command can be used only in 3-tier Project Source Names.

ALTER PROJECT CONFIGURATION [DESCRIPTION "<Project_description>"] [WAREHOUSE "<WH_name>"] [STATUS "<html_input_file>"] [SHOWSTATUS (TRUE | FALSE)] [STATUSONTOP (TRUE | FALSE)] [DOCDIRECTORY "<folder_path>"] [MAXNOATTRELEMS <no_attribute_elems>] [USEWHLOGINEXEC (TRUE | FALSE)] [ENABLEOBJECTDELETION (TRUE | FALSE)] [MAXREPORTEXECTIME <no_seconds>] [MAXNOREPORTRESULTROWS <no_rows>] [MAXNOELEMROWS <no_rows>] [MAXNOINTRESULTROWS <no_rows>] [MAXJOBSUSERACCT <no_jobs>] [MAXJOBSUSERSESSION <no_jobs>] [MAXEXECJOBSUSER <no_jobs>] [MAXJOBSPROJECT <no_jobs>] [MAXUSERSESSIONSPROJECT <no_user_sessions>] [PROJDRILLMAP "<drill_map>" [IN FOLDER <drill_map_location_path>"]] [REPORTTPL "<report_template>"] [REPORTSHOWEMPTYTPL (TRUE | FALSE)] [TEMPLATETPL "<template_template>"] [TEMPLATESHOWEMPTYTPL (TRUE | FALSE)] [METRICTPL "<metric_template>"] [METRICSHOWEMPTYTPL (TRUE | FALSE)] IN PROJECT "<project_name>";

alter_report_caching

    $foo->alter_report_caching(
        PROJECT                  => "project_name",
        ENABLED                  => "ENABLED" | "DISABLED",
        CACHEFILEDIR             => "cache_file_directory",
        MAXRAMUSAGE              => "number_of_Kb",
        MAXNOCACHES              => "number_of_Caches",
        LOADCACHESONSTARTUP      => "TRUE" | "FALSE",
        ENABLEPROMPTEDCACHING    => "TRUE" | "FALSE",
        ENABLENONPROMPTEDCACHING => "TRUE" | "FALSE",
        CREATECACHESPERUSER      => "TRUE" | "FALSE",
        CREATECACHESPERDBLOGIN   => "TRUE" | "FALSE",
        CREATECACHESPERDBCONN    => "TRUE" | "FALSE",
        CACHEEXP                 => "NEVER" | "IN number_of_hours HOURS"
    );

Optional parameters: ENABLED => "ENABLED" | "DISABLED", CACHEFILEDIR => "cache_file_directory", MAXRAMUSAGE => "number_of_Kb", MAXNOCACHES => "number_of_Caches", LOADCACHESONSTARTUP => "TRUE" | "FALSE", ENABLEPROMPTEDCACHING => "TRUE" | "FALSE", ENABLENONPROMPTEDCACHING => "TRUE" | "FALSE", CREATECACHESPERUSER => "TRUE" | "FALSE", CREATECACHESPERDBLOGIN => "TRUE" | "FALSE", CREATECACHESPERDBCONN => "TRUE" | "FALSE", CACHEEXP => "NEVER" | "IN number_of_hours HOURS"

This command can be used only in 3-tier Project Source Names.

ALTER REPORT CACHING IN [PROJECT] "<project_name>" [(ENABLED | DISABLED)] [CACHEFILEDIR "<cache_file_directory>"] [MAXRAMUSAGE <number_of_Kb>] [MAXNOCACHES <number_of_Caches>] [LOADCACHESONSTARTUP (TRUE | FALSE)] [ENABLEPROMPTEDCACHING (TRUE | FALSE)] [ENABLENONPROMPTEDCACHING (TRUE | FALSE)] [CREATECACHESPERUSER (TRUE | FALSE)] [CREATECACHESPERDBLOGIN (TRUE | FALSE)] [CREATECACHESPERDBCONN (TRUE | FALSE)] [CACHEEXP (NEVER | [IN] <number_of_hours> HOURS)];

ALTER REPORT CACHING IN PROJECT "MicroStrategy Tutorial" ENABLED CACHEFILEDIR ".\Caches\RAVALOS4" MAXRAMUSAGE 10240 CREATECACHESPERUSER FALSE CACHEEXP IN 24 HOURS MAXNOCACHES 10000;

alter_report

    $foo->alter_report(
        REPORT              => "report_name",
        LOCATION            => "location_path",
        ENABLECACHE         => "TRUE" | "FALSE" | "DEFAULT",
        NEW_NAME            => "new_report_name",
        NEW_LONGDESCRIPTION => "new_long_description",
        NEW_DESCRIPTION     => "new_description",
        NEW_LOCATION        => "new_location_path",
        HIDDEN              => "TRUE" | "FALSE",
        PROJECT             => "project_name"
    );

Optional parameters: ENABLECACHE => "TRUE" | "FALSE" | "DEFAULT", NEW_NAME => "new_report_name", NEW_LONGDESCRIPTION => "new_long_description", NEW_DESCRIPTION => "new_description", NEW_LOCATION => "new_location_path", HIDDEN => "TRUE" | "FALSE", PROJECT => "project_name"

ALTER REPORT "<report_name>" IN FOLDER "<location_path>" [ENABLECACHE (TRUE | FALSE | DEFAULT)] [NAME "<new_report_name>"] [LONGDESCRIPTION "<new_long_description>"] [DESCRIPTION "<new_description>"] [FOLDER "<new_location_path>"] [HIDDEN (TRUE | FALSE)] FOR PROJECT "<project_name>";

alter_schedule

    $foo->alter_schedule(
        SCHEDULE    => "schedule_name",
        NEW_NAME    => "new_name",
        DESCRIPTION => "new_description",
        STARTDATE   => "new_start_date",
        ENDDATE     => "new_end_date" | "NEVER",
        TYPE        => "EVENTTRIGGERED" | "TIMETRIGGERED",
        EVENTNAME   => "<new_event_name>",
        DAILY       => "EVERY (<new_number> DAYS | WEEKDAY)",
        WEEKLY      => "EVERY
    <new_number> WEEKS ON day_of_week1 [, day_of_week2 [,...
    day_of_week7]]", MONTHLY => "(DAY <new_number> OF EVERY <new_number>
    MONTHS (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 |
    day_of_week2 | ... | day_of_week7) OF EVERY <new_number> MONTHS)",
        YEARLY => "((month_of_year1 | month_of_year2 | ... | month_of_year12)
    <new_number> (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 |
    day_of_week2 | ... | day_of_week7) OF (month_of_year1 | month_of_year2 |
    ... | month_of_year12))" EXECUTE_TIME_OF_DAY => "new_time_of_day",
        EXECUTE_ALL_DAY => "EVERY <new_number> (MINUTES | HOURS [START AFTER
    MIDNIGHT <number> MINUTES] )",
    );

ALTER SCHEDULE "<schedule_name>" [NAME "<new_name>" [DESCRIPTION "<new_description>"] [STARTDATE <new_start_date>] [ENDDATE (<new_end_date> | NEVER)] [TYPE (EVENTTRIGGERED EVENTNAME "<new_event_name>" | TIMETRIGGERED (DAILY EVERY (<new_number> DAYS | WEEKDAY) | WEEKLY EVERY <new_number> WEEKS ON day_of_week1 [, day_of_week2 [,... day_of_week7]] | MONTHLY (DAY <new_number> OF EVERY <new_number> MONTHS | (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 | day_of_week2 | ... | day_of_week7) OF EVERY <new_number> MONTHS) | YEARLY ((month_of_year1 | month_of_year2 | ... | month_of_year12) <new_number> | (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 | day_of_week2 | ... | day_of_week7) OF (month_of_year1 | month_of_year2 | ... | month_of_year12))) [EXECUTE (<new_time_of_day> | ALL DAY EVERY <new_number> (MINUTES | HOURS [START AFTER MIDNIGHT <number> MINUTES]))])];

ALTER SCHEDULE "Schedule1" NAME "NewSchedule1" DESCRIPTION "NewSchedule1 Desc" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED YEARLY LAST WEDNESDAY OF MAY EXECUTE 15:30;

$foo->alter_schedule( SCHEDULE => "Schedule1", NEW_NAME => "NewSchedule1", DESCRIPTION => "NewSchedule1 Desc", STARTDATE => '09/10/2002', ENDDATE => "NEVER", TYPE => "TIMETRIGGERED", YEARLY => "LAST WEDNESDAY OF MAY", EXECUTE_TIME_OF_DAY => '15:30' );

ALTER SCHEDULE "Database Load" STARTDATE 09/10/2002 ENDDATE NEVER TYPE EVENTTRIGGERED EVENTNAME "Database Load";

    $foo->alter_schedule(
        SCHEDULE  => "Database Load",
        STARTDATE => '09/10/2002',
        ENDDATE   => "NEVER",
        TYPE      => "EVENTTRIGGERED",
        EVENTNAME => "Database Load"
    );

ALTER SCHEDULE "Schedule3" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED DAILY EVERY 5 DAYS EXECUTE 10:00;

    $foo->alter_schedule(
        SCHEDULE            => "Schedule3",
        STARTDATE           => '09/10/2002',
        ENDDATE             => "NEVER",
        TYPE                => "TIMETRIGGERED",
        DAILY               => "EVERY 5 DAYS",
        EXECUTE_TIME_OF_DAY => '10:00'
    );

ALTER SCHEDULE "Schedule4" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED DAILY EVERY WEEKDAY EXECUTE ALL DAY EVERY 5 MINUTES;

    $foo->alter_schedule(
        SCHEDULE        => "Schedule4",
        STARTDATE       => '09/10/2002',
        ENDDATE         => "NEVER",
        TYPE            => "TIMETRIGGERED",
        DAILY           => "EVERY WEEKDAY",
        EXECUTE_ALL_DAY => "EVERY 5 MINUTES"
    );

ALTER SCHEDULE "Schedule5" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED WEEKLY EVERY 5 WEEKS ON MONDAY, TUESDAY, WEDNESDAY EXECUTE 18:00;

    $foo->alter_schedule(
        SCHEDULE            => "Schedule5",
        STARTDATE           => '09/10/2002',
        ENDDATE             => "NEVER",
        TYPE                => "TIMETRIGGERED",
        WEEKLY              => "EVERY 5 WEEKS ON MONDAY, TUESDAY, WEDNESDAY",
        EXECUTE_TIME_OF_DAY => '18:00',
    );

ALTER SCHEDULE "Schedule6" STARTDATE 09/10/2002 ENDDATE 09/27/02 TYPE TIMETRIGGERED MONTHLY DAY 3 OF EVERY 5 MONTHS EXECUTE ALL DAY EVERY 5 HOURS START AFTER MIDNIGHT 10 MINUTES;

   $foo->alter_schedule(
        SCHEDULE        => "Schedule6",
        STARTDATE       => '09/10/2002',
        ENDDATE         => '09/27/02',
        TYPE            => "TIMETRIGGERED",
        MONTHLY         => "DAY 3 OF EVERY 5 MONTHS",
        EXECUTE_ALL_DAY => "EVERY 5 HOURS START AFTER MIDNIGHT 10 MINUTES",
    );

ALTER SCHEDULE "Schedule7" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED MONTHLY FIRST THURSDAY OF EVERY 10 MONTHS EXECUTE 13:00;

    $foo->alter_schedule(
        SCHEDULE            => "Schedule7",
        STARTDATE           => '09/10/2002',
        ENDDATE             => "NEVER",
        TYPE                => "TIMETRIGGERED",
        MONTHLY             => "FIRST THURSDAY OF EVERY 10 MONTHS",
        EXECUTE_TIME_OF_DAY => "13:00",
    );

ALTER SCHEDULE "Schedule8" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED YEARLY MARCH 10 EXECUTE 17:00;

    $foo->alter_schedule(
        SCHEDULE            => "Schedule8",
        STARTDATE           => '09/10/2002',
        ENDDATE             => "NEVER",
        TYPE                => "TIMETRIGGERED",
        YEARLY              => "MARCH 10",
        EXECUTE_TIME_OF_DAY => "17:00",
    );

ALTER SCHEDULE "Schedule9" STARTDATE 09/10/2002 ENDDATE NEVER TYPE TIMETRIGGERED YEARLY SECOND SATURDAY OF MAY EXECUTE 09:00;

    $foo->alter_schedule(
        SCHEDULE            => "Schedule9",
        STARTDATE           => "09/10/2002",
        ENDDATE             => "NEVER",
        TYPE                => "TIMETRIGGERED",
        YEARLY              => "SECOND SATURDAY OF MAY",
        EXECUTE_TIME_OF_DAY => "09:00",
    );

alter_security_filter

    $foo->alter_security_filter(
        SECURITY_FILTER       => "sec_filter_name",
        LOCATION              => "location_path",
        HIDDEN                => "TRUE" | "FALSE",
        PROJECT               => "project_name",
        NEW_NAME              => "new_sec_filter_name",
        FILTER                => "FILTER_NAME",
        FILTER_LOCATION       => "FILTER_LOCATION_PATH",
        EXPRESSION            => "NEW_EXPRESSION",
        TOP_ATTRIBUTE_LIST    => [ "top_attr_name1", "top_attr_nameN" ],
        BOTTOM_ATTRIBUTE_LIST => [ "bottom_attr_name1", "bottom_attr_nameN" ]
    );

Optional parameters: LOCATION => "location_path", HIDDEN => "TRUE" | "FALSE", NEW_NAME => "new_sec_filter_name", FILTER => "FILTER_NAME", FILTER_LOCATION => "FILTER_LOCATION_PATH", EXPRESSION => "NEW_EXPRESSION", TOP_ATTRIBUTE_LIST => [ "top_attr_name1", "top_attr_nameN" ], BOTTOM_ATTRIBUTE_LIST => [ "bottom_attr_name1", "bottom_attr_nameN" ]

ALTER SECURITY FILTER "<sec_filter_name>" [FOLDER "<location_path>"] [HIDDEN (TRUE | FALSE)] IN [PROJECT] "<project_name>" [NAME "<new_sec_filter_name>"] [(FILTER "<filter_name>" [IN FOLDER "<filter_location_path>"] | EXPRESSION "<new_expression>")] [TOP ATTRIBUTE LIST "<top_attr_name1>" [, "<top_attr_name2>" [, ... "<top_attr_nameN>"]]] [BOTTOM ATTRIBUTE LIST "<bottom_attr_name1>" [, "<bottom_attr_name2>" [, ... "<bottom_attr_nameN>"]]];

alter_security_role

    $foo->alter_security_role(
        SECURITY_ROLE => "sec_role_name",
        NAME          => "new_sec_role_name",
        DESCRIPTION   => "sec_role_description"
    );

Optional parameters: NAME => "new_sec_role_name", DESCRIPTION => "sec_role_description"

ALTER SECURITY ROLE "<sec_role_name>" [NAME "<new_sec_role_name>"] [DESCRIPTION "<sec_role_description>"];

alter_server_config

This command can be used only in 3-tier Project Source Names.

    $foo->alter_server_config(
        DESCRIPTION              => "description",
        MAXCONNECTIONTHREADS     => "number_of_threads",
        BACKUPFREQ               => "number_of_minutes",
        USEPERFORMANCEMON        => "TRUE" | "FALSE",
        USEMSTRSCHEDULER         => "TRUE" | "FALSE",
        SCHEDULERTIMEOUT         => "seconds",
        BALSERVERTHREADS         => "TRUE" | "FALSE",
        CACHECLEANUPFREQ         => "seconds",
        LICENSECHECKTIME         => "time_of_day",
        HISTORYDIR               => "folder_path",
        MAXNOMESSAGES            => "number_of_messages",
        MESSAGELIFETIME          => "days",
        MAXNOJOBS                => "number_of_jobs",
        MAXNOCLIENTCONNS         => "number_of_client_conns",
        IDLETIME                 => "number_of_seconds",
        WEBIDLETIME              => "number_of_seconds",
        MAXNOXMLCELLS            => "number_of_xml_cells",
        MAXNOXMLDRILLPATHS       => "number_of_xml_drill_paths",
        MAXMEMXML                => "number_MBytes",
        MAXMEMPDF                => "number_MBytes",
        MAXMEMEXCEL              => "number_MBytes",
        ENABLEWEBTHROTTLING      => "TRUE" | "FALSE",
        MAXMEMUSAGE              => "percentage",
        MINFREEMEM               => "percentage",
        ENABLEMEMALLOC           => "TRUE" | "FALSE",
        MAXALLOCSIZE             => "number_MBytes",
        ENABLEMEMCONTRACT        => "TRUE" | "FALSE",
        MINRESERVEDMEM           => "NUMBER_MBYTES",
        MINRESERVEDMEMPERCENTAGE => "PERCENTAGE",
        MAXVIRTUALADDRSPACE      => "percentage",
        MEMIDLETIME              => "seconds",
        WORKSETDIR               => "folder_path",
        MAXRAMWORKSET            => "number_KBytes"
    );

Optional parameters: ALL PARAMETERS ARE OPTIONAL.

ALTER SERVER CONFIGURATION [DESCRIPTION "<description>"] [MAXCONNECTIONTHREADS <number_of_threads>] [BACKUPFREQ <number_of_minutes>] [USEPERFORMANCEMON (FALSE | TRUE)] [USEMSTRSCHEDULER (FALSE | TRUE)] [SCHEDULERTIMEOUT <seconds>] [BALSERVERTHREADS (FALSE | TRUE)] [CACHECLEANUPFREQ <seconds>] [LICENSECHECKTIME <time_of_day>] [HISTORYDIR "<folder_path>"] [MAXNOMESSAGES <number_of_messages>] [MESSAGELIFETIME <days>] [MAXNOJOBS <number_of_jobs>] [MAXNOCLIENTCONNS <number_of_client_conns>] [IDLETIME <number_of_seconds>] [WEBIDLETIME <number_of_seconds>] [MAXNOXMLCELLS <number_of_xml_cells>] [MAXNOXMLDRILLPATHS <number_of_xml_drill_paths>] [MAXMEMXML number_MBytes] [MAXMEMPDF number_MBytes] [MAXMEMEXCEL number_MBytes] [ENABLEWEBTHROTTLING (TRUE | FALSE)] [MAXMEMUSAGE <percentage>] [MINFREEMEM <percentage>] [ENABLEMEMALLOC (TRUE | FALSE)] [MAXALLOCSIZE <number_MBytes>] [ENABLEMEMCONTRACT (TRUE | FALSE)] [(MINRESERVEDMEM <number_MBytes> | MINRESERVEDMEMPERCENTAGE <percentage>)] [MAXVIRTUALADDRSPACE <percentage>] [MEMIDLETIME <seconds>] [WORKSETDIR "<folder_path>"] [MAXRAMWORKSET <number_KBytes>];

ALTER SERVER CONFIGURATION MAXCONNECTIONTHREADS 5 BACKUPFREQ 0 USEPERFORMANCEMON TRUE USEMSTRSCHEDULER TRUE BALSERVERTHREADS FALSE HISTORYDIR ".\INBOX\dsmith" MAXNOMESSAGES 10 MAXNOJOBS 10000 MAXNOCLIENTCONNS 500 WEBIDLETIME 0 MAXNOXMLCELLS 500000 MAXNOXMLDRILLPATHS 100 MINFREEMEM 0;

alter_shortcut

    $foo->alter_shortcut(
        LOCATION              => "location_path",
        PROJECT_CONFIG_OBJECT => "project_config_object",
        SHORTCUT_NAME         => "shortcut_name",
        NEW_LOCATION          => "new_location_path",
        HIDDEN                => "TRUE" | "FALSE",
        PROJECT               => "project_name"
    );

Optional parameters: FOLDER => "<new_location_path>",HIDDEN => (TRUE | FALSE)

ALTER SHORTCUT IN FOLDER "<location_path>" FOR (FOLDER | CONSOLIDATION | DOCUMENT | FILTER | METRIC | PROMPT | REPORT | SEARCH | TEMPLATE | ATTRIBUTE | FACT | FUNCTION | HIERARCHY | TABLE | TRANSFORMATION | DRILLMAP | SECFILTER | AUTOSTYLE | BASEFORMULA) "<shortcut_name>" [FOLDER "<new_location_path>"] [HIDDEN (TRUE | FALSE)] FOR PROJECT "<project_name>" ;

Note: This is the object hierarchy used in shortcut management. To create a shortcut off any object at lower hierarchy, just specify the name of the object at the top level. TABLE: · LOGICAL TABLE · WAREHOUSE PARTITION TABLE · METADATA PARTITION TABLE METRIC: · SUBTOTAL · PREDICTIVE METRIC FILTER: · CUSTOMGROUP REPORT: · GRID · GRAPH · GRIDGRAPH · DATAMART · SQL DOCUMENT: · REPORTSERVICE DOCUMENT · HTML DOCUMENT

alter_statistics

    $foo->alter_statistics(
        DBINSTANCE      => "stats_dbinstance",
        ENABLED         => "ENABLED" | "DISABLED",
        USERSESSIONS    => "TRUE" | "FALSE",
        PROJECTSESSIONS => "TRUE" | "FALSE",
        BASICDOCJOBS    => "TRUE" | "FALSE",
        DETAILEDDOCJOBS => "TRUE" | "FALSE",
        BASICREPJOBS    => "TRUE" | "FALSE",
        CACHES          => "TRUE" | "FALSE",
        SCHEDULES       => "TRUE" | "FALSE",
        COLUMNSTABLES   => "TRUE" | "FALSE",
        DETAILEDREPJOBS => "TRUE" | "FALSE",
        JOBSQL          => "TRUE" | "FALSE",
        SECFILTERS      => "TRUE" | "FALSE",
        PROJECT         => "project_name"
    );

Optional parameters: DBINSTANCE => "stats_dbinstance", USERSESSIONS => "TRUE" | "FALSE", PROJECTSESSIONS => "TRUE" | "FALSE", BASICDOCJOBS => "TRUE" | "FALSE", DETAILEDDOCJOBS => "TRUE" | "FALSE", BASICREPJOBS => "TRUE" | "FALSE", CACHES => "TRUE" | "FALSE", SCHEDULES => "TRUE" | "FALSE", COLUMNSTABLES => "TRUE" | "FALSE", DETAILEDREPJOBS => "TRUE" | "FALSE", JOBSQL => "TRUE" | "FALSE", SECFILTERS => "TRUE" | "FALSE"

This command can be used only in 3-tier Project Source Names.

ALTER STATISTICS [DBINSTANCE "<stats_dbinstance>"] (ENABLED | DISABLED) [USERSESSIONS (TRUE | FALSE)] [PROJECTSESSIONS (TRUE | FALSE)] [BASICDOCJOBS (TRUE | FALSE)] [DETAILEDDOCJOBS (TRUE | FALSE) [BASICREPJOBS (TRUE | FALSE)] [CACHES (TRUE | FALSE)] [SCHEDULES (TRUE | FALSE)] [COLUMNSTABLES (TRUE | FALSE)] [DETAILEDREPJOBS (TRUE | FALSE)] [JOBSQL (TRUE | FALSE)] [SECFILTERS (TRUE | FALSE)] IN PROJECT "<project_name>";

ALTER STATISTICS DBINSTANCE "Tutorial Data" ENABLED USERSESSIONS TRUE PROJECTSESSIONS TRUE BASICDOCJOBS TRUE DETAILEDDOCJOBS TRUE BASICREPJOBS TRUE CACHES TRUE SCHEDULES TRUE COLUMNSTABLES TRUE DETAILEDREPJOBS TRUE JOBSQL TRUE SECFILTERS TRUE IN PROJECT "MT";

    $foo->alter_statistics(
        DBINSTANCE      => "Tutorial Data",
        ENABLED         => "ENABLED",
        USERSESSIONS    => "TRUE",
        PROJECTSESSIONS => "TRUE",
        BASICDOCJOBS    => "TRUE",
        DETAILEDDOCJOBS => "TRUE",
        BASICREPJOBS    => "TRUE",
        CACHES          => "TRUE",
        SCHEDULES       => "TRUE",
        COLUMNSTABLES   => "TRUE",
        DETAILEDREPJOBS => "TRUE",
        JOBSQL          => "TRUE",
        SECFILTERS      => "TRUE",
        PROJECT         => "MT"
    );

alter_table

    $foo->alter_table(
        TABLE               => "table_name",
        NEW_NAME            => "new_table_name",
        NEW_DESCRIPTION     => "new_description",
        NEW_LOCATION        => "new_location_path",
        HIDDEN              => "TRUE" | "FALSE",
        LOGICALSIZE         => "logical_size",
        PRESERVELOGICALSIZE => "TRUE" | "FALSE",
        PROJECT             => "project_name"
    );

Optional parameters: NEW_NAME => "new_table_name", NEW_DESCRIPTION => "new_description", NEW_LOCATION => "new_location_path", HIDDEN => "TRUE" | "FALSE", LOGICALSIZE => "logical_size", PRESERVELOGICALSIZE => "TRUE" | "FALSE",

ALTER TABLE "<table_name>" [NAME "<new_table_name>"] [DESCRIPTION "<new_description>"] [FOLDER "<new_location_path>"] [HIDDEN (TRUE | FALSE)] [LOGICALSIZE <logical_size>] [PRESERVELOGICALSIZE (TRUE | FALSE)] FOR PROJECT "<project_name>";

Warehouse Partition Table and Non_Relational Table are not supported.

Note that the keyword FOLDER in ALTER TABLE specifies the location where a table is going to be moved to not the location where the table is currently located.

Warehouse table names are case sensitive; logical table names are not case sensitive.

ALTER TABLE "DT_QUARTER" NAME "2" DESCRIPTION "1" FOLDER "\Schema Objects\Tables\New Tables" HIDDEN FALSE LOGICALSIZE 10 PRESERVELOGICALSIZE TRUE FOR PROJECT "MT";

    $foo->alter_table(
        TABLE           => "DT_QUARTER",
        NEW_NAME        => "2",
        NEW_DESCRIPTION => "1",
        NEW_LOCATION    => '\Schema Objects\Tables\New Tables',
        HIDDEN              => "FALSE",
        LOGICALSIZE         => 10,
        PRESERVELOGICALSIZE => "TRUE",
        PROJECT             => "MT"
      );

alter_user_group

    $foo->alter_user_group(
        USER_GROUP   => "user_group_name",
        NEW_NAME     => "new_user_group_name",
        DESCRIPTION  => "user_group_desc",
        LDAPLINK     => "ldap_user_id",
        MEMBERS      => [ "login_name1", "login_nameN" ],
        PARENT_GROUP => "parent_group"
    );

Optional parameters: NAME => "<new_user_group_name>",DESCRIPTION => "<user_group_desc>",LDAPLINK => "<ldap_user_id>",MEMBERS => "<login_name1>" , "<login_name2>" , ... "<login_nameN>",GROUP => "<parent_group>"

ALTER USER GROUP "<user_group_name>" [NAME "<new_user_group_name>"] [DESCRIPTION "<user_group_desc>"] [LDAPLINK "<ldap_user_id>"] [MEMBERS "<login_name1>" [, "<login_name2>" [, ... "<login_nameN>"]]] [GROUP "<parent_group>"];

ALTER USER GROUP "Managers" DESCRIPTION "Managers of XYZ Company";

alter_user

    $foo->alter_user(
        USER           => "login_name",
        NAME           => "new_login_name",
        NTLINK         => "nt_user_id",
        PASSWORD       => "user_password",
        FULLNAME       => "user_fullname",
        DESCRIPTION    => "user_description",
        LDAPLINK       => "ldap_user_id",
        WHLINK         => "warehouse_login",
        WHPASSWORD     => "warehouse_password",
        ALLOWCHANGEPWD => "TRUE" | "FALSE",
        ALLOWSTDAUTH   => "TRUE" | "FALSE",
        CHANGEPWD      => "TRUE" | "FALSE",
        PASSWORDEXP    => "NEVER" | "IN new_number_of_days DAYS" | "ON expiration_date",
        PASSWORDEXPFREQ => "number",
        ENABLED         => "ENABLED" | "DISABLED",
        GROUP           => "user_group_name"
    );

Optional parameters: NAME => "new_login_name", NTLINK => "nt_user_id", PASSWORD => "user_password", FULLNAME => "user_fullname", DESCRIPTION => "user_description", LDAPLINK => "ldap_user_id", WHLINK => "warehouse_login", WHPASSWORD => "warehouse_password", ALLOWCHANGEPWD => "TRUE" | "FALSE", ALLOWSTDAUTH => "TRUE" | "FALSE", CHANGEPWD => "TRUE" | "FALSE", PASSWORDEXP => "NEVER" | "IN new_number_of_days DAYS" | "ON expiration_date", PASSWORDEXPFREQ => "number", ENABLED => "ENABLED" | "DISABLED", GROUP => "user_group_name"

ALTER USER "<login_name>" [NAME "<new_login_name>"] [NTLINK "<nt_user_id>"] [PASSWORD "<user_password>"] [FULLNAME "<user_fullname>"] [DESCRIPTION "<user_description>"] [LDAPLINK "<ldap_user_id>"] [WHLINK "<warehouse_login>"] [WHPASSWORD "<warehouse_password>"] [ALLOWCHANGEPWD (TRUE | FALSE)] [ALLOWSTDAUTH (TRUE | FALSE)] [CHANGEPWD (TRUE | FALSE)] [PASSWORDEXP (NEVER | IN new_number_of_days DAYS | ON <expiration_date>)] [PASSWORDEXPFREQ <number> DAYS] [ENABLED | DISABLED] [IN GROUP "<user_group_name>"];

alter_users

    $foo->alter_users(
        USER_GROUP     => "user_group_name",
        PASSWORD       => "new_password",
        DESCRIPTION    => "new_user_description",
        ALLOWCHANGEPWD => "TRUE" | "FALSE",
        ALLOWSTDAUTH   => "TRUE" | "FALSE",
        CHANGEPWD      => "TRUE" | "FALSE",
        PASSWORDEXP    => "NEVER" | "new_number_of_days" | "new_expiration_date",
        PASSWORDEXPFREQ => "number_of_days",
        ENABLED         => "ENABLED | DISABLED",
        GROUP           => "new_user_group"
    );

Optional parameters: PASSWORD => "new_password", DESCRIPTION => "new_user_description", ALLOWCHANGEPWD => "TRUE" | "FALSE", ALLOWSTDAUTH => "TRUE" | "FALSE", CHANGEPWD => "TRUE" | "FALSE", PASSWORDEXP => "NEVER" | "new_number_of_days" | "new_expiration_date", PASSWORDEXPFREQ => "number_of_days", ENABLED => "ENABLED | DISABLED", GROUP => "new_user_group"

ALTER USERS IN USER GROUP "<user_group_name>" [PASSWORD "<new_password>"] [DESCRIPTION "<new_user_description>"] [ALLOWCHANGEPWD (TRUE | FALSE)] [ALLOWSTDAUTH (TRUE | FALSE)] [CHANGEPWD (TRUE | FALSE)] [PASSWORDEXP (NEVER | [IN] <new_number_of_days> DAYS |[ON] <new_expiration_date>] [PASSWORDEXPFREQ <number> DAYS] [(ENABLED | DISABLED] [GROUP "<new_user_group>"];

ALTER USERS IN USER GROUP "Managers" PASSWORD "test" CHANGEPWD TRUE PASSWORDEXP IN 5 DAYS PASSWORDEXPFREQ 90 DAYS;

apply_run_time_settings;

$foo->apply_run_time_settings;

This command can be used only in 3-tier Project Source Names.

APPLY RUN TIME SETTINGS;

apply_security_filter

    $foo->apply_security_filter(
        SECURITY_FILTER          => "sec_filter_name",
        LOCATION                 => "location_path",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "login_name_or_group_name",
        PROJECT                  => "project_name"
    );

Optional parameters: LOCATION => "location_path", USER_OR_GROUP => "USER" | "GROUP", USER_LOGIN_OR_GROUP_NAME => "login_name_or_group_name"

APPLY SECURITY FILTER "<sec_filter_name>" [FOLDER "<location_path>"] TO ([USER] "<login_name>" | [USER] GROUP "<group_name>") ON [PROJECT] "<project_name>";

create_attribute

    $foo->create_attribute(
        ATTRIBUTE       => "attribute_name",
        DESCRIPTION     => "description",
        LOCATION        => "location_path",
        HIDDEN          => "TRUE" | "FALSE",
        ATTRIBUTEFORM   => "form_name",
        FORMDESC        => "form_description",
        FORMTYPE        => "formtype",
        SORT            => "NONE | ASC | DESC",
        EXPRESSION      => "form_expression",
        EXPSOURCETABLES => [ "sourcetable1", "sourcetableN" ],
        LOOKUPTABLE     => "lookup_table",
        PROJECT         => "project_name"
    );

Optional parameters: DESCRIPTION => "description", HIDDEN => "TRUE" | "FALSE", FORMDESC => "form_description", FORMTYPE => "formtype", SORT => "NONE | ASC | DESC", EXPSOURCETABLES => [ "sourcetable1", "sourcetableN" ],

CREATE ATTRIBUTE "<attribute_name>" [DESCRIPTION "<description>"] IN FOLDER "<location_path>" [HIDDEN TRUE | FALSE] ATTRIBUTEFORM "<form_name>" [FORMDESC "<form_description>"] [FORMTYPE (NUMBER | TEXT | DATETIME | DATE | TIME | URL | EMAIL | HTML | PICTURE | BIGDECIMAL)] [SORT (NONE | ASC | DESC)] EXPRESSION "<form_expression>" [EXPSOURCETABLES "<sourcetable1>" [, "<sourcetable1> [, ..."<sourcetableN>"]]] LOOKUPTABLE "<lookup_table>" FOR PROJECT "<project_name>";

CREATE ATTRIBUTE "Day" DESCRIPTION "Duplicate of Day Attribute from folder \Time" IN FOLDER "\Schema Objects\Attributes" ATTRIBUTEFORM "ID" FORMDESC "Basic ID form" FORMTYPE TEXT SORT ASC EXPRESSION "[DAY_DATE]" LOOKUPTABLE "LU_DAY" FOR PROJECT "MicroStrategy Tutorial";

CREATE ATTRIBUTE "Copy of Day" DESCRIPTION "Duplicate of Day Attribute from folder \Time" IN FOLDER "\Schema Objects\Attributes" HIDDEN TRUE ATTRIBUTEFORM "ID" FORMDESC "Basic ID form" FORMTYPE TEXT SORT ASC EXPRESSION "[DAY_DATE]" LOOKUPTABLE "LU_DAY" FOR PROJECT "MicroStrategy Tutorial";

create_connection_map

    $foo->create_connection_map(
        USER         => "login_name",
        DBINSTANCE   => "dbinstance_name",
        DBCONNECTION => "dbConnection_name",
        DBLOGIN      => "dblogin_name",
        PROJECT      => "project_name"
    );

CREATE CONNECTION MAP FOR USER "<login_name>" DBINSTANCE "<dbinstance_name>" DBCONNECTION "<dbConnection_name>" DBLOGIN "<dblogin_name>" ON PROJECT "<project_name>";

create_custom_group

    $foo->create_custom_group(
        CUSTOMGROUP                 => "customgroup_name",
        DESCRIPTION                 => "description",
        ENABLEHIERARCHICALDISPLAY   => "TRUE" | "FALSE",
        ENABLESUBTOTALDISPLAY       => "TRUE" | "FALSE",
        ELEMENTHEADERPOSITION       => "ABOVE" | "BELOW",
        HIDDEN                      => "TRUE" | "FALSE",
        ELEMENT                     => "element_name",
        SHOWELEMENTNAME             => "TRUE" | "FALSE",
        SHOWITEMSINELEMENT          => "TRUE" | "FALSE",
        SHOWITEMSINELEMENTANDEXPAND => "TRUE" | "FALSE",
        SHOWALLANDEXPAND            => "TRUE" | "FALSE",
        EXPRESSION                  => "expression",
        BREAKAMBIGUITY_FOLDER       => "local_symbol_folder",
        BANDNAMES                   => [ "name1", "nameN" ],
        OUTPUTLEVEL                 => [ "attribute_name1", "attributenameN" ],
        OUTPUTLEVEL_LOCATIONS       =>
          [ "outputlevel_location_path1", "outputlevel_location_pathN" ],
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: DESCRIPTION => "description", ENABLEHIERARCHICALDISPLAY => "TRUE" | "FALSE", ENABLESUBTOTALDISPLAY => "TRUE" | "FALSE", ELEMENTHEADERPOSITION => "ABOVE" | "BELOW", HIDDEN => "TRUE" | "FALSE", ELEMENT => "element_name", SHOWELEMENTNAME => "TRUE" | "FALSE", SHOWITEMSINELEMENT => "TRUE" | "FALSE", SHOWITEMSINELEMENTANDEXPAND => "TRUE" | "FALSE", SHOWALLANDEXPAND => "TRUE" | "FALSE", EXPRESSION => "expression", BREAKAMBIGUITY_FOLDER => "local_symbol_folder", BANDNAMES => [ "name1", "nameN" ], OUTPUTLEVEL => [ "attribute_name1", "attributenameN" ], OUTPUTLEVEL_LOCATIONS => [ "outputlevel_location_path1", "outputlevel_location_pathN" ]

CREATE CUSTOMGROUP "<customgroup_name>" [DESCRIPTION "<description>"] [ENABLEHIERARCHICALDISPLAY (TRUE | FALSE)] [ENABLESUBTOTALDISPLAY (TRUE | FALSE)] [ELEMENTHEADERPOSITION (ABOVE | BELOW)] [HIDDEN (TRUE | FALSE)] ELEMENT "<element_name>" [(SHOWELEMENTNAME | SHOWITEMSINELEMENT | SHOWITEMSINELEMENTANDEXPAND | SHOWALLANDEXPAND)] EXPRESSION "<expression>" [BREAKAMBIGUITY FOLDER "<local_symbol_folder>"] [BANDNAMES "<name1>", "<name2>", "<nameN>"] [OUTPUTLEVEL "<attribute_name1>", "<attribute_name2>", "<attributenameN>" IN FOLDERS "<outputlevel_location_path1>", "<outputlevel_location_path2>", "<outputlevel_location_pathN>"] IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

Following is how to create different types of custom groups using expression text. Notes: [] are used to define a name of an object; the name can include the full path to the object. ^ is used as the escape character to specify a string constant inside an expression. {} are used to indicate a pair of join element list qualification. When it comes to ambiguous objects within an expression, there are two ways to solve it: a. To specify the object with its full path b. Place all of the ambiguous objects in a single folder and specify this folder in the command using the BREAKAMBIGUITY reserved word. When specifying the percentage value using Rank<ByValue=False>, please specify a fraction value between 0 and 1 that corresponds to the percentage value. For example, forty percent (40%) should be specified as 0.4. Examples of different qualitications: 1. Attribute qualification: [\Schema Objects\Attributes\Time\Year]@ID IN ("2003, 2004") [\Schema Objects\Attributes\Time\Year]@ID =2003 [\Schema Objects\Attributes\Products\Category]@DESC IN ("Books", "Movies", "Music", "Electronics") 2. Set Qualification For Metric Qualifications, you need to specify the output level at which this metric is calculated. Three types of functions: Metric Values: [\Public Objects\Metrics\Sales Metrics\Profit] >= 10 Bottom Rank: Rank([\Public Objects\Metrics\Sales Metrics\Profit]) <= 3 Top Rank: Rank<ASC=False>([Revenue Contribution to All Products Abs.]) <= 5 Percent: Rank<ByValue=False>([\Public Objects\Metrics\Sales Metrics\Profit]) <= 0.1 *Note for Rank function: There are two parameters that control its behavior. ASC and ByValue. When ASC is set to true, the ranking results are sorted in ascending order; when its value is set to false, the ranking results are sorted in descending order. When ByValue is set to true, the ranking results represent their value order; whereas, when ByValue is set to false, the ranking results represent their percentage order. 3. Shortcut to a Report Qualification Just specify the report name: [Revenue vs. Forecast] or [\Public Objects\Reports\Revenue vs. Forecast] 4. Shortcut to a Filter Just specify the filter name: [Top 5 Customers by Revenue] ([\Public Objects\Filters\Top 5 Customers by Revenue]) 5. Banding Qualification You need to specify the output level. In addition, you may want to specify the band names. Three types of bandings: Band Size: Banding(Cost, 1.0, 1000.0, 100.0) Band Point: BandingP(Discount, 1.0, 10.0, 15.0, 20.0) Banding Counts: BandingC(Profit, 1.0, 1000.0, 100.0) BandingP(Rank<ByValue=False>([\Public Objects\Metrics\Sales Metrics\Revenue]),0,0.1,0.5,1) Banding([Running Revenue Contribution to All Customers Abs.],0.0,1.0,0.2) 6. Advance Qualification Join Element List Qualification {Year@ID, Category@DESC} IN ({2004, "Books"}, {2005, "Movies"})

create_dbconnection

    $foo->create_dbconnection(
        DBCONNECTION => "dbconnection_name",
        ODBCDSN      => "odbc_datasource_name",
        DEFAULTLOGIN => "default_login",
        DRIVERMODE   => "MULTIPROCESS | MULTITHREADED",
        EXECMODE     => "SYNCHRONOUS | ASYNCHRONOUS (CONNECTION | STATEMENT)",
        USEEXTENDEDFETCH => "TRUE" | "FALSE",
        USEPARAMQUERIES  => "TRUE" | "FALSE",
        MAXCANCELATTEMPT => "number_of_seconds",
        MAXQUERYEXEC     => "number_of_seconds",
        MAXCONNATTEMPT   => "number_of_seconds",
        CHARSETENCODING  => "MULTIBYTE | UTF8",
        TIMEOUT          => "number_of_seconds",
        IDLETIMEOUT      => "number_of_seconds"
    );

Optional parameters: DRIVERMODE => "MULTIPROCESS | MULTITHREADED", EXECMODE => "SYNCHRONOUS | ASYNCHRONOUS (CONNECTION | STATEMENT)", USEEXTENDEDFETCH => "TRUE" | "FALSE", USEPARAMQUERIES => "TRUE" | "FALSE", MAXCANCELATTEMPT => "number_of_seconds", MAXQUERYEXEC => "number_of_seconds", MAXCONNATTEMPT => "number_of_seconds", CHARSETENCODING => "MULTIBYTE | UTF8", TIMEOUT => "number_of_seconds", IDLETIMEOUT => "number_of_seconds"

CREATE DBCONNECTION "<dbconnection_name>" ODBCDSN "<odbc_datasource_name>" DEFAULTLOGIN "<default_login>" [DRIVERMODE (MULTIPROCESS | MULTITHREADED)] [EXECMODE (SYNCHRONOUS | ASYNCHRONOUS (CONNECTION | STATEMENT))] [USEEXTENDEDFETCH (TRUE | FALSE)] [USEPARAMQUERIES (TRUE | FALSE)] [MAXCANCELATTEMPT <number_of_seconds>] [MAXQUERYEXEC <number_of_seconds>] [MAXCONNATTEMPT <number_of_seconds>] [CHARSETENCODING (MULTIBYTE | UTF8)] [TIMEOUT <number_of_seconds] [IDLETIMEOUT <number_of_seconds>];

create_dbinstance

    $foo->create_dbinstance(
        DBINSTANCE        => "dbinstance_name",
        DBCONNTYPE        => "dbconnection_type",
        DBCONNECTION      => "dbconnection_name",
        DESCRIPTION       => "description",
        DATABASE          => "database_name",
        TABLESPACE        => "tablespace_name",
        PRIMARYDBINSTANCE => "dbinstance_name",
        DATAMART          => "dbinstance_name",
        TABLEPREFIX       => "table_prefix",
        HIGHTHREADS       => "no_high_conns",
        MEDIUMTHREADS     => "no_medium_conns",
        LOWTHREADS        => "no_low_conns"
    );

Optional parameters: DESCRIPTION => "description", DATABASE => "database_name", TABLESPACE => "tablespace_name", PRIMARYDBINSTANCE => "dbinstance_name", DATAMART => "dbinstance_name", TABLEPREFIX => "table_prefix", HIGHTHREADS => "no_high_conns", MEDIUMTHREADS => "no_medium_conns", LOWTHREADS => "no_low_conns"

CREATE DBINSTANCE "<dbinstance_name>" DBCONNTYPE "<dbconnection_type>" DBCONNECTION "<dbconnection_name>" [DESCRIPTION "<description>"] [DATABASE "<database_name>"] [TABLESPACE "<tablespace_name>"] [PRIMARYDBINSTANCE "<dbinstance_name>"] [DATAMART "<dbinstance_name>"] [TABLEPREFIX "<table_prefix>"] [HIGHTHREADS <no_high_conns>] [MEDIUMTHREADS <no_medium_conns>] [LOWTHREADS <no_low_conns>];

create_dblogin

    $foo->create_dblogin(
        DBLOGIN  => "dblogin_name",
        LOGIN    => "database_login",
        PASSWORD => "database_pwd"
    );

Optional parameters: LOGIN => "database_login", PASSWORD => "database_pwd"

CREATE DBLOGIN "<dblogin_name>" [LOGIN "<database_login>"] [PASSWORD "<database_pwd>"];

create_event

    $foo->create_event(
        EVENT       => "event_name",
        DESCRIPTION => "description"
    );

Optional parameters: DESCRIPTION => "description"

CREATE EVENT "<event_name>" [DESCRIPTION "<description>"];

create_fact

    $foo->create_fact(
        FACT            => "fact_name",
        DESCRIPTION     => "description",
        LOCATION        => "location_path",
        HIDDEN          => "TRUE" | "FALSE",
        EXPRESSION      => "expression",
        EXPSOURCETABLES => [ "sourcetable1", "sourcetableN" ],
        PROJECT         => "project_name"
    );

Optional parameters: DESCRIPTION => "description", HIDDEN => "TRUE" | "FALSE", EXPRESSION => "expression", EXPSOURCETABLES => [ "sourcetable1", "sourcetableN" ]

CREATE FACT "<fact_name>" [DESCRIPTION "<description>"] IN FOLDER "<location_path>" [HIDDEN (TRUE | FALSE)] EXPRESSION "<expression>" [EXPSOURCETABLES "<sourcetable1>" [, "<sourcetable2>" [, "<sourcetableN>"]]] FOR PROJECT "<project_name>";

create_filter_oultine

    $foo->create_filter_oultine(
           FILTER      => "filter_name", 
           LOCATION    => "location_path", 
           EXPRESSION  => "expression", 
           DESCRIPTION => "description", 
           HIDDEN      => "TRUE", 
           PROJECT     => "project_name"
    );

Optional parameters: DESCRIPTION => "description", HIDDEN => "TRUE"

CREATE FILTER "<filter_name>" IN [FOLDER] "<location_path>" EXPRESSION "<expression>" [DESCRIPTION "<description>"] [HIDDEN (TRUE | FALSE)] ON PROJECT "<project_name>";

create_folder

    $foo->create_folder(
        FOLDER      => "folder_name",
        LOCATION    => "location_path",
        DESCRIPTION => "description",
        HIDDEN      => "TRUE" | "FALSE",
        PROJECT     => "project_name"
    );

Optional parameters: DESCRIPTION => "description", HIDDEN => "TRUE" | "FALSE",

CREATE FOLDER "<folder_name>" IN "<location_path>" [DESCRIPTION "<description>"] [HIDDEN (TRUE | FALSE)] FOR PROJECT "<project_name>";

create_metric_oultine

    $foo->create_metric_oultine(
        METRIC      => "metric_name",
        LOCATION    => "location_path",
        EXPRESSION  => "expression",
        DESCRIPTION => "description",
        HIDDEN      => "TRUE" | "FALSE",
        PROJECT     => "project_name"
    );

Optional parameters: DESCRIPTION => "description", HIDDEN => "TRUE" | "FALSE",

CREATE METRIC "<metric_name>" IN [FOLDER] "<location_path>" EXPRESSION "<expression>" [DESCRIPTION "<description>"] [HIDDEN (TRUE | FALSE)] ON PROJECT "<project_name>";

create_schedule

    $foo->create_schedule(
        SCHEDULE    => "schedule_name",
        NEW_NAME    => "new_name",
        DESCRIPTION => "new_description",
        STARTDATE   => "new_start_date",
        ENDDATE     => ( "new_end_date" | "NEVER" ),
        TYPE        => ( "EVENTTRIGGERED" | "TIMETRIGGERED" ),
        EVENTNAME   => "<new_event_name>",
        DAILY       => "EVERY (<new_number> DAYS | WEEKDAY)",
        WEEKLY      => "EVERY <new_number> WEEKS ON day_of_week1 [, day_of_week2 [,...
    day_of_week7]]", MONTHLY => "(DAY <new_number> OF EVERY <new_number>
    MONTHS (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 |
    day_of_week2 | ... | day_of_week7) OF EVERY <new_number> MONTHS)",
        YEARLY => "((month_of_year1 | month_of_year2 | ... | month_of_year12)
    <new_number> (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 |
    day_of_week2 | ... | day_of_week7) OF (month_of_year1 | month_of_year2 |
    ... | month_of_year12))",
        EXECUTE_TIME_OF_DAY => "new_time_of_day",
        EXECUTE_ALL_DAY     => "EVERY <new_number> (MINUTES | HOURS [START AFTER
    MIDNIGHT <number> MINUTES] )",
    );

CREATE SCHEDULE "<schedule_name>" [DESCRIPTION "<description>"] STARTDATE <start_date> ENDDATE (<end_date> | NEVER) TYPE (EVENTTRIGGERED EVENTNAME "<event_name>" | TIMETRIGGERED (DAILY EVERY (<number> DAYS | WEEKDAY) | WEEKLY EVERY <number> WEEKS ON day_of_week1 [, day_of_week2 [,... day_of_week7]] | MONTHLY (DAY <number> OF EVERY <number> MONTHS | (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 | day_of_week2 | ... | day_of_week7) OF EVERY <number> MONTHS) | YEARLY ((month_of_year1 | month_of_year2 | ... | month_of_year12) <number> | (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 | day_of_week2 | ... | day_of_week7) OF (month_of_year1 | month_of_year2 | ... | month_of_year12))) EXECUTE (<time_of_day> | ALL DAY EVERY <number> (MINUTES | HOURS [START AFTER MIDNIGHT <number> MINUTES])));

Event-Triggered Schedule CREATE SCHEDULE "<schedule_name>" [DESCRIPTION "<description>"] STARTDATE <start_date> ENDDATE (<end_date> | NEVER) TYPE EVENTTRIGGERED EVENTNAME "<event_name>";

Daily Time-Triggered Schedule CREATE SCHEDULE "<schedule_name>" [DESCRIPTION "<description>"] STARTDATE <start_date> ENDDATE (<end_date> | NEVER) TYPE TIMETRIGGERED DAILY EVERY (<number> DAYS | WEEKDAY) EXECUTE (<time_of_day> | ALL DAY EVERY <number> (MINUTES | HOURS [START AFTER MIDNIGHT <number> MINUTES]));

Weekly Time-Triggered Schedule CREATE SCHEDULE "<schedule_name>" [DESCRIPTION "<description>"] STARTDATE <start_date> ENDDATE (<end_date> | NEVER) TYPE TIMETRIGGERED WEEKLY EVERY <number> WEEKS ON day_of_week1 [, day_of_week2 [,... day_of_week7]] EXECUTE (<time_of_day> | ALL DAY EVERY <number> (MINUTES | HOURS [START AFTER MIDNIGHT <number> MINUTES]));

Monthly Time-Triggered Schedule CREATE SCHEDULE "<schedule_name>" [DESCRIPTION "<description>"] STARTDATE <start_date> ENDDATE (<end_date> | NEVER) TYPE TIMETRIGGERED MONTHLY (DAY <number> OF EVERY <number> MONTHS | (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 | day_of_week2 | ... | day_of_week7) OF EVERY <number> MONTHS) EXECUTE (<time_of_day> | ALL DAY EVERY <number> (MINUTES | HOURS [START AFTER MIDNIGHT <number> MINUTES]));

Yearly Time-Triggered Schedule CREATE SCHEDULE "<schedule_name>" [DESCRIPTION "<description>"] STARTDATE <start_date> ENDDATE (<end_date> | NEVER) TYPE TIMETRIGGERED YEARLY ((month_of_year1 | month_of_year2 | ... | month_of_year12) <number> | (FIRST | SECOND | THIRD | FOURTH | LAST) (day_of_week1 | day_of_week2 | ... | day_of_week7) OF (month_of_year1 | month_of_year2 | ... | month_of_year12)) EXECUTE (<time_of_day> | ALL DAY EVERY <number> (MINUTES | HOURS [START AFTER MIDNIGHT <number> MINUTES]));

CREATE SCHEDULERELATION SCHEDULE "Schedule1" USER "jen" REPORT "rep_or_doc_name" IN "location_path" IN PROJECT "project_name" CREATEMSGHIST TRUE ENABLEMOBILEDELIVERY OVERWRITE UPDATECACHE;

$foo->create_schedule_relation( SCHEDULE => "Schedule1", USER_OR_GROUP => "USER", USER_LOGIN_OR_GROUP_NAME => "jen", REPORT => "rep_or_doc_name", LOCATION => "location_path", PROJECT => "project_name", CREATEMSGHIST => "TRUE", ENABLEMOBILEDELIVERY => "TRUE", OVERWRITE => "TRUE", UPDATECACHE => "TRUE", );

create_schedule_relation

    $foo->create_schedule_relation(
        SCHEDULE                 => "schedule_name",
        USER_OR_GROUP            => "USER | GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        REPORT                   => "rep_or_doc_name",
        LOCATION                 => "location_path",
        PROJECT                  => "project_name",
        CREATEMSGHIST            => "TRUE" | "FALSE",
        ENABLEMOBILEDELIVERY     => "TRUE" | "FALSE",
        OVERWRITE                => "TRUE" | "FALSE",
        UPDATECACHE              => "TRUE" | "FALSE";
    );

This command can be used only in 3-tier Project Source Names.

CREATE SCHEDULERELATION SCHEDULE "<schedule_name>" (USER | GROUP) "<user_login_or_group_name>" REPORT "<rep_or_doc_name>" IN "<location_path>" IN PROJECT "<project_name>" [CREATEMSGHIST (TRUE | FALSE) | [ENABLEMOBILEDELIVERY [OVERWRITE] | UPDATECACHE ];

create_security_filter

    $foo->create_security_filter(
        SECURITY_FILTER       => "sec_filter_name",
        LOCATION              => "location_path",
        HIDDEN                => "TRUE" | "FALSE",
        PROJECT               => "project_name",
        FILTER                => "FILTER_NAME",
        FILTER_LOCATION       => "FILTER_LOCATION_PATH",
        EXPRESSION            => "EXPRESSION",
        TOP_ATTRIBUTE_LIST    => [ "top_attr_name1", "top_attr_nameN" ],
        BOTTOM_ATTRIBUTE_LIST => [ "bottom_attr_name1", "bottom_attr_nameN" ]
    );

Optional parameters: LOCATION => "location_path", HIDDEN => "TRUE" | "FALSE", FILTER => "FILTER_NAME", FILTER_LOCATION => "FILTER_LOCATION_PATH", EXPRESSION => "EXPRESSION", TOP_ATTRIBUTE_LIST => [ "top_attr_name1", "top_attr_nameN" ], BOTTOM_ATTRIBUTE_LIST => [ "bottom_attr_name1", "bottom_attr_nameN" ]

CREATE SECURITY FILTER "<sec_filter_name>" [FOLDER "<location_path>"] [HIDDEN (TRUE | FALSE)] IN [PROJECT] "<project_name>" (FILTER "<filter_name>" [IN FOLDER "<filter_location_path>"] | EXPRESSION "<expression>") [TOP ATTRIBUTE LIST "<top_attr_name1>" [, "<top_attr_name2>" [, ... "<top_attr_nameN>"]]] [BOTTOM ATTRIBUTE LIST "<bottom_attr_name1>" [, "<bottom_attr_name2>" [, ... "<bottom_attr_nameN>"]]];

create_security_role

    $foo->create_security_role(
        SECURITY_ROLE => "sec_role_name",
        DESCRIPTION   => "sec_role_description"
    );

Optional parameters: DESCRIPTION => "sec_role_description"

CREATE SECURITY ROLE "<sec_role_name>" [DESCRIPTION "<sec_role_description>"];

create_shortcut

    $foo->create_shortcut(
        SHORTCUT_LOCATION    => "location_path",
        PROJECT_CONFIG_OJECT => "project_config_object",
        OBJECT_NAME          => "object_name",
        LOCATION             => "object_location_path",
        HIDDEN               => "TRUE" | "FALSE",
        PROJECT              => "project_name"
    );

Optional parameters: HIDDEN => "TRUE" | "FALSE",

CREATE SHORTCUT IN FOLDER "<location_path>" FOR (FOLDER | CONSOLIDATION | DOCUMENT | FILTER | METRIC | PROMPT | REPORT | SEARCH | TEMPLATE | ATTRIBUTE | FACT | FUNCTION | HIERARCHY | TABLE | TRANSFORMATION | DRILLMAP | SECFILTER | AUTOSTYLE | BASEFORMULA) "<object_name>" IN FOLDER "<object_location_path>" [HIDDEN (TRUE | FALSE)] FOR PROJECT "<project_name>";

create_user_group

    $foo->create_user_group(
        USER_GROUP   => "user_group_name",
        DESCRIPTION  => "user_group_desc",
        LDAPLINK     => "ldap_user_id",
        MEMBERS      => [ "login_name1", "login_nameN" ],
        PARENT_GROUP => "parent_user_group_name"
    );

Optional parameters: DESCRIPTION => "user_group_desc", LDAPLINK => "ldap_user_id", MEMBERS => [ "login_name1", "login_nameN" ], PARENT_GROUP => "parent_user_group_name"

CREATE USER GROUP "<user_group_name>" [DESCRIPTION "<user_group_desc>"] [LDAPLINK "<ldap_user_id>"] [MEMBERS "<login_name1>" [, "<login_name2>" [,... "<login_nameN>"]]] [[IN] GROUP "<parent_user_group_name>"];

create_user

    $foo->create_user(
        USER           => "login_name" | "nt_user_id",
        IMPORTWINUSER  => "TRUE" | "FALSE",
        NAME           => "new_login_name",
        NTLINK         => "nt_user_id",
        PASSWORD       => "user_password",
        FULLNAME       => "user_fullname",
        DESCRIPTION    => "user_description",
        LDAPLINK       => "ldap_user_id",
        WHLINK         => "warehouse_login",
        WHPASSWORD     => "warehouse_password",
        ALLOWCHANGEPWD => "TRUE" | "FALSE",
        ALLOWSTDAUTH   => "TRUE" | "FALSE",
        CHANGEPWD      => "TRUE" | "FALSE",
        PASSWORDEXP    => "NEVER" | "IN new_number_of_days DAYS" |
          "ON expiration_date",
        PASSWORDEXPFREQ => "number",
        ENABLED         => "ENABLED" | "DISABLED",
        GROUP           => "user_group_name"
    );

CREATE USER (IMPORTWINUSER "<nt_user_id>" | "<login_name>" [FULLNAME "<user_full_name>"] [DESCRIPTION "<user_description>"] [NTLINK "<nt_user_id>"]) [PASSWORD "<user_password>"] [LDAPLINK "<ldap_user_id>"] [WHLINK "<warehouse_login>"] [WHPASSWORD "<warehouse_password>"] [ALLOWCHANGEPWD (TRUE | FALSE)] [ALLOWSTDAUTH (TRUE | FALSE)] [CHANGEPWD (TRUE | FALSE)] [PASSWORDEXP (NEVER | IN number_of_days DAYS | ON <expiration_date>)] [PASSWORDEXPFREQ <number> DAYS] [ENABLED | DISABLED] [IN GROUP "<user_group_name>"];

create_user_profile

    $foo->create_user_profile(
        USER     => "login_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "location_path"

CREATE [USER] PROFILE [FOR [USER]] "<login_name>" [IN FOLDER "<location_path>"] FOR [PROJECT] "<project_name>";

delete_attribute

    $foo->delete_attribute(
        ATTRIBUTE => "attribute_name",
        LOCATION  => "location_path",
        PROJECT   => "project_name"
    );

DELETE ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

delete_connection_map

    $foo->delete_connection_map(
        USER       => "login_name",
        DBINSTANCE => "dbinstance_name",
        PROJECT    => "project_name"
    );

DELETE CONNECTION MAP FOR USER "<login_name>" DBINSTANCE "<dbinstance_name>" ON PROJECT "<project_name>";

delete_custom_group

    $foo->delete_custom_group(
        CUSTOMGROUP => "customgroup_name",
        LOCATION    => "location_path",
        PROJECT     => "project_name"
    );

DELETE CUSTOMGROUP "<customgroup_name>" IN FOLDER "<location_path>" FROM PROJECT "<project_name>";

delete_dbconnection

    $foo->delete_dbconnection( DBCONNECTION => "dbConnection_name" );

DELETE DBCONNECTION "<dbConnection_name>";

delete_dbinstance

$foo->delete_dbinstance( DBINSTANCE => "dbinstance_name" );

DELETE DBINSTANCE "<dbinstance_name>";

delete_dblogin

$foo->delete_dblogin( DBLOGIN => "dblogin_name" );

DELETE DBLOGIN "<dblogin_name>";

DELETE DBLOGIN "Data";

delete_event

    $foo->delete_event( EVENT => "event_name" );

DELETE EVENT "<event_name>";

delete_fact

    $foo->delete_fact(
        FACT     => "fact_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

DELETE FACT "<fact_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

delete_filter

    $foo->delete_filter(
        FILTER   => "filter_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

DELETE FILTER "<filter_name>" IN [FOLDER] "<location_path>" FROM PROJECT "<project_name>";

delete_folder

    $foo->delete_folder(
        FOLDER   => "folder_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

DELETE FOLDER "<folder_name>" IN "<location_path>" FROM PROJECT "<project_name>";

DELETE FOLDER "Sales Reports" IN "\Public Objects" FROM PROJECT "MicroStrategy Tutorial";

delete_metric

    $foo->delete_metric(
        METRIC   => "metric_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

DELETE METRIC "<metric_name>" IN [FOLDER] "<location_path>" FROM PROJECT "<project_name>";

delete_project

    $foo->delete_project("project_name");

DELETE PROJECT "<project_name>";

delete_report_cache

    $foo->delete_report_cache(
        INVALID      => "TRUE" | "FALSE",
        REPORT_CACHE => "ALL" | "cache_name",
        PROJECT      => "project_name" | [ "project_name1", "project_nameN" ],
    );

This command can be used only in 3-tier Project Source Names.

DELETE ([ALL] [INVALID] REPORT CACHES | REPORT CACHE "<cache_name>") [IN (PROJECT(S) "<project_name1>", ["<projectname2>" [, "<project_namen>"]]];

To specify one project, use 'PROJECT' To specify more than one project, use 'PROJECTS'

DELETE REPORT CACHE "Customer List" IN PROJECT "MicroStrategy Tutorial";

DELETE ALL INVALID REPORT CACHES; DELETE INVALID REPORT CACHES IN PROJECT "MicroStrategy Tutorial"; DELETE INVALID REPORT CACHES IN PROJECTS "MicroStrategy Tutorial", "Customer Analysis Module";

delete_report

    $foo->delete_report(
        REPORT   => "report_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

DELETE REPORT "<report_name>" IN FOLDER "<location_path>" FROM PROJECT "<project_name>";

delete_schedule

$foo->delete_schedule("schedule_name");

DELETE SCHEDULE "<schedule_name>";

delete_schedule_relation

    $foo->delete_schedule_relation(
        DELETE_MULTIPLE          => "TRUE" | "FALSE",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login" | "group_name",
        SCHEDULE                 => "schedule_name",
        REPORT                   => "rep_or_doc_name",
        LOCATION                 => "location_path",
        PROJECT                  => "project_name"
    );

This command can be used only in 3-tier Project Source Names.

DELETE ([ALL] SCHEDULERELATIONS [FOR ((USER | GROUP) "<user_login_or_group_name>" | REPORT "<rep_or_doc_name>" IN "<location_path>" | SCHEDULE "<schedule_name>") | SCHEDULERELATION SCHEDULE "<schedule_name>" (USER | GROUP) "<user_login_or_group_name>" REPORT "<rep_or_doc_name>" IN "<location_path>"]) FROM PROJECT "<project_name>";

Optional parameters: USER_OR_GROUP => "USER" | "GROUP", USER_LOGIN_OR_GROUP_NAME => "user_login" | "group_name", SCHEDULE => "schedule_name", REPORT => "rep_or_doc_name", LOCATION => "location_path",

DELETE ALL SCHEDULERELATIONS FOR REPORT "Revenue vs. Forecast" IN "\Public Objects\Reports\Subject Areas\Sales and Profitability Analysis" FROM PROJECT "MicroStrategy Tutorial";

    $foo->delete_schedule_relation(
        DELETE_MULTIPLE => "TRUE",
        REPORT          => "Revenue vs. Forecast",
        LOCATION =>
'\Public Objects\Reports\Subject Areas\Sales and Profitability Analysis',
        PROJECT => "MicroStrategy Tutorial"
    );

DELETE ALL SCHEDULERELATIONS FOR USER "crosie" FROM PROJECT "MicroStrategy Tutorial";

    $foo->delete_schedule_relation(
        DELETE_MULTIPLE          => "TRUE",
        USER_OR_GROUP            => "USER",
        USER_LOGIN_OR_GROUP_NAME => "crosie",
        PROJECT                  => "MicroStrategy Tutorial"
    );

DELETE ALL SCHEDULERELATIONS FOR SCHEDULE "All The Time" FROM PROJECT "MicroStrategy Tutorial";

    $foo->delete_schedule_relation(
        DELETE_MULTIPLE => "TRUE",
        SCHEDULE        => "All The Time",
        PROJECT         => "MicroStrategy Tutorial"
    );

DELETE ALL SCHEDULERELATIONS FROM PROJECT "MicroStrategy Tutorial";

    $foo->delete_schedule_relation(
        DELETE_MULTIPLE => "TRUE",
        PROJECT         => "MicroStrategy Tutorial"
    );

DELETE SCHEDULERELATION SCHEDULE "All The Time" USER "crosie" REPORT "rep_or_doc_name" IN "location_path" FROM PROJECT "project_name";

    $foo->delete_schedule_relation(
        DELETE_MULTIPLE          => "FALSE",
        USER_OR_GROUP            => "USER",
        USER_LOGIN_OR_GROUP_NAME => "crosie",
        SCHEDULE                 => "All The Time",
        REPORT                   => "rep_or_doc_name",
        LOCATION                 => "location_path",
        PROJECT                  => "project_name"
    );

delete_security_filter

    $foo->delete_security_filter(
        SECURITY_FILTER => "sec_filter_name",
        LOCATION        => "location_path",
        PROJECT         => "project_name"
    );

Optional parameters: LOCATION => "location_path"

DELETE SECURITY FILTER "<sec_filter_name>" [FOLDER "<location_path>"] FROM PROJECT "<project_name>";

delete_security_role

    $foo->delete_security_role("sec_role_name");

DELETE SECURITY ROLE "<sec_role_name>";

delete_shortcut

    $foo->delete_shortcut(
        LOCATION              => "location_path",
        PROJECT_CONFIG_OBJECT => "project_config_object",
        NAME                  => "shortcut_name",
        PROJECT               => "project_name"
    );

DELETE SHORTCUT IN FOLDER "<location_path>" FOR (FOLDER | CONSOLIDATION | DOCUMENT | FILTER | METRIC | PROMPT | REPORT | SEARCH | TEMPLATE | ATTRIBUTE | FACT | FUNCTION | HIERARCHY | TABLE | TRANSFORMATION | DRILLMAP | SECFILTER | AUTOSTYLE | BASEFORMULA) "<shortcut_name>" FOR PROJECT "<project_name>";

DELETE SHORTCUT IN FOLDER "\Project Objects" FOR FOLDER "Drill Maps" FOR PROJECT "MicroStrategy Tutorial";

    $foo->delete_shortcut(
        LOCATION              => '\Project Objects',
        PROJECT_CONFIG_OBJECT => "FOLDER",
        NAME                  => "Drill Maps",
        PROJECT               => "MicroStrategy Tutorial"
    );

delete_user_group

    $foo->delete_user_group("user_group");

DELETE USER GROUP "<user_group>";

delete_user

    $foo->delete_user( USER => "login_name", CASCADE => "TRUE" | "FALSE" );

Optional parameters: CASCADE => "TRUE" | "FALSE"

DELETE USER "<login_name>" [CASCADE PROFILES];

delete_user_profile

    $foo->delete_user_profile(
        USER_PROFILE => "login_name",
        PROJECT      => "project_name"
    );

Optional parameters: USER => ,PROJECT =>

DELETE [USER] PROFILE "<login_name>" FROM [PROJECT] "<project_name>";

disconnect_database_connection

    $foo->disconnect_database_connection(
        CONNECTION => "ALL" | "connection_id" );

This command can be used only in 3-tier Project Source Names.

DISCONNECT ([ALL] DATABASE CONNECTIONS | DATABASE CONNECTION <connection_id>);

disconnect_user

    $foo->disconnect_user(
        USER         => "login_name",
        SESSIONID    => "sessionid",
        PROJECT      => "project_name",
        ALL_SESSIONS => "TRUE" | "FALSE"
    );

This command can be used only in 3-tier Project Source Names.

DISCONNECT ([ALL] USER SESSIONS [FROM PROJECT "<project_name>"] | USER "<login_name>" | USER SESSIONID <sessionid>);

expire_report_cache

    $foo->expire_report_cache(
        REPORT_CACHE => "ALL" | "cache_name",
        PROJECT      => "project_name"
    );

This command can be used only in 3-tier Project Source Names.

EXPIRE ([ALL] REPORT CACHES | REPORT CACHE "<cache_name>") IN PROJECT "<project_name>";

get_attribute_candidates

internal routine

get_attribute_child_candidates

    $foo->get_attribute_child_candidates(
        ATTRIBUTE => "attribute_name",
        LOCATION  => "location_path",
        PROJECT   => "project_name"
    );

GET CHILD CANDIDATES FOR ATTRIBUTE "<attribute_name>" IN [FOLDER] "<location_path>" FOR PROJECT "<project_name>";

get_attribute_parent_candidates

    $foo->get_attribute_parent_candidates(
        ATTRIBUTE => "attribute_name",
        LOCATION  => "location_path",
        PROJECT   => "project_name"
    );

GET PARENT CANDIDATES FOR ATTRIBUTE "<attribute_name>" IN [FOLDER] "<location_path>" FOR PROJECT "<project_name>";

get_object_property

    $foo->get_object_property(
        PROPERTIES            => [ "property1", "propertyN" ],
        PROJECT_CONFIG_OBJECT => "project_config_object",
        OBJECT_NAME           => "object_name",
        LOCATION              => "location_path",
        PROJECT               => "project_name"
    );

GET PROPERTIES "<property1>", "<property2>", ... "<propertyN>" FROM (FOLDER | CONSOLIDATION | DOCUMENT | FILTER | METRIC | PROMPT | REPORT | SEARCH | TEMPLATE | ATTRIBUTE | FACT | FUNCTION | HIERARCHY | TABLE | TRANSFORMATION | DRILLMAP | SECFILTER | AUTOSTYLE | BASEFORMULA | SHORTCUT) "<object_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

Note: This is the object hierarchy used in property management. To identify an object at a lower hierarchy, just specify the name of the object at the top level.

Some information provided by this statement is similar to that of "LIST PROPERTIES..." command, however, GET statement is much more flexible and customizable than LIST ALL PROPERTIES statement. Using GET statement, you can get any of the common properties, such as name, id, description, location, creation time, modification time, owner, long description, hidden from any object (folder, consolidation, filter,...).

TABLE = LOGICAL TABLE, WAREHOUSE PARTITION TABLE, METADATA PARTITION TABLE METRIC = SUBTOTAL, PREDICTIVE METRIC FILTER = CUSTOMGROUP REPORT = GRID, GRAPH, GRIDGRAPH, DATAMART, SQL DOCUMENT = REPORTSERVICE DOCUMENT, HTML DOCUMENT PROPERTIES = NAME , ID, DESCRIPTION, LOCATION, CREATIONTIME, MODIFICATIONTIME, OWNER, LONGDESCRIPTION, HIDDEN

Note: When two or more shortcuts in a folder have the same name, GET/SET command will treat all of them equally. This means the SET command will set all of them to either hidden or visible. The GET command will show the specified property for all of them.

get_tables_from_expression

    $foo->get_tables_from_expression(
        EXPRESSION => "expression",
        PROJECT    => "project_name"
    );

GET TABLES FROM EXPRESSION "<expression>" IN PROJECT "<project_name>";

grant_privileges

    $foo->grant_privileges(
        PRIVILEGE     => [ "privilege1", "privilegeN" ],
        USER          => "login_name",
        GROUP         => "user_group_name",
        SECURITY_ROLE => "sec_role_name"
    );

GRANT <privilege1> [, <privilege2> [, ... <privilegeN>]]] TO ([USER] "<login_name>" | [USER] GROUP "<user_group_name>" | SECURITY ROLE "<sec_role_name>");

GRANT CREATESCHEMAOBJECTS, SCHEDULEREQUEST, USEOBJECTMANAGER, USEVLDBEDITOR TO USER "Developer";

    $foo->grant_privileges(
        PRIVILEGE => [
            qw(CREATESCHEMAOBJECTS
              SCHEDULEREQUEST USEOBJECTMANAGER USEVLDBEDITOR)
        ],
        USER => "Developer"
    );

GRANT WEBDRILLING, WEBEXPORT, WEBOBJECTSEARCH, WEBSORT, WEBUSER, WEBADMIN TO GROUP "Managers";

    $foo->grant_privileges(
        PRIVILEGE => [
            qw(WEBDRILLING WEBEXPORT
              WEBOBJECTSEARCH WEBSORT WEBUSER WEBADMIN)
        ],
        GROUP => "Managers"
    );

GRANT USESERVERCACHE, USECUSTOMGROUPEDITOR, USEMETRICEDITOR TO SECURITY ROLE "Normal Users";

    $foo->grant_privileges(
        PRIVILEGE => [
            qw(USESERVERCACHE
              USECUSTOMGROUPEDITOR USEMETRICEDITOR)
        ],
        SECURITY_ROLE => "Normal Users"
    );

grant_security_roles

    $foo->grant_security_roles(
        SECURITY_ROLE => "sec_role_name",
        USER          => "login_name",
        GROUP         => "user_group_name",
        PROJECT       => "project_name"
    );

Optional parameters: USER => "login_name", GROUP => "user_group_name"

GRANT [SECURITY ROLE] "<sec_role_name>" TO [USER] ("<login_name>" | GROUP "<user_group_name>") ON [PROJECT] "<project_name>";

idle_project

    $foo->idle_project(
        PROJECT => "project_name",
        MODE => "REQUEST" | "EXECUTION" | "FULL" | "PARTIAL" | "WAREHOUSEEXEC"
    );

This command can be used only in 3-tier Project Source Names.

IDLE PROJECT "<project_name>" MODE (REQUEST | EXECUTION | FULL | PARTIAL | WAREHOUSEEXEC);

invalidate_report_cache

        $foo->invalidate_report_cache(
                REPORT_CACHE => "ALL" | "cache_name",
                WHTABLE      => "WH_Table_name",
                PROJECT      => "project_name"
        );

Optional parameters: WHTABLE => "<WH_Table_name>"

This command can be used only in 3-tier Project Source Names.

INVALIDATE ([ALL] REPORT CACHES [WHTABLE "<WH_Table_name>"] | REPORT CACHE "<cache_name>") IN PROJECT "<project_name>";

kill_job

    $foo->kill_job( JOB => "job_id", USER => "login_name" );

Optional parameters: ALL => ,FOR => USER "<login_name>"

This command can be used only in 3-tier Project Source Names.

KILL (JOB <job_id> | [ALL] JOBS [FOR [USER] "<login_name>"]);

list_acl_properties

    $foo->list_acl_properties(
        OBJECT_TYPE => "configuration_object_type" | "project_object_type" |
          "FOLDER",
        OBJECT_NAME => "object_name",
        LOCATION    => "location_path",
        PROJECT     => "project_name"
    );

LIST [ALL] PROPERTIES FOR ACL FROM (<conf_object_type> "<object_name>" | (<project_object_type> "<object_name>" | FOLDER "<folder_name>") IN FOLDER "<location_path>" FOR PROJECT "<project_name>");

list_all_connection_maps

    $foo->list_all_connection_maps("project_name");

LIST ALL CONNECTION MAP FOR PROJECT "<project_name>";

list_all_dbconnections

    $foo->list_all_dbconnections;

LIST [ALL] (DBCONNECTIONS | DBCONNS);

LIST ALL DBCONNECTIONS;

list_all_dbinstances

    $foo->list_all_dbinstances;

LIST [ALL] DBINSTANCES;

list_all_dblogins

    $foo->list_all_dblogins;

LIST ALL DBLOGINS;

list_all_servers

    $foo->list_all_servers;

LIST ALL SERVERS;

list_attribute_properties

    $foo->list_attribute_properties(
        ATTRIBUTE => "attribute_name",
        LOCATION  => "location_path",
        PROJECT   => "project_name"
    );

LIST [ALL] PROPERTIES FOR ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

list_attributes

    $foo->list_attributes(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "location_path"

LIST [ALL] ATTRIBUTES [IN FOLDER "<location_path>"] FOR PROJECT "<project_name>";

list_caching_properties

    $foo->list_caching_properties(
        CACHE_TYPE => "REPORT" | "OBJECT" | "ELEMENT",
        PROJECT    => "project_name"
    );

Optional parameters: CACHE_TYPE => "REPORT" | "OBJECT" | "ELEMENT"

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR [(REPORT | OBJECT | ELEMENT)] CACHING IN [PROJECT] "<project_name>";

list_custom_group_properties

    $foo->list_custom_group_properties(
        CUSTOMGROUP => "customgroup_name",
        LOCATION    => "location_path",
        PROJECT     => "project_name"
    );

LIST [ALL] PROPERTIES FOR CUSTOMGROUP "<customgroup_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

list_custom_groups

    $foo->list_custom_groups(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "location_path"

LIST [ALL] CUSTOMGROUPS [IN FOLDER "<location_path>"] FOR PROJECT "<project_name>";

list_dbconnection_properties

    $foo->list_dbconnection_properties(
        PROPERTIES   => "ALL" | [ "property_name1", "property_nameN" ],
        DBCONNECTION => "dbConnection_name"
    );

LIST ([ALL] PROPERTIES | <property_name1> [, <property_name2> [, ... <property_nameN>]]) FOR DBCONNECTION "<dbConnection_name>";

PROPERTIES: ID, NAME, ODBCDSN, DEFAULTLOGIN, DRIVERMODE, EXECMODE, MAXCANCELATTEMPT, MAXQUERYEXEC, CHARSETENCODING, TIMEOUT, IDLETIMEOUT

list_dbinstance_properties

    $foo->list_dbinstance_properties("dbinstance_name");

LIST [ALL] PROPERTIES FOR DBINSTANCE "<dbinstance_name>";

list_dblogin_properties

    $foo->list_dblogin_properties(
        PROPERTIES => "ALL" | [ "property_name1", "property_nameN" ],
        DBLOGIN    => "dblogin_name"
    );

LIST ([ALL] PROPERTIES | <property_name1> [, <property_name2> [, ... <property_nameN>]]) FOR DBLOGIN "<dblogin_name>";

PROPERTIES: ID NAME LOGIN

LIST NAME, LOGIN FOR DBLOGIN "Data";

list_database_connection_properties

    $foo->list_database_connection_properties("connection_id");

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR DATABASE CONNECTION <connection_id>;

list_database_connections

    $foo->list_database_connections( "ALL" | "ACTIVE" );

This command can be used only in 3-tier Project Source Names.

LIST [ALL | ACTIVE] DATABASE CONNECTIONS;

list_events

    $foo->list_events;

LIST [ALL] EVENTS;

list_fact_properties

    $foo->list_fact_properties(
        FACT     => "fact_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

LIST [ALL] PROPERTIES FOR FACT "<fact_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

list_facts

    $foo->list_facts(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "location_path"

LIST [ALL] FACTS [IN FOLDER "<location_path>"] FOR PROJECT "<project_name>";

list_filter_properties

    $foo->list_filter_properties(
        FILTER   => "filter_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

LIST [ALL] PROPERTIES FOR FILTER "<filter_name>" IN [FOLDER] "<location_path>" FROM PROJECT "<project_name>";

list_filters

    $foo->list_filters(
        LOCATION => "location_path",
        OWNER    => "login_name",
        PROJECT  => "project_name"
    );

Optional parameters: OWNER => "login_name",

LIST [ALL] FILTERS [IN [FOLDER] "<location_path>"] [FOR OWNER "<login_name>"] FOR PROJECT "<project_name>";

list_folder_properties

    $foo->list_folder_properties(
        FOLDER   => "folder_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

LIST [ALL] PROPERTIES FOR FOLDER "<folder_name>" IN "<location_path>" FOR PROJECT "<project_name>";

list_folders

    $foo->list_folders(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

LIST [ALL] FOLDERS IN "<location_path>" FOR PROJECT "<project_name>";

list_job_properties

    $foo->list_job_properties("job_id");

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR JOB <job_id>;

list_jobs

    $foo->list_jobs( TYPE => "ALL" | "ACTIVE", USER => "login_name" );

Optional parameters: USER => "login_name"

This command can be used only in 3-tier Project Source Names.

LIST [ALL | ACTIVE] JOBS [FOR USER "<login_name>"];

list_lock_properties

    $foo->list_lock_properties("project_name");

Optional parameters: "project_name"

LIST [ALL] PROPERTIES FOR LOCK IN (CONFIGURATION | PROJECT "<project_name>");

LIST ALL PROPERTIES FOR LOCK IN PROJECT "MicroStrategy Tutorial";

    $foo->list_lock_properties("MicroStrategy Tutorial");

LIST ALL PROPERTIES FOR LOCK IN CONFIGURATION;

    $foo->list_lock_properties;

list_metric_properties

    $foo->list_metric_properties(
        METRIC   => "metric_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

LIST [ALL] PROPERTIES FOR METRIC "<metric_name>" IN [FOLDER] "<location_path>" FROM PROJECT "<project_name>";

list_metrics

    $foo->list_metrics(
        LOCATION => "location_path",
        OWNER    => "login_name",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "location_path", OWNER => "login_name"

LIST [ALL] METRICS [IN [FOLDER] "<location_path>"] [FOR OWNER "<login_name>"] FOR PROJECT "<project_name>";

list_project_config_properties

    $foo->list_project_config_properties("project_name");

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR PROJECT CONFIGURATION FROM PROJECT "<project_name>";

list_project_properties

    $foo->list_project_properties(
        PROPERTIES => "ALL" | [ "prop_name1", "prop_nameN" ],
        PROJECT    => "project_name"
    );

LIST ([ALL] PROPERTIES | <prop_name1> [, <prop_name2> [, ... <prop_nameN>]]) FOR PROJECT "<project_name>";

PROPERTIES: DESCRIPTION NAME ID CREATIONTIME MODIFICATIONTIME

list_projects_cluster

    $foo->list_projects_cluster;

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROJECTS FOR CLUSTER;

This List command only returns the project(s) that is(are) loaded either on a server or on all servers. To see a list of the available project(s) on the cluster, please use the LIST PROJECTS command.

list_projects

    $foo->list_projects( "ALL" | "REGISTERED" | "UNREGISTERED" );

LIST [(ALL | REGISTERED | UNREGISTERED)] PROJECTS;

list_report_cache_properties

    $foo->list_report_cache_properties(
        REPORT_CACHE => "cache_name",
        PROJECT      => "project_name"
    );

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR REPORT CACHE "<cache_name>" IN PROJECT "<project_name>";

list_report_caches

    $foo->list_report_caches("project_name");

This command can be used only in 3-tier Project Source Names.

LIST [ALL] REPORT CACHES [FOR PROJECT "<project_name>"];

list_report_properties

    $foo->list_report_properties(
        REPORT   => "report_name",
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

LIST [ALL] PROPERTIES FOR REPORT "<report_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

list_reports

    $foo->list_reports(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "<location_path>"

LIST [ALL] REPORTS [IN FOLDER "<location_path>"] FOR PROJECT "<project_name>";

list_schedule_properties

    $foo->list_schedule_properties("schedule_name");

LIST [ALL] PROPERTIES FOR SCHEDULE "<schedule_name>";

list_schedule_relations

    $foo->list_schedule_relations(
        SCHEDULE                 => "schedule_name",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        REPORT                   => "rep_or_doc_name",
        LOCATION                 => "location_path",
        PROJECT                  => "project_name"
    );
                              );

This command can be used only in 3-tier Project Source Names.

LIST [ALL] SCHEDULERELATIONS [FOR (SCHEDULE "<schedule_name>" | (USER | GROUP) "<user_login_or_group_name>" | REPORT "<rep_or_doc_name>" IN "<location_path>")] IN PROJECT "<project_name>";

list_schedules

    $foo->list_schedules;

LIST [ALL] SCHEDULES;

list_security_filter_properties

    $foo->list_security_filter_properties(
        PROPERTIES      => "ALL" | [ "property_name1", "property_nameN" ],
        SECURITY_FILTER => "sec_filter_name",
        LOCATION        => "location_path",
        PROJECT         => "project_name"
    );

Optional parameters: ALL => ,, => <property_name2> , ... <property_nameN>,FOLDER => "<location_path>"

LIST ([ALL] PROPERTIES | <property_name1> [, <property_name2> [, ... <property_nameN>]]]) FOR SECURITY FILTER "<sec_filter_name>" [FOLDER "<location_path>"] OF PROJECT "<project_name>";

PROPERTIES: NAME, ID, TOP ATTRIBUTE LIST, BOTTOM ATTRIBUTE LIST, FILTER

list_security_filters

    $foo->list_security_filters(
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        LOCATION                 => "location_path",
        PROJECT                  => "project_name"
    );

LIST [ALL] SECURITY FILTERS [(USER | GROUP) "<user_login_or_group_name>"] [FOLDER "<location_path>"] FOR PROJECT "<project_name>";

list_security_role_properties

    $foo->list_security_role_properties(
        PROPERTIES    => "ALL" | [ "property_name1", "property_nameN" ],
        SECURITY_ROLE => "sec_role_name"
    );

LIST ([ALL] PROPERTIES | <property_name1>, [, <property_name2> [, ... <property_nameN>]]) FOR [SECURITY] ROLE "<sec_role_name>";

PROPERTIES: NAME ID DESCRIPTION

list_security_role_privileges

    $foo->list_security_role_privileges("sec_role_name");

LIST [ALL] PRIVILEGES FOR SECURITY ROLE "<sec_role_name>";

list_security_roles

    $foo->list_security_roles;

LIST [ALL] SECURITY ROLES;

list_server_config_properties

    $foo->list_server_config_properties(
        "ALL" | [ "property_name1", "property_nameN" ] );

This command can be used only in 3-tier Project Source Names.

LIST ([ALL] PROPERTIES | property_name1 [, property_name2 [,...property_nameN]]) FOR SERVER CONFIGURATION;

PROPERTIES: MAXCONNECTIONTHREADS BACKUPFREQ USENTPERFORMANCEMON USEMSTRSCHEDULER BALSERVERTHREADS HISTORYDIR MAXNOMESSAGES MAXNOJOBS MAXNOCLIENTCONNS IDLETIME WEBIDLETIME MAXNOXMLCELLS MAXNOXMLDRILLPATHS MAXMEMUSAGE MINFREEMEM DESCRIPTION CACHECLEANUPFREQ MESSAGELIFETIME ENABLEWEBTHROTTLING ENABLEMEMALLOC MAXALLOCSIZE ENABLEMEMCONTRACT MINRESERVEDMEM MINRESERVEDMEMPERCENTAGE MAXVIRTUALADDRSPACE MEMIDLETIME WORKSETDIR MAXRAMWORKSET LICENSECHECKTIME SCHEDULERTIMEOUT MAXMEMXML MAXMEMPDF MAXMEMEXCEL

LIST ALL PROPERTIES FOR SERVER CONFIGURATION;

list_server_properties

    $foo->list_server_properties("machine_name");

LIST [ALL] PROPERTIES FOR SERVER "<machine_name>";

list_servers_cluster

    $foo->list_servers_cluster;

This command can be used only in 3-tier Project Source Names.

LIST ALL SERVERS IN CLUSTER;

list_shortcut_properties

    $foo->list_shortcut_properties(
        LOCATION            => "location_path",
        PROJECT_CONFIG_TYPE => "project_config_type",
        NAME                => "shortcut_name",
        PROJECT             => "project_name"
    );

PROJECT_CONFIG_TYPES: FOLDER, CONSOLIDATION, DOCUMENT, FILTER, METRIC, PROMPT, REPORT, SEARCH, TEMPLATE, ATTRIBUTE, FACT, FUNCTION, HIERARCHY, TABLE, TRANSFORMATION, DRILLMAP, SECFILTER, AUTOSTYLE, BASEFORMULA

LIST [ALL] PROPERTIES FOR SHORTCUT IN FOLDER "<location_path>" FOR (FOLDER | CONSOLIDATION | DOCUMENT | FILTER | METRIC | PROMPT | REPORT | SEARCH | TEMPLATE | ATTRIBUTE | FACT | FUNCTION | HIERARCHY | TABLE | TRANSFORMATION | DRILLMAP | SECFILTER | AUTOSTYLE | BASEFORMULA) "<shortcut_name>" FOR PROJECT "<project_name>";

list_shortcuts

    $foo->list_shortcuts(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: ALL => ,IN => FOLDER "<location_path>"

LIST [ALL] SHORTCUTS [IN FOLDER "<location_path>"] FOR PROJECT "<project_name>";

list_statistics_properties

    $foo->list_statistics_properties("project_name");

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR STATISTICS FROM PROJECT "<project_name>";

list_table_properties

    $foo->list_table_properties(
        TABLE   => "table_name",
        PROJECT => "project_name"
    );

LIST [ALL] PROPERTIES FOR TABLE "<table_name>" FOR PROJECT "<project_name>";

MicroStrategy Notes: 1. Warehouse Partition Table and Non_Relational Table are not supported. 2. Warehouse table names are case sensitive; logical table names are not case sensitive. 3. When listing available warehouse table for a project, make sure this project has at least one associated DBRole.

list_tables

    $foo->list_tables(
        LOCATION => "location_path",
        PROJECT  => "project_name"
    );

Optional parameters: LOCATION => "<location_path>"

LIST [ALL] TABLES [IN FOLDER "<location_path>"] FOR PROJECT "<project_name>";

MicroStrategy Notes: 1. Warehouse Partition Table and Non_Relational Table are not supported. 2. Warehouse table names are case sensitive; logical table names are not case sensitive. 3. When listing available warehouse table for a project, make sure this project has at least one associated DBRole.

list_user_conn_properties

    $foo->list_user_conn_properties(
        USER      => "login_name",
        SESSIONID => "sessionID"
    );

This command can be used only in 3-tier Project Source Names.

LIST [ALL] PROPERTIES FOR USER CONNECTION ("<login_name>" | SESSIONID <sessionID>);

list_user_connections

    $foo->list_user_connections( "ALL" | "ACTIVE" );

This command can be used only in 3-tier Project Source Names.

LIST [ALL | ACTIVE] USER CONNECTIONS;

list_user_group_members

$foo->list_user_group_members("user_group_name");

LIST MEMBERS FOR USER GROUP "<user_group_name>";

LIST MEMBERS FOR USER GROUP "Managers";

list_user_group_privileges

    $foo->list_user_group_members("user_group_name");

LIST [ALL] PRIVILEGES FOR USER GROUP "<user_group_name>";

list_user_group_properties

    $foo->list_user_group_properties(
        PROPERTIES => [ "property_name1", "property_nameN" ],
        USER_GROUP => "user_group_name"
    );

LIST ([ALL] PROPERTIES | <property_name1> [, <property_name2> [, ... <property_nameN>]]]) FOR USER GROUP "<user_group_name>";

PROPERTIES: DESCRIPTION NAME ID LDAPLINK MEMBERS

list_user_groups

    $foo->list_user_groups;

LIST [ALL] [USER] GROUPS;

list_user_privileges

    $foo->list_user_privileges(
        TYPE => "ALL | INHERITED | GRANTED",
        USER => "login_name"
    );

Optional parameters: TYPE => "ALL | INHERITED | GRANTED"

LIST [(ALL | INHERITED | GRANTED)] PRIVILEGES FOR USER "<login_name>";

list_user_profiles

    $foo->list_user_profiles(
        USER    => "login_name" | "ALL",
        GROUP   => "group_name" | [ "group_name1", "group_nameN" ],
        PROJECT => "project_name" | [ "project_name1", "project_nameN" ]
    );

Optional parameters: GROUP => "group_name" | [ "group_name1", "group_nameN" ], PROJECT => "project_name" | [ "project_name1", "project_nameN" ]

LIST [ALL] PROFILES FOR (USER "<login_name>" | USERS [IN GROUP(S) "<group_name1>" [, "<group_name2>" [, "<groupnamen>"]]]) [FOR PROJECT(S) "<project_name1>" [, "<projectname2>"[, "<projectnamen>"]]];

list_user_properties

    $foo->list_user_properties(
        PROPERTIES => [ "property_name1", "property_nameN" ],
        USER       => "login_name",
        USER_GROUP => "user_group_name"
    );

LIST ([ALL] PROPERTIES | property_name1 [, property_name2 [,...property_namen]]) FOR (USER "<login_name>" | USERS IN GROUP "<user_group_name>");

PROPERTIES: FULLNAME ENABLED NTLINK LDAPLINK WHLINK DESCRIPTION ALLOWCHANGEPWD ALLOWSTDAUTH PASSWORDEXP PASSWORDEXPFREQ NAME ID GROUPS CHANGEPWD

list_whtables

    $foo->list_whtables("project_name");

LIST [ALL] AVAILABLE WHTABLES FOR PROJECT "<project_name>";

MicroStrategy Notes: 1. Warehouse Partition Table and Non_Relational Table are not supported. 2. Warehouse table names are case sensitive; logical table names are not case sensitive. 3. When listing available warehouse tables for a project, make sure this project has at least one associated DBRole. 4. That listing available warehouse tables may return Warehouse Partition Tables, but Command Manager does not currently support manipulating Warehouse Partition Tables.

load_project

    $foo->load_project("project_name");

This command can be used only in 3-tier Project Source Names.

LOAD PROJECT "<project_name>";

LOAD PROJECT "MicroStrategy Tutorial";

load_projects_cluster

    $foo->load_projects_cluster(
        PROJECT => "project_name",
        SERVERS => "ALL" | [ "server_name1", "server_nameN" ]
    );

This command can be used only in 3-tier Project Source Names.

LOAD PROJECT "<project_name>" TO CLUSTER (ALL SERVERS | SERVERS "<server_name1>" [, "<server_name2>" [, "<server_nameN>" ]]);

You can load a project into a server, some servers, or all servers in a cluster. Be aware that changes will take effect immediately. You will need to unload a project from each individual node before attempting on loading this project to all servers in a cluster.

lock_configuration

    $foo->lock_configuration("FORCE");

Optional: FORCE

LOCK CONFIGURATION [FORCE];

lock_project

    $foo->lock_project(
        PROJECT => "project_name",
        FORCE   => "TRUE" | "FALSE"
    );

LOCK PROJECT "<project_name>" [FORCE];

log_event

    $foo->log_event(
        MESSAGE => "event_message",
        TYPE    => "ERROR" | "INFORMATION" | "WARNING"
    );

LOG EVENT "<event_message>" TYPE (ERROR | INFORMATION | WARNING);

This sample illustrates the logging of events to the Windows Event Log. LOG EVENT "Error Custom Message" TYPE ERROR; LOG EVENT "Info Custom Message" TYPE INFORMATION; LOG EVENT "Warning Custom Message" TYPE WARNING;

privileges_list

    $foo->privileges_list(
        "privilege_group" | [ "privilege_group1", "privilege_groupN" ] );

privilege_groups: web_reporter, web_analyst, web_professional, web_mmt_option, common_privileges, office, desktop_analyst, desktop_designer, architect, microstrategy_administrator, integrity_manager, administration

project_cluster

internal routine

purge_caching

    $foo->purge_caching(
        TYPE    => "ALL | OBJECT | ELEMENT | REPORT",
        PROJECT => "project_name" | "ALL"
    );

This command can be used only in 3-tier Project Source Names.

PURGE [(ALL | OBJECT | ELEMENT | REPORT)] CACHING IN ( [ALL] PROJECTS | [PROJECT] "<project_name>");

purge_statistics

    $foo->purge_statistics(
        START_DATE => "start_date",
        END_DATE   => "end_date",
        TIMEOUT    => "seconds"
    );

Optional parameters: TIMEOUT => <seconds>

This command can be used only in 3-tier Project Source Names.

PURGE STATISTICS FROM <start_date> TO <end_date> [TIMEOUT <seconds>];

register_project

    $foo->register_project(
        PROJECT => "project_name" AUTOLOAD => "TRUE" | "FALSE" );

Optional parameters: AUTOLOAD => "TRUE" | "FALSE"

This command can be used only in 3-tier Project Source Names.

REGISTER PROJECT "<project_name>" [NOAUTOLOAD];

remove_attribute_child

    $foo->remove_attribute_child(
        ATTRIBUTECHILD => "attributechild_name",
        ATTRIBUTE      => "attribute_name",
        LOCATION       => "location_path",
        PROJECT        => "project_name"
    );

REMOVE ATTRIBUTECHILD "<attributechild_name>" FROM ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

remove_attribute_form_expression

    $foo->remove_attribute_form_expression(
        ATTRIBUTEFORMEXP => "expression",
        ATTRIBUTEFORM    => "form_name",
        ATTRIBUTE        => "attribute_name",
        LOCATION         => "location_path",
        PROJECT          => "project_name"
    );

REMOVE ATTRIBUTEFORMEXP "<expression>" FROM ATTRIBUTEFORM "<form_name>" FOR ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

remove_attribute_form

    $foo->remove_attribute_form(
        ATTRIBUTEFORM => "form_name",
        ATTRIBUTE     => "attribute_name",
        LOCATION      => "location_path",
        PROJECT       => "project_name"
    );

REMOVE ATTRIBUTEFORM "<form_name>" FROM ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

remove_attribute_parent

    $foo->remove_attribute_parent(
        ATTRIBUTEPARENT => "attributeparent_name",
        ATTRIBUTE       => "attribute_name",
        LOCATION        => "location_path",
        PROJECT         => "project_name"
    );

REMOVE ATTRIBUTEPARENT "<attributeparent_name>" FROM ATTRIBUTE "<attribute_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

remove_configuration_ace

    $foo->remove_configuration_ace(
        CONF_OBJECT_TYPE         => "conf_object_type",
        OBJECT_NAME              => "object_name",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name"
    );

REMOVE ACE FROM <conf_object_type> "<object_name>" (USER | GROUP) "<user_login_or_group_name>";

List of Configuration Object Types: DBINSTANCE, DBCONNECTION, DBLOGIN, SCHEDULE, USER, GROUP, EVENT

remove_custom_group_element

    $foo->remove_custom_group_element(
        ELEMENT     => "element_name",
        CUSTOMGROUP => "customgroup_name",
        LOCATION    => "location_path",
        PROJECT     => "project_name"
    );

REMOVE ELEMENT "<element_name>" FROM CUSTOMGROUP "<customgroup_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

remove_dbinstance

    $foo->remove_dbinstance(
        DBINSTANCE => "DBInstance_name",
        PROJECT    => "project_name"
    );

REMOVE DBINSTANCE "<DBInstance_name>" FROM PROJECT "<project_name>";

REMOVE DBINSTANCE "Tutorial Data" FROM PROJECT "MicroStrategy Tutorial";

remove_fact_expression

    $foo->remove_fact_expression(
        EXPRESSION => "expression",
        FACT       => "fact_name",
        LOCATION   => "location_path",
        PROJECT    => "project_name"
    );

REMOVE EXPRESSION "<expression>" FROM FACT "<fact_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

remove_folder_ace

    $foo->remove_folder_ace(
        FOLDER                   => "folder_name",
        LOCATION                 => "location_path",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        PROJECT                  => "project_name"
    );

REMOVE ACE FROM FOLDER "<folder_name>" IN FOLDER "<location_path>" (USER | GROUP) "<user_login_or_group_name>" FOR PROJECT "<project_name>";

remove_project_ace

    $foo->remove_project_ace(
        PROJECT_OBJECT_TYPE      => "project_object_type",
        OBJECT_NAME              => "object_name",
        LOCATION                 => "location_path",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login_or_group_name",
        PROJECT                  => "project_name"
    );

REMOVE ACE FROM <project_object_type> "<object_name>" IN FOLDER "<location_path>" (USER | GROUP) "<user_login_or_group_name>" FOR PROJECT "<project_name>";

remove_server_cluster

    $foo->remove_server_cluster("server_name");

This command can be used only in 3-tier Project Source Names. REMOVE SERVER "<server_name>" FROM CLUSTER;

remove_user

    $foo->remove_user(
        USER  => "login_name",
        GROUP => "group_name" | [ "group_name1", "group_nameN" ]
    );

REMOVE USER "<login_name>" [FROM] GROUP "<group_name1>" [, "<group_name2>" [, ... "<group_nameN>"]];

remove_whtable

    $foo->remove_whtable(
        WHTABLE => "warehouse_table_name" TABLE => "table_name",
        PROJECT => "project_name"
    );

REMOVE (WHTABLE "<warehouse_table_name>" | TABLE "<table_name>") FROM PROJECT "<project_name>";

Note when you remove a table 1. If you remove a warehouse table from a project, all of its depending table(s) is/are removed too. 2. If you remove the only logical table of a warehouse table, the warehouse table is removed too. 3. Make sure the logical table does not have any dependent object(s).

Suppose that we have a table alias of "DT_YEAR" named "DT_YEAR1":

This statement by itself will only remove DT_YEAR1. REMOVE TABLE "DT_YEAR1" FROM PROJECT "MicroStrategy Tutorial";

This statement by itself will remove both DT_YEAR and DT_YEAR1. REMOVE WHTABLE "DT_YEAR" FROM PROJECT "MicroStrategy Tutorial";

restart_server

    $foo->restart_server("machine_name");

RESTART SERVER [IN] "<machine_name>";

resume_project

    $foo->resume_project("project_name");

This command can be used only in 3-tier Project Source Names.

RESUME PROJECT "<project_name>";

revoke_privileges

    $foo->revoke_privileges(
        PRIVILEGE => "ALL" | [ "privilege1", "privilegeN" ],
        USER      => "login_name",
        GROUP     => "user_group_name",
        SECURITY_ROLE => "sec_role_name"
    );

REVOKE ([ALL] PRIVILEGES | <privilege1> [, <privilege2> [, ... <privilegeN>]]) FROM ([USER] "<login_name>" | [USER] GROUP "<group_name>" | SECURITY ROLE "<security_role_name>");

revoke_security_filter

    $foo->revoke_security_filter(
        SECURITY_FILTER          => "sec_filter_name",
        LOCATION                 => "location_path",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "login_or_group_name",
        PROJECT                  => "project_name"
    );

Optional parameters: LOCATION => "<location_path>"

REVOKE SECURITY FILTER "<sec_filter_name>" [FOLDER "<location_path>"] FROM (USER | GROUP) "<login_or_group_name>" ON [PROJECT] "<project_name>";

revoke_security_roles

    $foo->revoke_security_roles(
        SECURITY_ROLE            => "sec_role_name",
        USER_OR_GROUP            => "USER" | "GROUP",
        USER_LOGIN_OR_GROUP_NAME => "user_login" | "user_group_name",
        PROJECT                  => "project_name"
    );

REVOKE [SECURITY ROLE] "<sec_role_name>" FROM [USER] ("<login_name>" | GROUP "<user_group_name>") ON [PROJECT] "<project_name>";

run_command

    $foo->run_command("executable_program");

RUN COMMAND "<executable_program>";

schedule

internal use only

schedule_relation

internal routine

security_filter

internal routine

security_role

internal routine

send_message

    $foo->send_message(
        MESSAGE => "message",
        USER    => "login_name" | "ALL"
    );

This command can be used only in 3-tier Project Source Names.

SEND MESSAGE "<message>" TO (USER "<login_name>" | [ALL] USERS);

set_property_hidden

    $foo->set_property_hidden(
        HIDDEN              => "TRUE" | "FALSE",
        PROJECT_CONFIG_TYPE => "project_configuration_type",
        OBJECT_NAME         => "object_name",
        LOCATION            => "location_path",
        PROJECT             => "project_name"
    );

SET PROPERTY HIDDEN (TRUE | FALSE) FOR (FOLDER | CONSOLIDATION | DOCUMENT | FILTER | METRIC | PROMPT | REPORT | SEARCH | TEMPLATE | ATTRIBUTE | FACT | FUNCTION | HIERARCHY | TABLE | TRANSFORMATION | DRILLMAP | SECFILTER | AUTOSTYLE | BASEFORMULA | SHORTCUT) "<object_name>" IN FOLDER "<location_path>" FOR PROJECT "<project_name>";

When two or more shortcuts in a folder have the same name, GET/SET command will treat all of them equally. This means the SET command will set all of them to either hidden or visible. The GET command will show hidden property for all of them.

shortcut

internal routine

start_server

    $foo->start_server("machine_name");

START SERVER [IN] "<machine_name>";

start_service

    $foo->start_service(
        SERVICE => "service_name",
        SERVER  => "machine_name"
    );

START SERVICE "<service_name>" IN "<machine_name>";

MicroStrategy Enterprise Manager Data Loader: START SERVICE "MAEMETLS" IN "HOST_MSTR";

MicroStrategy Listener: START SERVICE "MAPING" IN "HOST_MSTR";

stop_server

    $foo->stop_server("machine_name");

MicroStrategy Command Manager does not currently support manipulating a MicroStrategy Intelligence Server installed in a UNIX machine.

stop_service

    $foo->stop_service(
        SERVICE => "service_name",
        SERVER  => "machine_name"
    );

STOP SERVICE "<service_name>" IN "<machine_name>";

MicroStrategy Enterprise Manager Data Loader: STOP SERVICE "MAEMETLS" IN "HOST_MSTR";

MicroStrategy Listener: STOP SERVICE "MAPING" IN "HOST_MSTR";

take_ownership

    $foo->take_ownership(
        OBJECT_TYPE => "conf_object_type" | "project_object_type" | "FOLDER",
        OBJECT_NAME => "object_name",
        RECURSIVELY => "TRUE" | "FALSE",    # for FOLDER only
        LOCATION    => "location_path",
        PROJECT     => "project_name"
    );

Optional parameters: RECURSIVELY => "TRUE" | "FALSE"

TAKE OWNERSHIP FOR (<conf_object_type> "<object_name>" | (<project_object_type> "<object_name>" | FOLDER "<folder_name>" [RECURSIVELY]) IN FOLDER "<location_path>" FOR PROJECT "<project_name>");

TAKE OWNERSHIP FOR FOLDER "Subtotals" RECURSIVELY IN FOLDER "\Project Objects" FOR PROJECT "MicroStrategy Tutorial";

trigger_event

    $foo->trigger_event("event_name");

This command can be used only in 3-tier Project Source Names. TRIGGER EVENT "<event_name>";

unload_project

    $foo->unload_project("project_name");

This command can be used only in 3-tier Project Source Names.

UNLOAD PROJECT "<project_name>";

unload_projects_cluster

    $foo->unload_projects_cluster(
        PROJECT => "project_name",
        SERVERS => "ALL" | [ "server_name1", "server_nameN" ]
    );

This command can be used only in 3-tier Project Source Names.

UNLOAD PROJECT "<project_name>" FROM CLUSTER (ALL SERVERS | SERVERS "<server_name1>" [, "<server_name2>"[, "<server_nameN>" ]]);

You can unload a project into a server, some servers, or all servers in a cluster. Be aware that changes will take effect immediately. Note you can only use UNLOAD from ALL SERVERS if you previously used LOAD to ALL SERVERS.

unlock_configuration

    $foo->unlock_configuration;

UNLOCK CONFIGURATION FORCE;

unlock_project

    $foo->unlock_project("project_name");

UNLOCK PROJECT "<project_name>" FORCE;

UNLOCK PROJECT "MicroStrategy Tutorial" FORCE;

unregister_project

    $foo->unregister_project("project_name");

This command can be used only in 3-tier Project Source Names.

UNREGISTER PROJECT "<project_name>";

update_project

    $foo->update_project("project_name");

UPDATE PROJECT "<project_name>";

update_schema

    $foo->update_schema(
        REFRESHSCHEMA     => "TRUE" | "FALSE",
        RECALTABLEKEYS    => "TRUE" | "FALSE",
        RECALTABLELOGICAL => "TRUE" | "FALSE",
        RECALOBJECTCACHE  => "TRUE" | "FALSE",
        PROJECT           => "project_name"
    );

Optional parameters: REFRESHSCHEMA => "TRUE" | "FALSE", RECALTABLEKEYS => "TRUE" | "FALSE", RECALTABLELOGICAL => "TRUE" | "FALSE", RECALOBJECTCACHE => "TRUE" | "FALSE",

UPDATE SCHEMA [ REFRESHSCHEMA | RECALTABLEKEYS | RECALTABLELOGICAL | RECALOBJECTCACHE] FOR PROJECT "<project_name>";

UPDATE SCHEMA REFRESHSCHEMA FOR PROJECT "MicroStrategy Tutorial"; UPDATE SCHEMA RECALTABLEKEYS FOR PROJECT "MicroStrategy Tutorial"; UPDATE SCHEMA RECALTABLELOGICAL FOR PROJECT "MicroStrategy Tutorial"; UPDATE SCHEMA RECALOBJECTCACHE FOR PROJECT "MicroStrategy Tutorial"; UPDATE SCHEMA FOR PROJECT "MicroStrategy Tutorial"; UPDATE SCHEMA REFRESHSCHEMA RECALTABLEKEYS RECALTABLELOGICAL RECALOBJECTCACHE FOR PROJECT "MicroStrategy Tutorial";

update_structure

    $foo->update_structure(
        COLMERGEOPTION => "RECENT | MAXDENOMINATOR | NOMERGE",
        WHTABLE        => "warehouse_table_name",
        PROJECT        => "project_name"
    );

Optional parameters: WHTABLE => "warehouse_table_name"

UPDATE STRUCTURE COLMERGEOPTION (RECENT | MAXDENOMINATOR | NOMERGE) [FOR WHTABLE "<warehouse_table_name>"] FOR PROJECT "<project_name>";

Notes: 1. Warehouse Partition Table and Non_Relational Table are not supported 2. Warehouse table names are case sensitive; logical table names are not case sensitive

ColMergeOption: 1. RECENT: If a column is discovered in the warehouse, which has the same name as that of an existing column but different data types, the column in the project is updated to have the data type found in the warehouse. 2. MAXDENOMINATOR: Columns with the same name are always treated as the same object if they have compatible data types (i.e., all numeric, all string-text, etc.). The resulting column in the project has a maximum common data type for all the corresponding physical columns. 3. NOMERGE: Two columns having the same name but different data types are treated as two different columns in the project.

To update structure for a warehouse table, you will need to provide a name. Command Manager will search for the table and update its column structure. All the logical tables using this warehouse table will also get their definitions updated. If no table name was provided, Command Manager will proceed to update all warehouse tables currently existing in the project.

UPDATE STRUCTURE COLMERGEOPTION MAXDENOMINATOR FOR WHTABLE "DT_YEAR" FOR PROJECT "MicroStrategy Tutorial";

UPDATE STRUCTURE COLMERGEOPTION RECENT FOR PROJECT "MicroStrategy Tutorial";

user

internal routine

user_group

internal routine

AUTHOR ^

Craig Grady, <cgrady357 at gmail.com>

BUGS ^

Please report any bugs or feature requests to bug-business-intelligence-microstrategy-commandmanager at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Business-Intelligence-MicroStrategy-CommandManager. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc Business::Intelligence::MicroStrategy::CommandManager

You can also look for information at:

ACKNOWLEDGEMENTS ^

COPYRIGHT & LICENSE ^

Copyright 2008 Craig Grady, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: