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 )