Business-Intelligence-MicroStrategy-CommandManager
view release on metacpan or search on metacpan
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
/ACCESSRIGHTS$/ && do { $result .= "ACCESSRIGHTS " . $self->{ACCESSRIGHTS} . " " };
/ACCESSRIGHTS_CUSTOM$/ && do { $result .= custom_access_rights($self->{ACCESSRIGHTS_CUSTOM}) };
}
$result =~ s/\s+$//;
$result .= ";";
return $result;
}
=head2 add_custom_group_element
ADD ELEMENT "<element_name>" [(SHOWELEMENTNAME | SHOWITEMSINELEMENT | SHOWITEMSINELEMENTANDEXPAND | SHOWALLANDEXPAND)] EXPRESSION "<expression>" [BREAKAMBIGUITY FOLDER "<local_symbol_folder>" ] [BANDNAMES "<name1>", "<name2>", "<nameN>"] [OUTPUTLEVE...
$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"],...
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"})
=cut
sub add_custom_group_element {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(ELEMENT SHOWELEMENTNAME SHOWITEMSINELEMENT SHOWITEMSINELEMENTANDEXPAND SHOWALLANDEXPAND EXPRESSION BREAKAMBIGUITY_FOLDER BANDNAMES OUTPUTLEVEL OUTPUTLEVEL_LOCATIONS CUSTOMGROUP LOCATION PROJECT);
my @required = qw(ELEMENT EXPRESSION CUSTOMGROUP 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) {
/^ELEMENT$/ && do { $result .= "ADD ELEMENT " . $q . $self->{ELEMENT} . $q . " "};
/^SHOWELEMENTNAME$/ && do {
if($self->{SHOWELEMENTNAME} =~ /(F|0)/i) {
next;
}
$result .= "SHOWELEMENTNAME ";
};
/^SHOWITEMSINELEMENT$/ && do {
if($self->{SHOWITEMSINELEMENT} =~ /(F|0)/i) {
next;
}
$result .= "SHOWITEMSINELEMENT ";
};
/^SHOWITEMSINELEMENTANDEXPAND$/ && do {
if($self->{SHOWITEMSINELEMENTANDEXPAND} =~ /(F|0)/i) {
next;
}
$result .= "SHOWITEMSINELEMENTANDEXPAND ";
};
/SHOWALLANDEXPAND/ && do {
if($self->{SHOWALLANDEXPAND} =~ /(F|0)/i) {
next;
}
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
=cut
sub alter_security_filter {
my $self = shift;
$self->{ACTION} = "ALTER ";
$self->security_filter(@_);
}
=head2 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>"];
=cut
sub alter_security_role {
my $self = shift;
$self->{ACTION} = "ALTER ";
$self->security_role(@_);
}
=head2 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 MA...
=cut
sub alter_server_config {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(DESCRIPTION MAXCONNECTIONTHREADS BACKUPFREQ USEPERFORMANCEMON USEMSTRSCHEDULER SCHEDULERTIMEOUT BALSERVERTHREADS CACHECLEANUPFREQ LICENSECHECKTIME HISTORYDIR MAXNOMESSAGES MESSAGELIFETIME MAXNOJOBS MAXNOCLIENTCONNS IDLETIME WEBIDLETIME...
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) {
/DESCRIPTION/ && do { $result .= "ALTER SERVER CONFIGURATION DESCRIPTION " . $q . $self->{DESCRIPTION} . $q . " "};
/MAXCONNECTIONTHREADS/ && do { $result .= "MAXCONNECTIONTHREADS " . $self->{MAXCONNECTIONTHREADS} . " "};
/BACKUPFREQ/ && do { $result .= "BACKUPFREQ " . $self->{BACKUPFREQ} . " "};
/USEPERFORMANCEMON/ && do { $result .= "USEPERFORMANCEMON " . $self->{USEPERFORMANCEMON} . " "};
/USEMSTRSCHEDULER/ && do { $result .= "USEMSTRSCHEDULER " . $self->{USEMSTRSCHEDULER} . " "};
/SCHEDULERTIMEOUT/ && do { $result .= "SCHEDULERTIMEOUT " . $self->{SCHEDULERTIMEOUT} . " "};
/BALSERVERTHREADS/ && do { $result .= "BALSERVERTHREADS " . $self->{BALSERVERTHREADS} . " "};
/CACHECLEANUPFREQ/ && do { $result .= "CACHECLEANUPFREQ " . $self->{CACHECLEANUPFREQ} . " "};
/LICENSECHECKTIME/ && do { $result .= "LICENSECHECKTIME " . $self->{LICENSECHECKTIME} . " "};
/HISTORYDIR/ && do { $result .= "HISTORYDIR " . $q . $self->{HISTORYDIR} . $q . " "};
/MAXNOMESSAGES/ && do { $result .= "MAXNOMESSAGES " . $self->{MAXNOMESSAGES} . " "};
/MESSAGELIFETIME/ && do { $result .= "MESSAGELIFETIME " . $self->{MESSAGELIFETIME} . " "};
/MAXNOJOBS/ && do { $result .= "MAXNOJOBS " . $self->{MAXNOJOBS} . " "};
/MAXNOCLIENTCONNS/ && do { $result .= "MAXNOCLIENTCONNS " . $self->{MAXNOCLIENTCONNS} . " "};
/^IDLETIME$/ && do { $result .= "IDLETIME " . $self->{IDLETIME} . " "};
/^WEBIDLETIME$/ && do { $result .= "WEBIDLETIME " . $self->{WEBIDLETIME} . " "};
/MAXNOXMLCELLS/ && do { $result .= "MAXNOXMLCELLS " . $self->{MAXNOXMLCELLS} . " "};
/MAXNOXMLDRILLPATHS/ && do { $result .= "MAXNOXMLDRILLPATHS " . $self->{MAXNOXMLDRILLPATHS} . " "};
/MAXMEMXML/ && do { $result .= "MAXMEMXML " . $self->{MAXMEMXML} . " "};
/MAXMEMPDF/&& do { $result .= "MAXMEMPDF " . $self->{MAXMEMPDF} . " "};
/MAXMEMEXCEL/&& do { $result .= "MAXMEMEXCEL " . $self->{MAXMEMEXCEL} . " "};
/ENABLEWEBTHROTTLING/ && do { $result .= "ENABLEWEBTHROTTLING " . $self->{ENABLEWEBTHROTTLING} . " "};
/MAXMEMUSAGE/ && do { $result .= "MAXMEMUSAGE " . $self->{MAXMEMUSAGE} . " "};
/MINFREEMEM/ && do { $result .= "MINFREEMEM " . $self->{MINFREEMEM} . " "};
/ENABLEMEMALLOC/ && do { $result .= "ENABLEMEMALLOC " . $self->{ENABLEMEMALLOC} . " "};
/MAXALLOCSIZE/ && do { $result .= "MAXALLOCSIZE " . $self->{MAXALLOCSIZE} . " "};
/ENABLEMEMCONTRACT/ && do { $result .= "ENABLEMEMCONTRACT " . $self->{ENABLEMEMCONTRACT} . " "};
/^MINRESERVEDMEM$/ && do { $result .= "MINRESERVEDMEM " . $self->{MINRESERVEDMEM} . " "};
/^MINRESERVEDMEMPERCENTAGE$/ && do { $result .= "MINRESERVEDMEMPERCENTAGE " . $self->{MINRESERVEDMEMPERCENTAGE} . " "};
/MAXVIRTUALADDRSPACE/ && do { $result .= "MAXVIRTUALADDRSPACE " . $self->{MAXVIRTUALADDRSPACE} . " "};
/MEMIDLETIME/ && do { $result .= "MEMIDLETIME " . $self->{MEMIDLETIME} . " "};
/WORKSETDIR/ && do { $result .= "WORKSETDIR " . $q . $self->{WORKSETDIR} . $q . " "};
/MAXRAMWORKSET/ && do { $result .= "MAXRAMWORKSET " . $self->{MAXRAMWORKSET} . " "};
}
$result =~ s/\s+$//;
$result .= ";";
return $result;
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
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"})
=cut
sub create_custom_group {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(CUSTOMGROUP DESCRIPTION ENABLEHIERARCHICALDISPLAY ENABLESUBTOTALDISPLAY ELEMENTHEADERPOSITION HIDDEN ELEMENT SHOWELEMENTNAME SHOWITEMSINELEMENT SHOWITEMSINELEMENTANDEXPAND SHOWALLANDEXPAND EXPRESSION BREAKAMBIGUITY_FOLDER BANDNAMES OUT...
my @required = qw(CUSTOMGROUP EXPRESSION 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) {
/CUSTOMGROUP/ && do { $result .= "CREATE CUSTOMGROUP " . $q . $self->{CUSTOMGROUP} . $q . " "};
/DESCRIPTION/ && do { $result .= "DESCRIPTION " . $q . $self->{DESCRIPTION} . $q . " "};
/ENABLEHIERARCHICALDISPLAY/i && do { $result .= "ENABLEHIERARCHICALDISPLAY " . $self->{ENABLEHIERARCHICALDISPLAY} . " "};
/ENABLESUBTOTALDISPLAY/ && do { $result .= "ENABLESUBTOTALDISPLAY " . $self->{ENABLESUBTOTALDISPLAY} . " "};
/ELEMENTHEADERPOSITION/ && do { $result .= "ELEMENTHEADERPOSITION " . $self->{ELEMENTHEADERPOSITION} . " "};
/HIDDEN/ && do { $result .= "HIDDEN " . $self->{HIDDEN} . " "};
/^ELEMENT$/ && do { $result .= "ELEMENT " . $q . $self->{ELEMENT} . $q . " "};
/^SHOWELEMENTNAME$/ && do {
if($self->{SHOWELEMENTNAME} =~ /(F|0)/i) { next; }
$result .= "SHOWELEMENTNAME ";
};
/^SHOWITEMSINELEMENT$/ && do {
if($self->{SHOWITEMSINELEMENT} =~ /(F|0)/i) { next; }
$result .= "SHOWITEMSINELEMENT ";
};
/^SHOWITEMSINELEMENTANDEXPAND$/ && do {
if($self->{SHOWITEMSINELEMENTANDEXPAND} =~ /(F|0)/i) { next; }
$result .= "SHOWITEMSINELEMENTANDEXPAND ";
};
/SHOWALLANDEXPAND/ && do {
if($self->{SHOWALLANDEXPAND} =~ /(F|0)/i) { next; }
$result .= "SHOWALLANDEXPAND ";
( run in 1.362 second using v1.01-cache-2.11-cpan-39bf76dae61 )