Business-Intelligence-MicroStrategy-CommandManager
view release on metacpan or search on metacpan
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
if($cnt == $size) { last; }
$tmp .= ", ";
}
return $exp . " " . $tmp . " ";
};
=head2 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"
);
=cut
sub add_attribute_child {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ATTRIBUTECHILD RELATIONSHIPTYPE ATTRIBUTE LOCATION PROJECT);
my @required = qw(ATTRIBUTECHILD RELATIONSHIPTYPE ATTRIBUTE LOCATION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/ATTRIBUTECHILD$/ && do { $result .= "ADD ATTRIBUTECHILD " . $q . $self->{ATTRIBUTECHILD} . $q . " " ;};
/RELATIONSHIPTYPE/ && do { $result .= "RELATIONSHIPTYPE " . $self->{RELATIONSHIPTYPE} . " ";};
/ATTRIBUTE$/ && do { $result .= "TO ATTRIBUTE " . $q . $self->{ATTRIBUTE} . $q . " "; };
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "; };
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"; };
}
return $result;
}
=head2 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>" FO...
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"
);
=cut
sub add_attribute_form_expression {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ATTRIBUTEFORMEXP EXPSOURCETABLES LOOKUPTABLE OVERWRITE ATTRIBUTEFORM ATTRIBUTE LOCATION PROJECT);
my @required = qw(ATTRIBUTEFORMEXP ATTRIBUTEFORM ATTRIBUTE LOCATION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/ATTRIBUTEFORMEXP$/ && do { $result .= "ADD ATTRIBUTEFORMEXP " . $q . $self->{ATTRIBUTEFORMEXP} . $q . " "};
/EXPSOURCETABLES/ && do { $result .= $self->join_objects($_, $_); };
/LOOKUPTABLE/ && do { $result .= "LOOKUPTABLE " . $q . $self->{LOOKUPTABLE} . $q . " "};
/OVERWRITE/ && do { if($self->{OVERWRITE} =~ /(F|0)/i) { next; } $result .= "OVERWRITE "};
/ATTRIBUTEFORM$/ && do { $result .= "TO ATTRIBUTEFORM " . $q . $self->{ATTRIBUTEFORM} . $q . " "};
/ATTRIBUTE$/ && do { $result .= "FOR ATTRIBUTE " . $q . $self->{ATTRIBUTE} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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>" [EX...
$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 Tuto...
$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"
);
=cut
sub add_attribute_form {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ATTRIBUTEFORM FORMDESC FORMCATEGORY FORMTYPE SORT EXPRESSION EXPSOURCETABLES LOOKUPTABLE ATTRIBUTE LOCATION PROJECT);
my @required = qw(ATTRIBUTEFORM FORMCATEGORY FORMTYPE EXPRESSION LOOKUPTABLE ATTRIBUTE LOCATION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/ATTRIBUTEFORM$/ && do { $result .= "ADD ATTRIBUTEFORM " . $q . $self->{ATTRIBUTEFORM} . $q . " "};
/FORMDESC/ && do { $result .= "FORMDESC " . $q . $self->{FORMDESC} . $q . " "};
/FORMCATEGORY/ && do { $result .= "FORMCATEGORY " . $q . $self->{FORMCATEGORY} . $q . " "};
/FORMTYPE/ && do { $result .= "FORMTYPE " . $self->{FORMTYPE} . " "};
/SORT/ && do { $result .= "SORT " . $self->{SORT} . " "};
/EXPRESSION/ && do { $result .= "EXPRESSION " . $q . $self->{EXPRESSION} . $q . " "};
/EXPSOURCETABLES/ && do { $result .= $self->join_objects($_, $_); };
/LOOKUPTABLE/ && do { $result .= "LOOKUPTABLE " . $q . $self->{LOOKUPTABLE} . $q . " "};
/ATTRIBUTE$/ && do { $result .= "TO ATTRIBUTE " . $q . $self->{ATTRIBUTE} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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"
);
=cut
sub add_attribute_parent {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ATTRIBUTEPARENT RELATIONSHIPTYPE ATTRIBUTE LOCATION PROJECT);
my @required = qw(ATTRIBUTEPARENT RELATIONSHIPTYPE ATTRIBUTE LOCATION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/ATTRIBUTEPARENT$/ && do { $result .= "ADD ATTRIBUTEPARENT " . $q . $self->{ATTRIBUTEPARENT} . $q . " "};
/RELATIONSHIPTYPE/ && do { $result .= "RELATIONSHIPTYPE " . $self->{RELATIONSHIPTYPE} . " "};
/ATTRIBUTE$/ && do { $result .= "TO ATTRIBUTE " . $q . $self->{ATTRIBUTE} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 add_configuration_ace
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
}
$result .= "SHOWALLANDEXPAND ";
};
/EXPRESSION/ && do { $result .= "EXPRESSION " . $q . $self->{EXPRESSION} . $q . " "};
/BREAKAMBIGUITY_FOLDER/ && do { $result .= "BREAKAMBIGUITY FOLDER " . $q . $self->{BREAKAMBIGUITY_FOLDER} . $q . " "};
/BANDNAMES/ && do { $result .= $self->join_objects($_, $_); };
/^OUTPUTLEVEL$/ && do { $result .= $self->join_objects($_, $_); };
/^OUTPUTLEVEL_LOCATIONS$/ && do { $result .= $self->join_objects($_, "IN FOLDERS"); };
/CUSTOMGROUP/ && do { $result .= "TO CUSTOMGROUP " . $q . $self->{CUSTOMGROUP} . $q . " "};
/^LOCATION$/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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"
);
=cut
sub add_dbinstance {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(DBINSTANCE PROJECT);
my @required = qw(DBINSTANCE PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/DBINSTANCE/ && do { $result .= "ADD DBINSTANCE " . $q . $self->{DBINSTANCE} . $q . " "};
/PROJECT/ && do { $result .= "TO PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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 overlapp...
/* 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";
=cut
sub add_fact_expression {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(EXPRESSION EXPSOURCETABLES OVERWRITE FACT LOCATION PROJECT);
my @required = qw(EXPRESSION FACT LOCATION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/EXPRESSION/ && do { $result .= "ADD EXPRESSION " . $q . $self->{EXPRESSION} . $q . " "};
/EXPSOURCETABLES/ && do { $result .= $self->join_objects($_, $_); };
/OVERWRITE/ && do { if($self->{OVERWRITE} =~ /(F|0)/i) { next; } $result .= "OVERWRITE "};
/FACT/ && do { $result .= "TO FACT " . $q . $self->{FACT} . $q ." "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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 ...
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
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 corresp...
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"
);
=cut
sub add_whtable {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(WHTABLE PREFIX AUTOMAPPING CALTABLELOGICALSIZE COLMERGEOPTION PROJECT);
my @required = qw(WHTABLE PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/WHTABLE/ && do { $result .= "ADD WHTABLE " . $q . $self->{WHTABLE} . $q . " "};
/PREFIX/ && do { $result .= "PREFIX " . $q . $self->{PREFIX} . $q . " "};
/AUTOMAPPING/ && do { $result .= "AUTOMAPPING " . $self->{AUTOMAPPING} . " "};
/CALTABLELOGICALSIZE/ && do { $result .= "CALTABLELOGICALSIZE " . $self->{CALTABLELOGICALSIZE} . " "};
/COLMERGEOPTION/ && do { $result .= "COLMERGEOPTION " . $self->{COLMERGEOPTION} . " "};
/PROJECT/ && do { $result .= "TO PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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...
$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"
);
=cut
sub alter_attribute_form_expression {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ATTRIBUTEFORMEXP OVERWRITE LOOKUPTABLE MAPPINGMODE ATTRIBUTEFORM ATTRIBUTE LOCATION PROJECT);
my @required = qw(ATTRIBUTEFORMEXP MAPPINGMODE ATTRIBUTEFORM ATTRIBUTE LOCATION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/^ATTRIBUTEFORMEXP$/ && do { $result .= "ALTER ATTRIBUTEFORMEXP " . $q . $self->{ATTRIBUTEFORMEXP} . $q . " "};
/OVERWRITE/ && do { if($self->{OVERWRITE} =~ /(F|0)/i) { next; } $result .= "OVERWRITE "};
/LOOKUPTABLE/ && do { $result .= "LOOKUPTABLE " . $q . $self->{LOOKUPTABLE} . $q . " "};
/MAPPINGMODE/ && do {
$result .= "MAPPINGMODE ";
if ($self->{MAPPINGMODE} =~ /ARRAY/) {
$result .= $self->join_objects($_, "EXPSOURCETABLES");
next;
}
$result .= "AUTOMATIC ";
};
/^ATTRIBUTEFORM$/ && do { $result .= "FOR ATTRIBUTEFORM " . $q . $self->{ATTRIBUTEFORM} . $q . " "};
/^ATTRIBUTE$/ && do { $result .= "FOR ATTRIBUTE " . $q . $self->{ATTRIBUTE} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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)] BROW...
$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>",ELEM...
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 P...
$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 P...
$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",
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
sub apply_run_time_settings { return "APPLY RUN TIME SETTINGS;"; }
=head2 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>";
=cut
sub apply_security_filter {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(SECURITY_FILTER LOCATION USER_OR_GROUP USER_LOGIN_OR_GROUP_NAME PROJECT);
my @required = qw(SECURITY_FILTER USER_OR_GROUP USER_LOGIN_OR_GROUP_NAME PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/SECURITY_FILTER/ && do { $result .= "APPLY SECURITY FILTER " . $q . $self->{SECURITY_FILTER} . $q . " "};
/LOCATION/ && do { $result .= "FOLDER " . $q . $self->{LOCATION} . $q . " "};
/USER_OR_GROUP/ && do { $result .= "TO " . $self->{USER_OR_GROUP} . " "};
/USER_LOGIN_OR_GROUP_NAME/ && do { $result .= $q . $self->{USER_LOGIN_OR_GROUP_NAME} . $q . " "};
/PROJECT/ && do { $result .= "ON PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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 | P...
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 "Micr...
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_DA...
=cut
sub create_attribute {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ATTRIBUTE DESCRIPTION LOCATION HIDDEN ATTRIBUTEFORM FORMDESC FORMTYPE SORT EXPRESSION EXPSOURCETABLES LOOKUPTABLE PROJECT);
my @required = qw(ATTRIBUTE LOCATION ATTRIBUTEFORM EXPRESSION LOOKUPTABLE PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/^ATTRIBUTE$/ && do { $result .= "CREATE ATTRIBUTE " . $q . $self->{ATTRIBUTE} . $q . " "};
/DESCRIPTION/ && do { $result .= "DESCRIPTION " . $q . $self->{DESCRIPTION} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/HIDDEN/ && do { $result .= "HIDDEN " . $self->{HIDDEN} . " "};
/^ATTRIBUTEFORM$/ && do { $result .= "ATTRIBUTEFORM " . $q . $self->{ATTRIBUTEFORM} . $q . " "};
/FORMDESC/ && do { $result .= "FORMDESC " . $q . $self->{FORMDESC} . $q . " "};
/FORMTYPE/ && do { $result .= "FORMTYPE " . $self->{FORMTYPE} . " "};
/SORT/ && do { $result .= "SORT " . $self->{SORT} . " "};
/EXPRESSION/ && do { $result .= "EXPRESSION " . $q . $self->{EXPRESSION} . $q . " "};
/EXPSOURCETABLES/ && do { $result .= $self->join_objects($_, $_) };
/LOOKUPTABLE/ && do { $result .= "LOOKUPTABLE " . $q . $self->{LOOKUPTABLE} . $q . " "};
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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>";
=cut
sub create_connection_map {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(USER DBINSTANCE DBCONNECTION DBLOGIN PROJECT);
my @required = qw(USER DBINSTANCE DBCONNECTION DBLOGIN PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/USER/ && do { $result .= "CREATE CONNECTION MAP FOR USER " . $q . $self->{USER} . $q . " "};
/DBINSTANCE/ && do { $result .= "DBINSTANCE " . $q . $self->{DBINSTANCE} . $q . " "};
/DBCONNECTION/ && do { $result .= "DBCONNECTION " . $q . $self->{DBCONNECTION} . $q . " "};
/DBLOGIN/ && do { $result .= "DBLOGIN " . $q . $self->{DBLOGIN} . $q . " "};
/PROJECT/ && do { $result .= "ON PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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",
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/^DBLOGIN$/ && do { $result .= "CREATE DBLOGIN " . $q . $self->{DBLOGIN} . $q . " "};
/^LOGIN$/ && do { $result .= "LOGIN " . $q . $self->{LOGIN} . $q . " "};
/PASSWORD/ && do { $result .= "PASSWORD " . $q . $self->{PASSWORD} . $q . " "};
}
$result =~ s/\s+$//;
$result .= ";";
return $result;
}
=head2 create_event
$foo->create_event(
EVENT => "event_name",
DESCRIPTION => "description"
);
Optional parameters:
DESCRIPTION => "description"
CREATE EVENT "<event_name>" [DESCRIPTION "<description>"];
=cut
sub create_event {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(EVENT DESCRIPTION);
my @required = qw();
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/EVENT/ && do { $result .= "CREATE EVENT " . $q . $self->{EVENT} . $q . " "};
/DESCRIPTION/ && do { $result .= "DESCRIPTION " . $q . $self->{DESCRIPTION} . $q . " "};
}
$result =~ s/\s+$//;
$result .= ";";
return $result;
}
=head2 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>";
=cut
sub create_fact {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(FACT DESCRIPTION LOCATION HIDDEN EXPRESSION EXPSOURCETABLES PROJECT);
my @required = qw(FACT LOCATION EXPRESSION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/FACT/ && do { $result .= "CREATE FACT " . $q . $self->{FACT} . $q . " "};
/DESCRIPTION/ && do { $result .= "DESCRIPTION " . $q . $self->{DESCRIPTION} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/HIDDEN/ && do { $result .= "HIDDEN " . $self->{HIDDEN} . " "};
/EXPRESSION/ && do { $result .= "EXPRESSION " . $q . $self->{EXPRESSION} . $q . " "};
/EXPSOURCETABLES/ && do { $result .= $self->join_objects($_, $_) };
/PROJECT/ && do { $result .= "FOR PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 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>";
=cut
sub create_filter_oultine {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(FILTER LOCATION EXPRESSION DESCRIPTION HIDDEN PROJECT);
my @required = qw(FILTER LOCATION EXPRESSION PROJECT);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/FILTER/ && do { $result .= "CREATE FILTER " . $q . $self->{FILTER} . $q . " "};
/LOCATION/ && do { $result .= "IN FOLDER " . $q . $self->{LOCATION} . $q . " "};
/EXPRESSION/ && do { $result .= "EXPRESSION " . $q . $self->{EXPRESSION} . $q ." "};
/DESCRIPTION/ && do { $result .= "DESCRIPTION " . $q. $self->{DESCRIPTION} . $q . " "};
/HIDDEN/ && do { $result .= "HIDDEN " . $self->{HIDDEN} . " "};
/PROJECT/ && do { $result .= "ON PROJECT " . $q . $self->{PROJECT} . $q . ";"};
}
return $result;
}
=head2 create_folder
$foo->create_folder(
FOLDER => "folder_name",
LOCATION => "location_path",
DESCRIPTION => "description",
HIDDEN => "TRUE" | "FALSE",
PROJECT => "project_name"
);
( run in 1.426 second using v1.01-cache-2.11-cpan-140bd7fdf52 )