Business-Intelligence-MicroStrategy-CommandManager
view release on metacpan or search on metacpan
lib/Business/Intelligence/MicroStrategy/CommandManager.pm view on Meta::CPAN
}
my @selected;
for(@order) {
push(@selected, $_) if exists $parms{$_};
}
for(@selected) {
/PROJECT/ && do { $result .= "LOCK PROJECT " . $q . $self->{PROJECT} . $q . " "};
/FORCE/ && ($self->{FORCE} eq "TRUE") && do { $result .= "FORCE " };
}
$result =~ s/\s+$//;
$result .= ";";
return $result;
}
=head2 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;
=cut
sub log_event {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(MESSAGE TYPE);
my @required = qw(MESSAGE TYPE);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
push(@selected, $_) if exists $parms{$_};
}
for(@selected) {
/MESSAGE/ && do { $result .= "LOG EVENT " . $q . $self->{MESSAGE} . $q . " "};
/TYPE/ && do { $result .= "TYPE " . $self->{TYPE} . ";"};
}
return $result;
}
=head2 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
=cut
sub privileges_list {
my $self = shift;
$self->{PRIVILEGE_GROUP} = shift;
my $privilege_groups = {
web_reporter => [ qw(WEBEXECUTEDOCUMENT WEBCHANGEUSEROPTIONS WEBCHANGEVIEWMODE WEBCREATEEMAILADDRESS WEBEXPORT WEBEXPORTTOFILENOW WEBNORMALDRILLING WEBOBJECTSEARCH WEBPRINTMODE WEBPRINTNOW WEBREEXECUTEREPORTAGAINSTWH WEBSCHEDULEEMAIL WEBSCHEDULEDEXP...
web_analyst => [ qw(WEBMODIFYGRIDLEVELINDOC WEBCREATEDERIVEDMETRICS WEBNUMBERFORMATTING WEBUSEREPORTOBJECTSWINDOW WEBUSEVIEWFILTEREDITOR WEBADDTOHISTORYLIST WEBADVANCEDDRILLING WEBALIASOBJECTS WEBCHOOSEATTRFORMDISPLAY WEBCONFIGURETOOLBARS WEBCREATEF...
web_professional => [ qw(WEBDOCDESIGN WEBMANAGEDOCDATASETS WEBDEFINEOLAPCUBEREP WEBFORMATGRIDANDGRAPH WEBMODIFYREPORTLIST WEBSAVETEMPLATEFILTER WEBSETCOLUMNWIDTHS WEBUSEDESIGNMODE WEBUSEREPORTFILTEREDITOR)],
web_mmt_option => [qw(WEBENABLEMMTACCESS) ],
common_privileges => [ qw(DRILLWITHINTELLIGENTCUBE CREATEAPPOBJECTS CREATENEWFOLDER CREATESCHEMAOBJECTS CREATESHORTCUT SCHEDULEREQUEST USESERVERCACHE) ],
office => [ qw(USEOFFICE)],
mobile => [ qw(USEMSTRMOBILE MOBILEVIEWDOCUMENT)],
desktop_analyst => [ qw(CREATEDERIVEDMETRICS USEREPORTOBJECTSWINDOW USEVIEWFILTEREDITOR EXECUTEDOCUMENT ALIASOBJECTS CHANGEUSERPREFERENCES CHOOSEATTRIBUTEDISPLAY CONFIGURETOOLBARS MODIFYSUBTOTALS MODIFYSORTING PIVOTREPORT REEXECUTEREPORTAGAINSTWH SA...
desktop_designer => [ qw(USEDOCUMENTEDITOR DEFINEFREEFORMSQLREPORT DEFINEOLAPCUBEREPORT DEFINEQUERYBUILDERREP FORMATGRAPH MODIFYREPORTOBJECTLIST USECONSOLIDATIONEDITOR USECUSTOMGROUPEDITOR USEDATAMARTEDITOR USEDESIGNMODE USEDRILLMAPEDITOR USEFINDAND...
architect => [ qw(BYPASSSCHEMAACCESSCHECKS IMPORTFUNCTION IMPORTOLAPCUBE USEARCHITECTEDITORS)],
microstrategy_administrator => [ qw(USECOMMANDMANAGER USEOBJECTMANAGER )],
integrity_manager => [ qw(USEINTEGRITYMANAGER) ],
administration => [ qw(ADMINBYPASSALLCHECKS CREATECONFIGOBJECT SCHEDULEADMIN PERFCOUNTERMONITORING USECACHEMONITOR USECLUSTERMONITOR USEDBCONNMONITOR USEDBINSTANCEMANAGER USEJOBMONITOR USEPROJECTMONITOR USEPROJECTSTATUSEDITOR USESCHEDULEMANAGER USES...
my $result = [];
@$result = map { @{ $privilege_groups->{$_} } } ref $self->{PRIVILEGE_GROUP}
? @{ $self->{PRIVILEGE_GROUP} }
: $self->{PRIVILEGE_GROUP};
return $result;
}
=head2 project_cluster
internal routine
=cut
sub project_cluster {
my $self = shift;
my %parms = @_;
@$self{keys %parms} = values %parms;
my $result;
my @order = qw(PROJECT SERVERS);
my @required = qw(PROJECT SERVERS);
for(@required){
if(!defined($self->{$_})) { croak("\nRequired parameter not defined: " , $_, "\n"); }
}
my @selected;
for(@order) {
exists $parms{$_} ? ( push(@selected, $_) ) : ($self->{$_} = undef);
}
for(@selected) {
/PROJECT/ && do { $result .= $self->{ACTION} . "PROJECT " . $q . $self->{PROJECT} . $q . " "};
/SERVERS/ && do { $result .= $self->{DIRECTION} . "CLUSTER ";
$result .=
($self->{SERVERS} eq "ALL")
? ("ALL SERVERS ")
: ( $self->join_objects($_, $_) );
};
}
$result =~ s/\s+$//;
$result .= ";";
return $result;
}
=head2 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>");
=cut
sub purge_caching {
my $self = shift;
( run in 1.071 second using v1.01-cache-2.11-cpan-e93a5daba3e )