I think the folks at Borland have finally removed my StarTeam blog. With the inception of CodeGear, CG seemed to take over the blog server, and removed me.
I honestly haven't touched it since leaving Borland, but several former colleagues and customers have emailed me wondering if the content is still available somewhere (I had a lot of how-to's and SDK samples posted). I honestly don't think it's archived anywhere, but I've asked the CodeGear folks via email, and will post the URL if it's still posted somewhere.
I want to generate a report to list all the files in StarTeam that are locked in all the views in a project? Basically I am looking for a report which says the following
File - Locked by - Comments - LockedDate
File A - ViewB - DeveloperX-Comments
File A - ViewC - DeveloperY-Comments
File B - ViewB - DeveloperZ-Comments
I searched through the internet and found a script that list all the files in all the projects. It was posted in Codegear by someone but it was mentioned that you helped him writing this script.
If yes Could you please help me in this?
This is the script
' This code provided by Steve Lange, tweaked by Mark Creamer for my environment's needs
' Thanks Steve for this incredibly valuable script!!
' VBScript source code
' The StarTeam URL to connect to the server
' Enter between the quotes in this format: user:password@server:port
const strURL= "user:password@server:port"
' The output file path
const strOutputFile = "c:\filelist.txt"
' The field delimiter for the output file
const strDelimiter = "|"
' Get going..
' StarTeam Variables
Dim oFinder, oServer, oProject, oView, oFLMFact, oFLM, oILMFact, oILM, oType, oFile
' File System Variables
Dim oFSO, oFSOFile
echo "Connecting to StarTeam.."
Set oFinder = WScript.CreateObject("StarTeam.StStarTeamFinderStatics")
Set oServer = oFinder.openServer(strURL)
' Create the ..ListManager Factories
Set oFLMFact = WScript.CreateObject("StarTeam.StFolderListManagerFactory")
Set oILMFact = WScript.CreateObject("StarTeam.StItemListManagerFactory")
' Get "File" type
Set oType = oServer.typeForName(oServer.TypeNames.FILE)
' Open output file
echo "Opening output file.."
set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
' Process Projects
echo "Processing projects.."
For Each oProject in oServer.Projects
echo vbTab & oProject.Name
Set oView = oProject.DefaultView
Set oFLM = oFLMFact.Create(oView)
oFLM.includeFolders oView.RootFolder, -1
Set oILM = oILMFact.Create(oType, oFLM)
echo vbTab & "Logging " & oILM.ItemsArray.Count & " files.."
For Each oFile in oILM.ItemsArray
echo vbTab & oFile.Name
Log oProject.Name & strDelimiter & oFile.ParentFolderHierarchy & strDelimiter & oFile.Name
echo "Done processing projects."
' Close output file
echo "Closing output file.."
' Disconnect from the server.
echo "Disconnecting from StarTeam.."
' Clean up
Set oFile = Nothing
Set oType = Nothing
Set oILM = Nothing
Set oILMFact = Nothing
Set oFLM = Nothing
Set oFLMFact = Nothing
Set oView = Nothing
Set oProject = Nothing
Set oServer = Nothing
Set oFinder = Nothing
' Functions & Subs
' Convenience method for writing to the command window
Set oFSOFile = oFSO.CreateTextFile(strOutputFile, true)
' Write to output file
It's been quite some time since I wrote this script (think 3+ years), and I'm not sure what would need updating to work with the more recent versions of StarTeam. It looks like this script will get you close, except that you want to scope your script to a given project, and you want to output comments and who/when the file is locked.
There is a property name (PropertyNames.EXCLUSIVE_LOCKER) that will get the user id of the user with the lock (or -1 if it's not locked), and .Comment will give you the comment of the latest revision. However, to my recollection (again, it's been a few years since I hacked away at the StarTeam SDK), there isn't a way to get a timestamp of when a lock was created. And comments are only created when revisions are created, so there isn't a "lock comment" necessarily.
Sorry I can't be of more help.