Nelly has asked for the wisdom of the Perl Monks concerning the following question:
use Win32::OLE; use Win32::OLE::Enum; use Data::Dumper; use strict; # Alow for command-line parameters my $STServer= defined($ARGV[0]) ? $ARGV[0] : 'localhost'; my $STPort = defined($ARGV[1]) ? $ARGV[1] : '49201'; my $STUser = defined($ARGV[2]) ? $ARGV[2] : "Administrator"; my $STPw = defined($ARGV[3]) ? $ARGV[3] : 'Administrator'; my $STServerFactory = CreateObject Win32::OLE "StarTeam.StServerFactor +y"; my $STServer = $STServerFactory->Create($STServer, $STPort); if (! defined $STServer) { print STDERR "Error: Cannot create STServer object!\n"; } $STServer->connect(); my $user = $STServer->logOn($STUser, $STPw); if (! defined ($user) ) { print STDERR "Error: Cannot logon!\n"; } my $FileTypeName = $STServer->TypeNames->FILE; my $CRTypeName = $STServer->TypeNames->CHANGEREQUEST; my $TaskTypeName = $STServer->TypeNames->TASK; my $TopicTypeName = $STServer->TypeNames->TOPIC; my $AuditTypeName = $STServer->TypeNames->AUDIT; my @projects = getProjectObjects($STServer); $STServer->disconnect; #______________________________________________________________ sub getProjectObjects { my @projects = Win32::OLE::Enum->All($STServer->Projects); foreach my $p (@projects) { my $project = $p->Name(); print "\nPROJECT: $project\n"; runViewsOfProject($p); } return @projects; } #______________________________________________________________ sub runViewsOfProject { my ($project) = @_; my $DefaultView = $project->DefaultView()->Name(); my @views = Win32::OLE::Enum->All($project->Views); print "\tDEFAULT-VIEW: $DefaultView\n"; foreach my $v (@views) { # print "\tVIEW: " . $v->Name() . "\tPath: ". $v->Path() . "\n"; # runLabelsOfView($v); runFoldersOfView($v->RootFolder); } return @views; } #___________________________________________________________ sub runFoldersOfView { my ($folder) = @_; my $folder_name = $folder->Name(); # print "\n\t\t\tROOTFOLDER: $folder_name\n"; runSubFoldersOfFolder($folder); } #______________________________________________________________ sub runSubFoldersOfFolder { my ($folder) = @_; runItemsOfFolder($folder); my @subfolder = Win32::OLE::Enum->All($folder->SubFolders); foreach my $subf (@subfolder) { # print "\t\t\tSUBFOLDER : " . $subf->Name() . "(" . $subf->Fold +erHierarchy . ")\n"; runSubFoldersOfFolder($subf); } } #___________________________________________________________ sub runItemsOfFolder { my ($folder) = @_; my $id; my $name; #my @files = $folder->getItems("File"); my @files = Win32::OLE::Enum->All($folder->getItems($FileTypeName)) +; my @ua=Win32::OLE::Enum->All($STServer->Users); my $tag_files=$STServer->$FileTypeName; print $tag_files; my @filters= Win32::OLE::Enum->All($tag_files->Filters); foreach my $f (@files) { #my @filters=Win32::OLE::Enum->All($f->Filter); foreach my $filter (@filters) { print $filter."\n"; } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Making reports from Starteam in perl
by graff (Chancellor) on May 16, 2004 at 12:39 UTC | |
by Nelly (Novice) on May 16, 2004 at 12:42 UTC |