Business-Intelligence-MicroStrategy-CommandManager

 view release on metacpan or  search on metacpan

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

	/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]", 

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

	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

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

	/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

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

	/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",

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN


$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"
);

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

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 . ";"};
}

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

    $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(

lib/Business/Intelligence/MicroStrategy/CommandManager.pm  view on Meta::CPAN

}

=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", 

t/adds.t  view on Meta::CPAN

        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",
        EXPSOURCETABLES => [ "MySourceTable1", "MySourceTable2" ],
    ),
'ADD ATTRIBUTEFORM "Last Name" FORMDESC "Last Name Form" FORMCATEGORY "DESC" FORMTYPE TEXT SORT DESC EXPRESSION "[CUST_LAST_NAME]" EXPSOURCETABLES "MySourceTable1", "MySourceTable2" LOOKUPTABLE "LU_CUSTOMER" TO ATTRIBUTE "Customer" IN FOLDER "\Schema...
    "add_attribute_form2"
);

is(
    $foo->add_attribute_form_expression(
        ATTRIBUTEFORMEXP => "ORDER_DATE",
        ATTRIBUTEFORM    => "ID",
        ATTRIBUTE        => "Day",
        LOCATION         => "\\Schema Objects\\Attributes",
        PROJECT          => "MicroStrategy Tutorial",
        EXPSOURCETABLES  => [ "MySourceTable1", "MySourceTable2" ],
        LOOKUPTABLE      => "LU_CUSTOMER",
        OVERWRITE        => "TRUE",
    ),
'ADD ATTRIBUTEFORMEXP "ORDER_DATE" EXPSOURCETABLES "MySourceTable1", "MySourceTable2" LOOKUPTABLE "LU_CUSTOMER" OVERWRITE TO ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";',
    "add_attribute_form_expression1"
);

is(
    $foo->add_attribute_form_expression(
        ATTRIBUTEFORMEXP => "ORDER_DATE",
        ATTRIBUTEFORM    => "ID",
        ATTRIBUTE        => "Day",
        LOCATION         => "\\Schema Objects\\Attributes",
        PROJECT          => "MicroStrategy Tutorial"
    ),
'ADD ATTRIBUTEFORMEXP "ORDER_DATE" TO ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";',
    "add_attribute_form_expression2"
);

is(
    $foo->add_attribute_form_expression(
        ATTRIBUTEFORMEXP => "ORDER_DATE",
        EXPSOURCETABLES  => [ "Mytable1", "Mytable2", ],
        LOOKUPTABLE      => "Lookup_table",
        ATTRIBUTEFORM    => "ID",
        ATTRIBUTE        => "Day",
        LOCATION         => "\\Schema Objects\\Attributes",
        PROJECT          => "MicroStrategy Tutorial"
    ),
'ADD ATTRIBUTEFORMEXP "ORDER_DATE" EXPSOURCETABLES "Mytable1", "Mytable2" LOOKUPTABLE "Lookup_table" TO ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";',
    "add_attribute_form_expression3"
);

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

t/adds.t  view on Meta::CPAN

        PROJECT    => "MicroStrategy Tutorial"
    ),
    'ADD DBINSTANCE "Extra Tutorial Data" TO PROJECT "MicroStrategy Tutorial";',
    "add_dbinstance"
);

is(
    $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 "([QTY_SOLD] * (([UNIT_PRICE] - DISCOUNT) - [UNIT_COST]))" EXPSOURCETABLES "ORDER_DETAIL" TO FACT "Profit" IN FOLDER "\Public Objects" FOR PROJECT "MicroStrategy Tutorial";',
    "add_fact_expression1"
);

is(
    $foo->add_fact_expression(
        EXPRESSION      => 'ORDER_ID',
        EXPSOURCETABLES => ["RUSH_ORDER"],
        OVERWRITE       => "TRUE",
        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";',
    "add_fact_expression2"
);

is(
    $foo->add_folder_ace(
        FOLDER                   => "Subtotals",
        LOCATION                 => "\\Project Objects",
        USER_OR_GROUP            => "USER",
        USER_LOGIN_OR_GROUP_NAME => "Developer",
        ACCESSRIGHTS             => "FULLCONTROL",

t/alters.t  view on Meta::CPAN


is(
    $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 ATTRIBUTEFORMEXP "ORDER_DATE" MAPPINGMODE EXPSOURCETABLES "ORDER_DETAIL", "ORDER_FACT" FOR ATTRIBUTEFORM "ID" FOR ATTRIBUTE "Day" IN FOLDER "\Schema Objects\Attributes" FOR PROJECT "MicroStrategy Tutorial";',
    "alter_attribute_form_expression2"
);

is(
    $foo->alter_attribute_form_expression(
        ATTRIBUTEFORMEXP => "ORDER_ID",
        OVERWRITE        => "TRUE",
        LOOKUPTABLE      => "CUSTOMERS",
        MAPPINGMODE      => "AUTOMATIC",
        ATTRIBUTEFORM    => "ID",

t/creates.t  view on Meta::CPAN

    "create_event"
);

is(
    $foo->create_fact(
        FACT            => "fact_name",
        DESCRIPTION     => "description",
        LOCATION        => "location_path",
        HIDDEN          => "TRUE",
        EXPRESSION      => "expression",
        EXPSOURCETABLES => [ "sourcetable1", "sourcetableN" ],
        PROJECT         => "project_name"
    ),
'CREATE FACT "fact_name" DESCRIPTION "description" IN FOLDER "location_path" HIDDEN TRUE EXPRESSION "expression" EXPSOURCETABLES "sourcetable1", "sourcetableN" FOR PROJECT "project_name";',
    "create_fact"
);

is(
    $foo->create_filter_oultine(
        FILTER      => "filter_name",
        LOCATION    => "location_path",
        EXPRESSION  => "expression",
        DESCRIPTION => "description",
        HIDDEN      => "TRUE",



( run in 1.478 second using v1.01-cache-2.11-cpan-49f99fa48dc )