##What Is It?
A Rally REST toolkit written for Microsoft Visual Basic for Applications (VBA). VBA is a scripting language used by Microsoft Office (and other) applications.
##Why? Why not? VBA is a useful toolkit for automating processes in Microsoft Excel, for one. The Rally Excel Plugin, while providing a nice UI-based interface for querying Rally, does not offer script-ability or automation.
##Why Not? Excellent question. VBA may be quite slow and inefficient for accessing large amounts of data. It's not asynchronous, and can be a clumsy way to get data into/out of Rally in large volumes. But for small datasets, it could be convenient.
##How functional is this toolkit at this point in time? Barely. Pre-alpha. Right now this is nothing more than a proof-of-concept for Querying Rally and Creating Rally Artifacts from VBA code. More to come though!
Note: You'll need to follow ALL of the steps below before trying any of the example code.
-
Download the RallyRestToolkitForVBA.xlsm Excel Worksheet
-
Enable Macros (Enable Content)
- Show the Developer Tools Menu in Excel
- File -> Options ->
- Customize Ribbon -> Developer "Checked"
- Open Visual Basic Editor
- Go to Tools -> References
- The References shown here are needed to use the RallyRestToolkitForVBA. Add/load any that are not checked on in your environment.
Video showing Sample Query from Worksheet (illustrating code in GetStoriesForm).
The core functionality is contained in the Class Modules that are accessible from the VBA Editor for the Excel Worksheet:
The code behind the "Get Stories" button in the worksheet is contained within the "GetStoriesForm" module. There's some UI logic there, but the useful stuff around how to instantiate and use the RallyRestToolkitForVBA toolkit is in the QueryStories function:
There is also an example showing how to use the RallyRestToolkitForVBA toolkit to Create Defects, within the "Examples" module. This sample isn't hooked up to any UI Components.
There's lots still to do with this to make this toolkit anything close to useful. There's the U/D of CRUD (Update and Delete) still to do. Overall, error-checking and handling needs to be a lot more robust throughout. There are probably a lot of situations where text that resides within Excel cells will require more thorough encoding and escaping before uploading to Rally, in order to get things to work right. This is alpha-level code...so just be aware.
Unfortunately, No. The MSXML2 module that VBA uses for the HTTP connection is not available on the Mac.