Automating application grouping in ChangeBASE 5.3

I've spent a few days this week working with one of our partners who have been using ChangeBASE to assist a customer moving from XP to Win 7. This customer is not particularly unusual in that they have a lot of apps which are made up of collections of MSI. Things like AutoCAD and Business Objects.

In ChangeBASE 5.3 you have the ability to assign an AppID to a group of packages. So you might choose to assign the AppID "AutoCAD" to all the MSIs which make up the AutoCAD package. The HTML reports generated from ChangeBASE then use these AppIDs to group the packages into a single "application" called AutoCAD and combine the RAG status of all the packages into a single RAG status.

This works well, but as I've found it can be quite time consuming if you need to add a lot of AppIDs to a lot of groups of packages. And this is actually quite straightforward to automate as you can use one of the parent folder names to generate the AppID.

So I decided to automate the generation of a CSV file with a script. This CSV file could then be read by ChangeBASE. We’ve been using the script today and it’s working really well, and has saved many hours’ (maybe even days’) work.

This is what it does:

  1. Prompts you for a path to the packages (You can use a UNC or driver letter)
  2. Asks if you want the script to add MSIs with multiple MSTs in the same folder (Yes/no). If no it ignores these MSIs
  3. Asks if you want to limit how deep (in terms of subfolders) the script scans
  4. Asks which subfolder (ie. at which depth) should be used for the AppID
  5. It then goes off and scans the folder and subfolders for MSIs and MSTs and creates a CSV file on your desktop
  6. You then click “CSV Import” in ChangeBASE and all you AppIDs are auto-populated!

What it doesn’t do: Look for EXE installers or any other package type.

Let me know if this is useful, and if you’d like to see any enhancements…

And it goes without saying that this is an unsupported bit of code - Use at your own risk!